Я пытаюсь преобразовать файл PDF в HTML с помощью PDF2HTML:
pdf_path = "path\to\pdf_file.pdf"
subprocess.run(["pdf2htmlEX.exe",pdf_path])
Это работает хорошо.Однако я бы хотел, чтобы pdf_path был потоком, а не путем на моем сервере.Мой пример использования - приложение Django, которое позволяет пользователям загружать файл PDF и преобразовывать его в страницу HTML, не сохраняя ничего на сервере.
Я попытался преобразовать загруженный файл PDF в BytesIO, а затем в поток.и пытается передать это:
from PyPDF2 import PdfFileReader, PdfFileWriter
# Request.FILES is from the Django Form
file_memory = request.FILES
# BytesIO file
file_handle_file = file_handle.file
pdf = PdfFileWriter()
pdf_file = PdfFileReader(file_handle_file)
page = pdf_file.getPage(0)
pdf.addPage(page)
pdf.write(open("output.pdf","wb"))
subprocess.run(["pdf2htmlEX.exe",pdf])
Но это возвращает ошибку argument of type 'PdfFileWriter' is not iterable
.Pdf.write записывает pdf в хранилище, и если я использую subprocess.run для получения этого файла (поэтому снова использую путь), он работает.
Кроме того, открытие потока не работает:
outputStream = open("test.pdf", "wb")
output.write(outputStream)
outputStream.close()
subprocess.run(["pdf2htmlEX.exe",outputStream])
Можно ли даже передать файл pdf из памяти в pdf2htmlEX вместо пути?Я также смотрел на то, чтобы сделать его base64 (base64.b64encode (file_handle_file.getvalue ()). Decode ()), но также безрезультатно.
Большое спасибо всем!