Aspose.PDF for Java系列5-转化PDF文档
DocFormat枚举类提供了DOCX格式的文件输出格式选项。如果你想要将PDF转化为DOCX格式,请参考本文下面的内容。
PDF转化为DOCX
步骤:
- 创建一个加载了PDF文档的Document对象。
- 使用Document.save()方法转化成SaveFormat.DocX格式。
具体代码如下:
public static void ConvertPDFtoWord_DOCX_Format() {
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");
pdfDocument.save(_dataDir + "saveOptionsOutput_out.doc", SaveFormat.DocX);
}
DocSaveOptions类有个Format属性,它提供了文档格式(DOC、DOCX)的功能。要将PDF转化成为DOCX格式,需要设置DocSaveOptions为DocFormat.DOCX.
具体代码如下:
public static void ConvertPDFtoWord_Advanced_DOCX_Format()
{
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");
DocSaveOptions saveOptions = new DocSaveOptions();
saveOptions.setFormat(DocSaveOptions.DocFormat.DocX);
pdfDocument.save("ConvertToDOCX_out.docx", saveOptions);
}
PDF转化为DOC
步骤:
- 创建一个加载了PDF文档的Document对象。
- 使用Document.save()方法转化成SaveFormat.Doc格式。
代码如下:
public static void main(String[] args) throws IOException {
ConvertPDFtoWord();
ConvertPDFtoWordDocAdvanced();
}
public static void ConvertPDFtoWord() {
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");
pdfDocument.save(_dataDir + "PDFToDOC_out.doc", SaveFormat.Doc);
}
使用DocSaveOptions进行转化
public static void ConvertPDFtoWordDocAdvanced()
{
Path pdfFile = Paths.get(_dataDir.toString(), "PDF-to-DOC.pdf");
Path docFile = Paths.get(_dataDir.toString(), "PDF-to-DOC.doc");
Document pdfDocument = new Document(pdfFile.toString());
DocSaveOptions saveOptions = new DocSaveOptions();
saveOptions.setFormat(DocSaveOptions.DocFormat.Doc);
saveOptions.setMode(DocSaveOptions.RecognitionMode.Flow);
saveOptions.setRelativeHorizontalProximity(2.5f);
saveOptions.setRecognizeBullets(true);
pdfDocument.save(docFile.toString(), saveOptions);
}
关于DocSaveOptions类
DocSaveOptions类提供了许多属性,方便设置将PDF转化为DOC格式的过程。可以通过设置Mode属性来指定PDF内容识别模式,Mode的取值来自RecognitionMode枚举类。
- Textbox mode是最快速的,但是转化完成的DOC文档编辑性较差。原本的PDF文档中每个都被视为文本块进行了转化。这样可以最大程序保持原本PDF文档的样子,输出的文档高度相似,唯一不好的就是编辑起来比较麻烦。
- Flow mode模式引擎执行分组和多级分析,尽量还原PDF文档,但是易于编辑。
- RelativeHorizontalProximity属性可用于控制文本元素之间的相对接近度(字间距、字体大小)。指定字体大小的相似百分比。
- RecognitionBullets用来设置转化过程的快速识别。