Django : 如何使用pdf2image将pdf文件对象转换为图片?

我正在尝试创建一个epaper web应用程序,其中管理员可以上传pdf格式的文件,并在客户端渲染页面时将其转换为图像。我已经尝试过pdf2image,但得到的错误是这样的。

PDFPageCountError at /city_list
Unable to get page count.
I/O Error: Couldn't open file '['/media/pdf/Akola/2020/04/24/page01.pdf']': No such file or directory.

这是我的代码。

models.py

class City(models.Model):
    cityid =models.AutoField(primary_key=True)
    name = models.CharField( max_length=50)
def user_directory_path(instance, filename):
# file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
ab = instance.date.strftime("%Y/%m/%d")
return 'pdf/{0}/{1}/{2}'.format(instance.city.name,ab, filename)

class DailyFeed(models.Model):
    city = models.ForeignKey(City, on_delete=models.CASCADE)
    date =models.DateField(auto_now=False, auto_now_add=False)
    page1  = models.FileField(upload_to=user_directory_path)
    page2 = models.FileField(upload_to=user_directory_path) 
    page3 = models.FileField(upload_to=user_directory_path)

views.py:

def city(request):
    city_list = City.objects.all()

    daily = DailyFeed.objects.filter(date=timezone.now().date()).filter(city__name = "Akola")
    ab = [pdfurl.page1.url for pdfurl in daily ]
    path = r'{}'.format(ab)
    a = str(path)
    pages = convert_from_path('{}'.format(a), 200)
    for pdf in pages:
        pdf.save('{}.jpg'.format(a.name[:-4]), 'JPEG')
    return render (request,'main.html',{'city_list':city_list,'page':pdf})

urls.py

re_path(r'^city_list',views.city,name='city'),

我不明白我哪里出错了?

解决方案:

使用路径而不是url。URL不是文件在哪里,而是浏览器如何访问它。

[pdfurl.page1.url for pdfurl in daily ]

[pdfurl.page1.path for pdfurl in daily ]

给TA打赏
共{{data.count}}人
人已打赏
未分类

连接表格,按日期查询,按字段汇总和按组查询

2022-9-8 23:39:36

未分类

将数据从fortran转换到python

2022-9-8 23:39:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索