Comment résoudre la signature d'en-tête pdf erreur introuvable?
Je suis en utilisant la bibliothèque iText dans mon programme java pour l'édition d'un fichier pdf existant.Le pdf généré n'a pas pu ouvrir et il montre pdf en-tête de la signature ne trouve pas d'erreur.Je suis l'aide de mon entrée et de sortie de fichier en un même nom.
private static String INPUTFILE = "/sample.pdf";
private static String OUTPUTFILE = "/sample.pdf";
public static void main(String[] args)
throws DocumentException,
IOException
{
Document doc = new Document();
PdfWriter writer = PdfWriter.getInstance(doc,new FileOutputStream(OUTPUTFILE));
doc.open();
PdfReader reader = new PdfReader(INPUTFILE);
int n;
n = reader.getNumberOfPages();
System.out.println("No. of Pages :" +n);
for (int i = 1; i <= n; i++)
{
if (i == 1)
{
Rectangle rect = new Rectangle(85,650,800,833);
PdfFormField pushbutton = PdfFormField.createPushButton(writer);
pushbutton.setWidget(rect, PdfAnnotation.HIGHLIGHT_PUSH);
PdfContentByte cb = writer.getDirectContent();
PdfAppearance app = cb.createAppearance(380,201);
app.rectangle(62,100,50,-1);
app.fill();
pushbutton.setAppearance(PdfAnnotation.APPEARANCE_NORMAL,app);
writer.addAnnotation(pushbutton);
PdfImportedPage page = writer.getImportedPage(reader, i);
Image instance = Image.getInstance(page);
doc.add(instance);
}
source d'informationauteur BobDroid
Vous devez vous connecter pour publier un commentaire.
Vous pouvez importer à partir d'une source de vide, ou d'un invalide fichier pdf, dans mon cas pdfCopy ne fonctionnent pas, alors voici le code que j'ai utilisé.
...
Cela devrait fonctionner.
Essayez alors d'abord renommer le fichier d'entrée pour .baket la lecture de la .baket l'écriture de la .pdf. Qui pourrait donner un indice si l'erreur est avec la lecture ou l'écriture.
Itext n'est pas une API unique, mais plusieurs d'entre eux, mélangés ensemble. Assez dur parfois. J'ai fait:
À la fermeture du
PdfReader
etFileInputStream
.De fermer les deux
Document
etPdfWriter
.Vous devez utiliser
PdfCopy
au lieu dePdfWriter.getInstance
car il ne parvient pas à mettre à jour le PDF des références à des objets autrement.En outre, au lieu d'ajouter un
Image
le document, vous pouvez utiliser lePdfCopy.addPage
méthode, qui accepte unPdfImportedPage
comme paramètre.Dans Mon cas PDF exemple de fichier a été endommagé. télécharger un nouveau fichier ça fonctionne.
J'ai eu le même message d'erreur et je viens de changer mon PdfReader de lecture InputStreams lire des Cordes. Donc, il fonctionne parfaitement avec:
}
*À l'origine, j'ai pris ce code à partir de http://www.mindfiresolutions.com/Java-Merging-multiple-PDFs-into-a-single-PDF-using-iText-671.php