PDF转Word问题

PDF文档中其中一页出现了损坏,PDF转换Word会出现卡顿。

不知道是否有办法来判断这一页能否正常转化为word,如果出现不能正常转换的页面,就把这一页删除。

@Gavin_Zhang, 您对 Aspose.PDF 或 Aspose.Words 有疑问吗?

我的PDF文档中有一页文档出现了损坏,用aspose.pdf 把这个PDF文档转换为Word文档的过程中,因为有损坏的PDF页面,转换进程会卡住,一直转换不成功。

不知道是否有办法来判断出PDF中的损坏页面,把它删除掉。

下面是示例文件,文件过大,提供的是一个下载链接

@Gavin_Zhang
您能否附上您用来在我们这边重现问题的输入 PDF 和代码示例? 我们将调查该问题并为您提供更多信息。

@tahir.manzoor @dshvydkiy
附件是示例文件

@Gavin_Zhang

我们已在问题跟踪系统中将此问题记录为 PDFJAVA-42053。 解决此问题后,您将通过此论坛主题收到通知。

对于给您带来的不便,我们深表歉意。

@Gavin_Zhang

文档内部结构有问题,文档在 Adob​​e 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)