当我使用 django 生成 pdf 时,我不能写格鲁吉亚语。我的代码除了格鲁吉亚字母外还写了黑色方块

Posted

技术标签:

【中文标题】当我使用 django 生成 pdf 时,我不能写格鲁吉亚语。我的代码除了格鲁吉亚字母外还写了黑色方块【英文标题】:I can't write Georgian shrift, when I generate pdf , using django . My code writes black squares besides Georgian letters 【发布时间】:2021-12-25 08:14:27 【问题描述】:

我生成关于每个模型对象的 pdf 文件,但在 pdf 中,我不能用格鲁吉亚字母书写,它返回黑色方块。

这是一些代码,我使用的是from xhtml2pdf import pisa 在我的 urls.py 中:path('pdf/', views.customer_render_pdf_view, name='customer-pdf-view')

def customer_render_pdf_view(request, *args, **kwargs):
     pk = kwargs.get('pk')
     customer = get_object_or_404(id, pk=pk)  

     template_path = 'test.html'
     context = 'customer': customer
     response = HttpResponse(content_type='application/pdf')
     response['Content-Disposition'] = 'filename= "report.pdf"'
     template = get_template(template_path)
     html = template.render(context)
     pisa_status = pisa.CreatePDF( 
                 html, 
                 dest=response,
                 encoding='utf-8'
               )   
# if error then show some funny view
    if pisa_status.err:
         return HttpResponse('We had some errors <pre>' + html + '</pre>')
    return response

【问题讨论】:

【参考方案1】:

您只是在使用不包含您的字母的字体。您需要使用具有它们的字体。

https://xhtml2pdf.readthedocs.io/en/latest/reference.html?highlight=Font#using-custom-fonts

【讨论】:

以上是关于当我使用 django 生成 pdf 时,我不能写格鲁吉亚语。我的代码除了格鲁吉亚字母外还写了黑色方块的主要内容,如果未能解决你的问题,请参考以下文章

修复 Django 项目中 xhtm2pdf 的类型错误

当我不想在服务器上下载文件时,无法使用 mPDF 生成多个 PDF

django 加载静态图片失败

Django/Python:使用正确的语言生成 pdf

使用 Django 和 Reportlab 从 HTML 生成 PDF

使用 Wea​​syprint 的 PDF 输出不显示图像(Django)