Как прочитать файл PDF из django inMemoryUploadedFile? - PullRequest
0 голосов
/ 17 марта 2020

Я загрузил PDF-файл этого типа. Как читать pdf из типа InMemoryUploadedFile.

views.py

class TextUploadAPI(APIView):
    parser_classes = (MultiPartParser,)
    permission_classes = [IsAuthenticated & IsProjectAdmin]

    def post(self, request, *args, **kwargs):
        if 'file' not in request.data:
            raise ParseError('Empty content')
        self.save_file(
            user=request.user,
            file=request.data['file'],
            file_format=request.data['format'],
            project_id=kwargs['project_id'],
        )

        return Response(status=status.HTTP_201_CREATED)

    @classmethod
    def save_file(cls, user, file, file_format, project_id):
        project = get_object_or_404(Project, pk=project_id)
        parser = cls.select_parser(file_format)
        if file_format == 'pdf':
            file = file.read()
            file = io.BytesIO(file)
            with pdfpluber.load(file) as pdf:
                pages = pdf.pages
                print(pages)
        data = parser.parse(file)
        storage = project.get_storage(data)
        storage.save(user)

Сначала я преобразовал тип InMemoryLoadedFile в байты, потому что я получил ошибку при попытке открыть файл с открытой функцией expected only str,bytes or None type not InMemoryLoadedFile type. После того, как я попробовал https://github.com/jsvine/pdfplumber/issues/173 это решение, но не работает. Пожалуйста, помогите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...