我有一个docx4j生成的文件,其中包含多个表格,标题,最后是一个excel生成的曲线图。
为了将此文件转换为PDF,我尝试了很多方法,但没有取得任何成功的结果。
我在Apache POI中使用的代码如下:
public static void convert(String inputPath, String outputPath)
throws XWPFConverterException, IOException {
PdfConverter converter = new PdfConverter();
converter.convert(new XWPFDocument(new FileInputStream(new File(
inputPath))), new FileOutputStream(new File(outputPath)),
PdfOptions.create());
}
我不知道如何在PDF中获取图表,有人可以告诉我如何继续吗?
提前致谢。
答案 0 :(得分:3)
我不知道这对你有帮助,但你可以使用" jacob" (我不知道apache poi或docx4j是否可能) 使用此解决方案,您可以打开" Word"自己并将其导出为pdf。
!需要在计算机上安装Word !
下载页面:http://sourceforge.net/projects/jacob-project/
try {
if (System.getProperty("os.arch").contains("64")) {
System.load(DLL_64BIT_PATH);
} else {
System.load(DLL_32BIT_PATH);
}
} catch (UnsatisfiedLinkError e) {
//TODO
} catch (IOException e) {
//TODO
}
ActiveXComponent oleComponent = new ActiveXComponent("Word.Application");
oleComponent.setProperty("Visible", false);
Variant var = Dispatch.get(oleComponent, "Documents");
Dispatch document = var.getDispatch();
Dispatch activeDoc = Dispatch.call(document, "Open", fileName).toDispatch();
// https://msdn.microsoft.com/EN-US/library/office/ff845579.aspx
Dispatch.call(activeDoc, "ExportAsFixedFormat", new Object[] { "path to pdfFile.pdf", new Integer(17), false, 0 });
Object args[] = { new Integer(0) };//private static final int DO_NOT_SAVE_CHANGES = 0;
Dispatch.call(activeDoc, "Close", args);
Dispatch.call(oleComponent, "Quit");