PDF en-tête de la signature n'est pas trouvé, iText

Salut, je suis en train de lire un fichier PDF qui est en cours d'envoi par la servlet.

Voici le code

//out = byte array
out = readInItem(item);
fileToUpload = new ByteArrayInputStream(out.toByteArray());

Map<String, AcroFields.Item> pdfBoxNames = new HashMap<String, AcroFields.Item>();
PdfReader reader = new PdfReader(fileToUpload);
ByteArrayOutputStream os = new ByteArrayOutputStream();
PdfStamper stamper = new PdfStamper(reader, os);
AcroFields acroFields = stamper.getAcroFields();
pdfBoxNames = acroFields.getFields();

Mon pdf commence comme cette %PDF-1.6

Message d'erreur est
java.io.IOException: PDF-tête de signature not found.

  • J'ai trouvé la solution. PDFReader ne prend que le inputstream que vous obtenez à partir de l'article.openstream(); si vous les convertir en quelque chose comme ByteArrayInputStream il commencera à lancer des exceptions. Donc, ne donnent qu'un inputstream que celui que vous obtenez lorsque vous téléchargez le fichier.
  • Vous pouvez bien sûr également construire la PdfReader objet avec le tableau d'octets contenant le PDF octets. Vous n'avez pas besoin de créer le ByteArrayInputStream.
InformationsquelleAutor Rohan Dmello | 2012-09-20