【问题标题】:Using a font while filling in a pdf form using pdfrw使用 pdfrw 填写 pdf 表单时使用字体
【发布时间】:2020-03-31 14:16:02
【问题描述】:

我设法使用 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)

【问题讨论】:

  • 显示您的代码的 sn-p,以便我们为您提供更多帮助
  • 添加了包含代码的sn-p

标签: python pdf-generation pdfrw


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    以下给我错误

    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})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 2013-01-08
      • 2023-04-02
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      相关资源
      最近更新 更多