2

我正在寻找将docx文件转换为pdfJava 的最佳方法,这是我尝试过的:

File wordFile = new File("wordFile.docx"), target = new File("target.pdf");
IConverter converter;
Future<Boolean> conversion = converter.convert(wordFile)
.as(DocumentType.MS_WORD)
.to(target)
.as(DocumentType.PDF)
.prioritizeWith(1000) // optional
.schedule();

问题是我在我的程序中找不到 IConverter 类...

4

2 回答 2

3

您显然正在尝试使用documents4j,因此我建议您仔细阅读那里的文档。看来您documents4j的项目中没有包含库(您至少需要documents4j-api依赖项,但我建议您看一下documents4j-local)。

您可以直接添加所需的库Maven(只需添加下面的依赖项)或直接获取jar

<dependency> 
<groupId>com.documents4j</groupId> 
<artifactId>documents4j-api</artifactId> 
<version>1.0.2</version> 
<type>pom</type> 
</dependency>
于 2016-11-30T16:17:39.233 回答
0

我希望您尝试此代码,因为它为我提供了 PDF 转换器输出文件,我不确定准确性。

InputStream is = new FileInputStream(new File("your Docx PAth"));
            WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
                    .load(is);
            List sections = wordMLPackage.getDocumentModel().getSections();
            for (int i = 0; i < sections.size(); i++) {
                wordMLPackage.getDocumentModel().getSections().get(i)
                        .getPageDimensions();
            }
            Mapper fontMapper = new IdentityPlusMapper();
            PhysicalFont font = PhysicalFonts.getPhysicalFonts().get(
                    "Comic Sans MS");//set your desired font 
            fontMapper.getFontMappings().put("Algerian", font);
            wordMLPackage.setFontMapper(fontMapper);
            PdfSettings pdfSettings = new PdfSettings();
            org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
                    wordMLPackage);
            //To turn off logger
            List<Logger> loggers = Collections.<Logger> list(LogManager
                    .getCurrentLoggers());
            loggers.add(LogManager.getRootLogger());
            for (Logger logger : loggers) {
                logger.setLevel(Level.OFF);
            }
            OutputStream out = new FileOutputStream(new File("Your OutPut PDF path"));
            conversion.output(out, pdfSettings);
            System.out.println("DONE!!");

希望这个解决方案可以解决您的问题。谢谢!!

于 2016-12-02T03:13:29.103 回答