FineReader 引擎 Java SDK。如何在从 PDF 转换为 DOCX 时忽略图片

FineReader Engine Java SDK. How to ignore pictures during conversion from PDF to DOCX

我需要找到一种在转换为 DOCX 文件的过程中忽略 PDF 文档中的图片和照片的方法。

我正在创建 FineReader 引擎的实例:

IEngine engine = Engine.InitializeEngine(
engineConfig.getDllFolder(), engineConfig.getCustomerProjectId(),
engineConfig.getLicensePath(), engineConfig.getLicensePassword(), "", "", false);

之后,我正在转换一个文档:

IFRDocument document = engine.CreateFRDocument();
document.AddImageFile(file.getAbsolutePath(), null, null);
document.Process(null);
String exportPath = FileUtil.prepareExportPath(file, resultFolder);
document.Export(exportPath, FileExportFormatEnum.FEF_DOCX, null);

因此,它转换了初始 pdf 文档中的所有图像。

PDF 输入页面包含什么? MS Word 中的预期内容是什么? 如果您能附上一个输入 PDF 文件的示例和一个 MS Word 格式的所需结果示例,那就太好了。 然后给个有用的推荐就容易多了。

我不太熟悉 PDF 到 DOCX 的转换,但我认为您可以根据需要尝试自定义配置文件。

在您的代码中的某个位置,您应该创建一个 Engine 对象,然后创建一个 Document 对象(或 IFRDocument 对象,具体取决于您的应用程序)。在将文档提供给引擎进行处理之前添加此行:

engine.LoadProfile(PROFILE_FILENAME);

然后使用 "Working with Profiles" 部分下 FRE 安装打包的文档中描述的一些处理参数创建您的文件。 不要忘记在您的文件中添加:

... some params under other sections

[PageAnalysisParams]
DetectText = TRUE       --> force text detection
DetectPictures = FALSE  --> ignore pictures
... other params under PageAnalysisParams

... some params under other sections

它对条形码等的工作方式相同...但请记住,在从该文件中添加或删除内容时对结果进行基准测试,因为它可能会改变处理速度和结果的全局质量。

当您将 pdf 导出到 docx 时,您应该使用一些导出参数。通过这种方式,您可以使用 IRTFExportParams。你可以获得这个对象:

IRTFExportParams irtfExportParams = engine.CreateRTFExportParams();

你可以像这样设置 writePicture 属性:

irtfExportParams.setWritePictures(false);

其中:IEngine engine为主界面。我想你知道如何初始化它;)))

您还必须在方法 document.Process() 属性 中进行设置。 (文档来自 IFRDocument document)。 在 Process() 方法中你必须给出 IDocumentProcessingParams iDocumentProcessingParams。这个对象有方法 setPageProcessingParams() 并且你必须在那里放 IPageProcessingParams iPageProcessingParams 参数(你可以通过 engine.CreatePageProcessingParams() 得到这个对象)。这个对象有方法:

iPageProcessingParams.setPerformAnalysis(true);
iPageProcessingParams.setPageAnalysisParams(iPageAnalysisParams);

在第一个方法中设置为真, 在第二个中,我们给出 iPageAnalysisParams(IPageAnalysisParams iPageAnalysisParams = engine.CreatePageAnalysisParams())。

最后一步,您必须像这样在 iPageAnalysisParamssetDetectPictures(false) 方法中设置假值。就这些:)

当你要导出文档时,你应该像这样放置这个参数:

IFRDocument document = engine.CreateFRDocument();
document.Export(filePath, FileExportFormatEnum.FEF_DOCX, irtfExportParams);

希望我的回答对大家有所帮助)))