2010-11-03 5 views
2

J'utilise un package PDF avec ornithorynque pour générer des fichiers PDF. Sur le serveur linux et sur windows box j'ai la même application python, la même version du paquet reportlab (bien que légèrement différente de la version python - 2.6.5 vs 2.6.6). J'utilise mes propres polices, je ne dépends pas des polices système. Dernièrement, j'ai remarqué que les PDF générés sur ces deux plates-formes sont un peu différents - certains paragraphes sont quelques points verticalement dans une version par rapport à l'autre version. J'ai essayé de trouver quelle est la différence entre ces plaquettes, mais je n'ai pas réussi à trouver la différence.Reportlab Problèmes de génération de version PDF

Enfin, quand je compare les fichiers PDF, un fichier est PDF 1.3 et la seconde est PDF version 1.4, donc je pense que ce problème doit être le suivant. Je ne suis pas au courant d'une option comment définir la version PDF dans reportlab, s'il vous plaît quelqu'un peut-il me montrer comment définir la bonne version du fichier PDF généré, ou peut-être pour définir des propriétés supplémentaires de la production de reportlab?

MISE À JOUR:

en utilisant la version 2.4 reportlab:

reportlab.__version__: $Id: __init__.py 3649 2010-01-20 14:45:53Z damian $

+0

Quelle version de reportlab utilisez-vous? –

Répondre

1

Avez-vous essayé de les générer avec le code exact sur chaque système? J'ai fait une recherche rapide dans le code source de reportlab et j'ai trouvé quelques commentaires indiquant que si vous utilisez les méthodes setFillAlpha ou setStrokeAlpha, un fichier PDF 1.4 sera généré au lieu de 1.3.

Edit:

Au-delà, je suis assez certain que ces méthodes sont la seule raison reportlab ne jamais générer un fichier PDF 1.4. Il semble toujours par défaut à 1,3 autrement. Autant que je puisse voir il n'y a pas d'interface qui vous permettrait de changer de version. Cependant, vous pouvez modifier la source assez facilement pour le faire. Il suffit de chercher pdfdoc.py et changer cette ligne (Il est autour de la ligne 85 à reportlab 2.5) de

PDF_VERSION_DEFAULT = (1, 3) 

à

PDF_VERSION_DEFAULT = (1, 4) 

Cela forcera à générer toujours documents PDF 1.4.

Espérons que cela aide.

+0

Mon code est définitivement le même, je l'ai vérifié plusieurs fois. Je n'utilise pas setFillAlpha ou setStrokeAlpha. Merci pour le conseil de pdfdoc.py Je vais y jeter un coup d'oeil et vous le faire savoir. – Jiri

+0

Enfin, je n'ai pas utilisé votre suggestion pour changer la version PDF, mais j'ai vérifié toute l'utilisation de la transparence en PDF (fichiers png, j'utilise d'autres fichiers png maintenant). Je ne suis pas vraiment sûr de cela, mais ça marche pour moi maintenant. Merci. – Jiri

Questions connexes