PDF文档中其中一页出现了损坏,PDF转换Word会出现卡顿。
不知道是否有办法来判断这一页能否正常转化为word,如果出现不能正常转换的页面,就把这一页删除。
PDF文档中其中一页出现了损坏,PDF转换Word会出现卡顿。
不知道是否有办法来判断这一页能否正常转化为word,如果出现不能正常转换的页面,就把这一页删除。
我的PDF文档中有一页文档出现了损坏,用aspose.pdf 把这个PDF文档转换为Word文档的过程中,因为有损坏的PDF页面,转换进程会卡住,一直转换不成功。
不知道是否有办法来判断出PDF中的损坏页面,把它删除掉。
下面是示例文件,文件过大,提供的是一个下载链接
文档内部结构有问题,文档在 Adobe Acrobat 中显示第 6、36、58 和 76 页有问题。
您可以逐页转换文档,跳过这些页面,或者等待 .net 项目团队调查相关问题 (PDFNET-53018) 并尝试实施尝试跳过有问题的内容的算法。
但是在原始文档损坏之前找到原始文档的最好方法是转换它。
以下代码将跳过第 76 页执行转换,由于内部文档问题,转换后的第 6、36、58、76 页会出现问题。但是其他页面的转换没有任何问题。
Document pdfDocument = new Document(dataDir + "hang.pdf");
for(int i=1;i<=pdfDocument.getPages().size();i++) {
try {
Page item = pdfDocument.getPages().get_Item(i);
Document doc = new Document();
doc.getPages().add(item);
doc.save(dataDir + "output_page_"+i+"_version"+version+".docx", SaveFormat.DocX);
} catch (Exception e) {
System.out.println("the page "+i+" is skipped.");
e.printStackTrace();
}
}
此外,您缺少堆内存,这是我们可以看到任何挂起的唯一情况。逐页转换将有助于减少内存使用或找到可能导致您这边问题的确切页面。
page_6.png (48.2 KB)
page_76.png (15.8 KB)