gpt4 book ai didi

java - 将包含图表的 docx 转换为 PDF

转载 作者:行者123 更新时间:2023-11-30 08:12:18 25 4
gpt4 key购买 nike

我有一个 docx4j 生成的文件,其中包含几个表格、标题,最后还有一个 excel 生成的曲线图。

为了将此文件转换为 PDF,我尝试了很多方法,但没有获得任何成功的结果。

  1. 带有 xsl-fo 的 Docx4j 无法工作,docx 文件中包含的大部分内容尚未实现,并以红色文本显示为“未实现”。
  2. JODConverter 也不起作用,我得到了一个生成的 PDF,其中一切都很好(只有很少的格式/样式问题)但图表没有显示。
  3. 最后,最接近的方法是使用 Apache POI:生成的 PDF 与我的 docx 文件相同,但仍然没有图表显示。
  4. 我已经知道 Aspose 可以很容易地解决这个问题,但我正在寻找一个开源、免费的解决方案。

我使用 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 中的图表,有人可以告诉我如何进行吗?

提前致谢。

最佳答案

我不知道这是否对你有帮助,但你可以使用“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");

关于java - 将包含图表的 docx 转换为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30619098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com