4

我设法使用 Python 和 pdfrw 填写了 pdf 表单,我想知道是否可以为正在填写的文本指定字体,因为填写的文本与文件其余部分的字体不匹配.

我正在使用pdfrw.PdfDict()将数据填写到表格中。

    def generate_pdf_tax_form(self):
        data_dict = {
            '1a': "first_name",
            '1b': "last_name",
            '1c': "address"
        }
        template_pdf = pdfrw.PdfReader('t')
        annotations = template_pdf.pages[0]['/Annots']
        for annotation in annotations:
            if annotation['/Parent']:
                key = (
                        annotation['/Parent']['/T'][1:-1]
                        + "." + annotation['/T'][1:-1]
                )
            else:
                key = (annotation['/T'][1:-1])
            if key in data_dict.keys():
                annotation.update(
                    pdfrw.PdfDict(V='{}'.format(data_dict[key])))
        pdfrw.PdfWriter().write("/", template_pdf)
4

2 回答 2

3

我想到了。您无法使用 pdfrw 指定字体,但是可以通过您正在使用的 PDF 编辑器为表单域本身指定字体。当从 pdfrw 填写文本时,PDF 文件会自动将其转换为正确的字体。

于 2019-12-17T08:28:06.617 回答
1

在给我错误之后

PDF_TEXT_APPEARANCE = pdfrw.objects.pdfstring.PdfString.encode('/Courier 10.00 Tf 0 g')
annotation['/DA'] = PDF_TEXT_APPEARANCE

然后我尝试通过 dict 更新功能进行更新,它正在工作。

PDF_TEXT_APPEARANCE = pdfrw.objects.pdfstring.PdfString.encode('/Courier 10.00 Tf 0 g')
annotation.update({'/DA': PDF_TEXT_APPEARANCE})
于 2020-12-26T21:06:29.620 回答