gpt4 book ai didi

java - 将页面添加到现有 PDF com.itextpdf.text.exceptions.InvalidPdfException : PDF header signature not found

转载 作者:行者123 更新时间:2023-11-30 07:14:43 25 4
gpt4 key购买 nike

我正在尝试使用 Java 1.5 使用 iText 1.02b 向已创建的 PDF 添加页面。当我将新页面添加到现有 PDF 时,我得到了我包含的异常。这是我们遇到问题的方法中的代码。

public static File addSignaturePageToPDF(String fileName, InputStream fileInputStream, SignatureTemplateInfo signaturePageInfo, HttpServletRequest argRequest) throws Exception {

int splitIdx = fileName.lastIndexOf(".");
File signedFile = File.createTempFile(fileName.substring(0,splitIdx), fileName.substring(splitIdx));
SignatureModel signatureModel = SignatureHelper.getSignatureModel(signaturePageInfo.getCaseHeaders(), signaturePageInfo.getEventSubTp(), signaturePageInfo.getSignatureId(), argRequest);

byte[] signaturePdfAsBytes = SignatureHelper.createSignature(signatureModel, argRequest);
byte[] mainPdfAsBytes = getByteArrayFromInputStream(fileInputStream);
PdfReader mainPdfReader = new PdfReader(mainPdfAsBytes); << Exception here
PdfReader signaturePdfReader = new PdfReader(signaturePdfAsBytes);

异常(exception):

com.itextpdf.text.exceptions.InvalidPdfException: PDF header signature not found.
at com.itextpdf.text.pdf.PRTokeniser.checkPdfHeader(PRTokeniser.java:205)
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:496)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:189)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:178)
at icis.common.util.ConvertDocument.addSignaturePageToPDF(ConvertDocument.java:96)
at icis.cr.common.file.ViewFileAction.executeProcess(ViewFileAction.java:71)
at icis.common.action.BaseICISAction.execute(BaseICISAction.java:134)
at icis.cr.common.BaseCRAction.execute(BaseCRAction.java:41)

谢谢。

最佳答案

异常告诉您从 fileInputStream 获得的第一个字节不等于 '%', 'P', 'D', 'F', '-', '1', '.'.

也许您要检查的文件是空的,也许无法正确读取 InputStream,...

在你之前有很多人遇到并解决了同样的问题:

您应该通过将 mainPdfAsBytes 保存到一个文件并检查该文件来调试您的代码。它真的是PDF文件吗? iText 告诉您它不是以 %PDF-1. 开头。

关于java - 将页面添加到现有 PDF com.itextpdf.text.exceptions.InvalidPdfException : PDF header signature not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18342566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com