4 votes

Utilisation d'une police lors du remplissage d'un formulaire pdf à l'aide de pdfrw

J'ai réussi à remplir un formulaire pdf en utilisant Python et pdfrw, je me demandais s'il était possible de spécifier une police pour le texte qui est rempli, puisque le texte rempli ne correspond pas à la police du reste du fichier.

Je me sers de pdfrw.PdfDict() pour remplir les données dans les formulaires.

    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)

3voto

AOJENIDSA123 Points 61

J'ai trouvé la solution. Vous n'êtes pas en mesure de spécifier la police en utilisant pdfrw, mais il est possible de spécifier la police pour le champ du formulaire lui-même par le biais de l'éditeur PDF que vous utilisez. Lorsque le texte est rempli à partir de pdfrw, le fichier PDF sera automatiquement converti dans la bonne police.

2voto

Ehsaan Israr Points 53

La suite me donne une erreur

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

Ensuite, j'ai essayé de mettre à jour via la fonction de mise à jour du dict et cela fonctionne.

PDF_TEXT_APPEARANCE = pdfrw.objects.pdfstring.PdfString.encode('/Courier 10.00 Tf 0 g')
annotation.update({'/DA': PDF_TEXT_APPEARANCE})

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X