如何使用魔杖在 Django 中将上传的文件 (InMemoryUploadedFile) 从 pdf 转换为 jpeg?

How to convert an uploaded file (InMemoryUploadedFile) from pdf to jpeg in Django using wand?

我正在尝试将在 Django 中上传的 pdf 文件转换为 jpg 文件。我想直接在 InMemoryUploadedFile 状态下使用文件。

我尝试使用魔杖但没有成功。 这是我写的代码:

from django.shortcuts import render
from wand.image import Image as wi

# Create your views here.
def readPDF(request):
    context = {}
    if request.method == 'POST':
        uploaded_file = request.FILES['document']
        if uploaded_file.content_type == 'application/pdf':
            pdf = wi(filename=uploaded_file.name, resolution=300)
            pdfImage = pdf.convert("jpeg")
    return render(request, 'readPDF.html', {"pdf": pdfImage})

我尝试了不同的方法,例如使用 uploaded_file.file 或 uploaded_file.name 作为魔杖图像的第一个参数,但没有任何成功。`

在此先感谢您的帮助!

应该能够将 InMemoryUploadedFile 直接传递给 Wand 的构造函数。

uploaded_file = request.FILES['document']
if uploaded_file.content_type == 'application/pdf':
    with wi(file=uploaded_file, resolution=300) as pdf:
        # ...

但是,我不建议尝试在 HTTP 请求中将 PDF 页面转换为 JPEG。最好将文档写入存储,并让后台工作人员管理缓慢/不安全的任务。