Jeu en Version PDF à l'aide de iTextSharp
Quelqu'un sait comment enregistrer un fichier PDF comme un moindre version PDF par programmation à l'aide iTextSharp de sorte que vous pouvez utiliser certaines iTextSharp fonctionnalités qui nécessitent le PDF de la version 5 ou plus bas?
Je suis en train de fusionner deux PDF de la version 7 de documents, et il insiste sur le fait qu'ils soient en version 5 ou plus bas.
Vous devez vous connecter pour publier un commentaire.
Bizarre. Les versions PDF sont pour la plupart une suggestion. Les fichiers pdf doivent commencer avec quelque chose comme:
Où X est 0,1,2,...
C'est juste un indice pour l'application de la lecture du fichier PDF. Le seul indice. La plupart des "j'ai besoin de la version X demandes de" je vois de divers clients sont des faux. Mes collègues de la bibliothèque iText des codeurs de savoir cela, donc, il me semble étrange que iText demande une version différente.
Vous êtes sûr de ses iText demandant v5?
En tout cas, pour répondre à votre question:
Oui, iText pouvez changer le numéro de version d'un fichier PDF. Malheureusement, il ne peut être fait lors de l'écriture d'un fichier PDF, et non pas lors de la lecture dans. Vous aurez à ouvrir le fichier PDF, modifier sa version, et l'enregistrer de nouveau.
Vous pourriez probablement tricher. Lire les fichiers Pdf dans des tableaux d'octets et
pdfBytes[7] = 4;
, puis de transmettre ces octets sur unPdfReader
.La Version 1 de la technique (PDF) est 1.0
La Version 2 est de 1,1
...
Donc, si vous voulez la version pdf 5, vous devez écrire "1.4", pas "1.5".
Si vous n'êtes pas à l'aise piquer un octet comme ça, vous pouvez analyser l'ensemble de la PDF, changer la version, puis de l'écrire à nouveau:
Vous pouvez lire à nouveau, et les combiner comme vous l'avez été.
Ressemble à ceci n'est plus valide, bien, au moins pour moi ça ne fonctionne pas. Cependant, j'ai trouvé cela et cela a fonctionné pour moi: http://itext-general.2136553.n4.nabble.com/iTextSharp-PDF-version-td3477631.html.
Utiliser ceci:
de l'écrivain.PdfVersion = PdfWriter.VERSION_1_3;
Cela a fonctionné pour moi