为了账号安全,请及时绑定邮箱和手机立即绑定

如何在xhtml2pdf中将阿拉伯字符导出为pdf?

如何在xhtml2pdf中将阿拉伯字符导出为pdf?

PHP
MMTTMM 2023-11-09 17:00:35
我想使用 xhtml2pdf 将阿拉伯字符导出为 pdf,因为我在 django 应用程序中使用它。我知道他们做了更新,说他们修复了它,但它对我不起作用,我使用了自定义字体但仍然不起作用。因此,请任何人知道正确的加密方式或与之相关的任何方式,帮助我。发票.html:{% load static %}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>        <meta http-equiv="content-type" content="text/html; charset=utf-8"><head>    <title>{{title}}</title><style type="text/css">        @font-face {        font-family: Amiri, "Amiri Font";        src: url("{% static 'font/Amiri-Italic.ttf'%}");        }        body {            font-weight: 200;            font-size: 14px;        }    </style></head><body><pdf:language name="arabic"/>    <div class='wrapper'>        <div class='header'>            <p class='title'>Invoice # {{ invoice_ID }} </p>        </div>        <div>            <div class='details'>                <pdf:language name="arabic"/>                     <p> تجربة</p>                           customername : {{customer_name}} <br><hr>                <hr class='hrItem' />            </div>        </div></body></html>utils.py :from io import BytesIOfrom django.http import HttpResponsefrom django.template.loader import get_templatefrom xhtml2pdf import pisadef render_to_pdf(template_src, context_dict={}):    template = get_template(template_src)    html  = template.render(context_dict)    result = BytesIO()    pdf = pisa.pisaDocument(BytesIO(html.encode("UTF-8")), result)    if not pdf.err:        return HttpResponse(result.getvalue(), content_type='application/pdf')    return Noneviews.py :from django.shortcuts import render, redirect, HttpResponseimport pandas as pdfrom .models import SaleInvoice, TransferWays, User, InstallingCitiesfrom siteManagment.models import MarketersManagment, WareHousesfrom .utils import render_to_pdffrom django.core.validators import ValidationError
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我解决了它,文档实际上没有任何问题,问题出在静态中..因为当您使用 {% static 'whatever' %} 时,它将搜索静态文件,但由于某种原因它不起作用,我认为问题来自 django 本身,也许你无法从 pdf 文件中调用静态。这是我的新发票.html(我已将字体的整个路径放在其中):


{% load static %}

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

    

    <meta http-equiv="content-type" content="text/html; charset=utf-8">

    <head>

    

    <title>{{title}}</title>

    <style type="text/css">

        


        .header {

            font-size: 20px;

            font-weight: 100;

            text-align: center;

            color: #007cae;

        }


        .title {

            font-size: 22px;

            font-weight: 100;

            /* text-align: right;*/

            padding: 10px 20px 0px 20px;

        }


        .title span {

            color: #007cae;

        }


        .details {

            padding: 10px 20px 0px 20px;

            text-align: right !important;

            /*margin-left: 40%;*/

        }


        .hrItem {

            border: none;

            height: 1px;

            /* Set the hr color */

            color: #333;

            /* old IE */

            background-color: #fff;

            /* Modern Browsers */

        }

        @font-face {font-family: RTLFont; src: url('C:\\Users\\BigBoy\\Desktop\\MyProjects\\ToysSite\\static\\font\\Amiri-Italic.ttf')} // Here

        

        body {

            font-weight: 200;

            font-size: 14px;

            font-family: RTLFont;

        }

        /* @page {

        background-image: url('C:\Users\BigBoy\Desktop\MyProjects\ToysSite\static\background.png');

        } */

    </style>

</head>


<body>

    <div class='wrapper'>

        <div class='header'>

            

        </div>

        <div>

            <div class='details'>

                <pdf:language name="arabic"/>

                

                اسم العميل : {{customer_name}} <br><hr>

                <hr class='hrItem' />

            </div>

        </div>

    </div>

</body>


</html>


查看完整回答
反对 回复 2023-11-09
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信