Aplatir des formulaires FDF / XFDF en PDF en PHP avec des caractères utf-8
Mon scénario:
- Un gabarit PDF avec formfields: modèle.pdf
- Un XFDF fichier qui contient les données à remplir: fieldData.xfdf
Maintenant, j'ai besoin d'avoir ces dossiers & aplatie.
pdftk fait le travail facilement dans php:
exec("pdftk template.pdf fill_form fieldData.xfdf output flatFile.pdf flatten");
Malheureusement cela ne fonctionne pas avec le plein support utf-8.
Par exemple: l'alphabet Cyrillique et les lettres grecques être brouillés. J'ai utilisé une police Arial pour cela, avec un jeu de caractères unicode.
- Comment puis-je accomplir pour aplatir mon fichiers unicode?
- Est-il un autre outil de pdf qui offre le support de l'unicode?
- Ne pdftk ont une unicode interrupteur que je suis absent?
EDIT 1: en tant Que cette question n'a pas été résolu depuis plus de 9 mois, j'ai décidé de commencer une prime pour cela. Dans le cas où il ya des options pour le commanditaire d'une fonction ou d'une correction de bug dans pdftk, je serais heureux de faire un don.
EDIT 2: je ne vais pas travailler sur ce projet en plus, donc je ne peut pas vérifier de nouvelles réponses. Si quelqu'un a un problème similaire, je suis heureux si ils peuvent répondre en ma faveur.
source d'informationauteur Mateng | 2010-10-19
Vous devez vous connecter pour publier un commentaire.
Malheureusement, UTF-8 codage de caractères ne fonctionne pas ni avec décimale, ni hexadécimal références de caractères non-ASCII dans la source .xfdf fichier. PDFTK v. 1.44.
J'ai trouvé par l'aide de Jon modèle, mais à l'aide de la DomDocument l'encodage numérique a été traitée pour moi et bien travaillé. Ma légère variation est ci-dessous:
Vous pouvez essayer la version d'essai de http://www.adobe.com/products/livecycle/designer/ et de voir ce PDF fichiers qu'il génère.
Un autre logiciel commercial, vous pourriez essayer est http://www.appligent.com/fdfmerge. Voir page 16 dans http://146.145.110.1/docs/userguide/FDFMergeUserGuide.pdf pour la façon dont il traite xFDF avec l'encodage UTF-8.
J'ai également eu un coup d'oeil à la FDF spécification http://partners.adobe.com/public/developer/en/xml/xfdf_2.0.pdf
À la page 12, il est indiqué:
J'ai regardé à travers pdftk-1.44-dist/java/com/lowagie/text/pdf/XfdfReader.java. Il ne semble pas faire quelque chose de spécial à l'entrée.
Peut-être pdftk faire ce que vous voulez, quand vous encoder les caractères bizarres comme des références dans votre xFDF d'entrée.
À l'aide de la pdftk 1.44 sur un Win7 machine, je rencontre les mêmes problèmes avec xfdf-files alors que dff fonctionne très bien. J'ai fait un xfdf-fichier sans les caractères spéciaux (uniquement ANSI) mais pdftk encore planté. J'ai envoyé un courriel au développeur. Malheureusement pas de réponse jusqu'à présent.
J'ai fait quelques progrès sur ce point. Commençant par le code de http://koivi.com/fill-pdf-form-fields/j'ai modifié la valeur de l'encodage de sortie de codes numériques pour tous les caractères en dehors de la plage ascii.
Maintenant avec pitulski spécial de cordes:
Poznań Śródmieście Ćwiartka Ósma
sortiesPozna ródmiecie wiartka Ósma
avec une certaine zone de formes superposéesęóąśłżźćńĘÓĄŚŁŻŹĆŃ
sortiesóÓ
avec plus de boîte à formes. Je pense que c'est peut-être que la boîte de formes sont des personnages de mon serveur ne reconnaît pas.Je l'ai essayé avec certains caractères français:
ùûüÿ€’“”«»àâæçéèêëïôœÙÛÜŸÀÂÆÇÉÈÊËÏÎÔ
et ils sortirent tous OK, mais certains d'entre eux ont été superposées.--edit-- j'ai juste essayé d'entrer manuellement dans le formulaire et a obtenu le même résultat moins la zone de formes (à l'aide de Evince). J'ai ensuite essayé avec une autre forme (créé par quelqu'un d'autre) - après avoir entré
ęóąśłżźćńĘÓĄŚŁŻŹĆŃ
ółÓŁ
était affiché. Il semble que ça dépend des caractères sont inclus dans le document de polices de caractères intégrées.Ce que PDFTK version?
J'ai essayé la même chose avec les caractères polonais (utf-8).
Ne fonctionne pas pour moi.
pdftk.exe, libiconv2.dll de: http://www.pdflabs.com/docs/install-pdftk/
Windows 7, cmd, fichier.pdf + fichier.dff -> nouveau.pdf
pdftk fichier.pdf fill_form fichier.xfdf sortie de nouveau.pdf aplatir
Mais, avec le fichier FDF, avec le même contenu, il a fonctionné correctement.
Mais les personnages de la nouvelle.PDF sont mauvais.
pdftk fichier.pdf fill_form fichier.dff sortie de nouveau.pdf aplatir
---FDF---
---XFDF---
---PDF---
Vous pouvez introduire des caractères utf-8 en donnant leur unicode code en octal avec \ddd
Pour résoudre cela, j'ai écrit PdfFormFillerUTF-8: http://sourceforge.net/projects/pdfformfiller2/
Il y a une baisse-dans le remplacement pour pdftk outil
Mcpdf: https://github.com/m-click/mcpdf
qui résout unicode problèmes lors du remplissage de formulaires. Fonctionne pour moi avec CP1250 caractères (Europe Centrale).
De projet page:
Noter que vous devez avoir JRE installé.
pdftk supporte l'encodage en UTF-16BE. Il n'est pas difficile de convertir en UTF-8 UTF-16BE.
Voir: Des caractères bizarres lors du remplissage PDF avec PDFTk