itext 合并多个pdf为一个pdf 报错

长智齿的程序媛 2015-11-06 11:51:26
如题。Java代码如下

public class MergePdfs {

public static void mergePdfFiles(String[] files, String savepath) throws DocumentException {
try {

// ITextFontResolver fontResolver = renderer.getFontResolver();
// fontResolver.addFont("c:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H,
// BaseFont.NOT_EMBEDDED);
//
Document document = new Document(new PdfReader(files[0]).getPageSize(1));
File outFile = new File(savepath);
if(!outFile.exists()){
outFile.createNewFile();
}

PdfCopy copy = new PdfCopy(document, new FileOutputStream(outFile));
document.open();
for (int i = 0; i < files.length; i++) {
PdfReader reader = new PdfReader(files[i]);
int n = reader.getNumberOfPages();
for (int j = 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, j);
copy.addPage(page);
}
}
document.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
}







报错显示:

com.itextpdf.text.exceptions.InvalidPdfException: PDF header signature not found.
at com.itextpdf.text.pdf.PRTokeniser.getHeaderOffset(PRTokeniser.java:227)
at com.itextpdf.text.pdf.PdfReader.getOffsetTokeniser(PdfReader.java:486)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:176)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:219)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:207)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:197)
at cn.yitongwang.utils.MergePdfs.mergePdfFiles(MergePdfs.java:18)
at cn.yitongwang.service.CommonServiceImpl.slectAllPdfTasks(CommonServiceImpl.java:1487)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy8.slectAllPdfTasks(Unknown Source)
at cn.yitongwang.utils.PDFtransferEntrance.main(PDFtransferEntrance.java:14)





怎么解决!!
...全文
583 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_45496485 2019-10-24
  • 打赏
  • 举报
回复
应该不是生成报错,这种报错,一般值得是你传入的合并的PDF有错误,最好确保自己的PDF没错
SoulMate_Boy 2015-11-07
  • 打赏
  • 举报
回复
pdf曾经做过两种方式:1.根据模板写入数据2.直接代码生成 看楼主应该是直接生成的,好像 生成的pdf少个部位。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧