java - 使用 iText 和 PdfGraphics2D 的 PPTX 到 PDF 错误

标签 java apache itext apache-poi apache-tika

我正在尝试将 pptx 文件转换为图像,然后使用 apache poi 和 iText 创建 PDF。

Dimension pgsize = ppt.getPageSize();
XSLFSlide slide = ppt.getSlides()[0];
PdfWriter pdfWriter = null;
Document document = new Document()

pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(targetPath));
document.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
document.open();

PdfGraphics2D graphics = (PdfGraphics2D) pdfWriter.getDirectContent().createGraphics((float) pgsize.getWidth(),
                            (float) pgsize.getHeight());

slide.draw(graphics);
graphics.dispose();
document.close();

但我收到错误:

java.lang.AbstractMethodError: org.apache.poi.xslf.usermodel.XSLFTextRun.getFontInfo(Lorg/apache/poi/common/usermodel/fonts/FontGroup;)Lorg/apache/poi/common/usermodel/fonts/FontInfo;
    at org.apache.poi.sl.draw.DrawTextParagraph.getAttributedString(DrawTextParagraph.java:584) ~[poi-3.17.jar:3.17]
    at org.apache.poi.sl.draw.DrawTextParagraph.breakText(DrawTextParagraph.java:259) ~[poi-3.17.jar:3.17]
    at org.apache.poi.sl.draw.DrawTextShape.drawParagraphs(DrawTextShape.java:156) ~[poi-3.17.jar:3.17]
    at org.apache.poi.sl.draw.DrawTextShape.drawContent(DrawTextShape.java:125) ~[poi-3.17.jar:3.17]
    at org.apache.poi.sl.draw.DrawSimpleShape.draw(DrawSimpleShape.java:97) ~[poi-3.17.jar:3.17]
    at org.apache.poi.sl.draw.DrawSheet.draw(DrawSheet.java:71) ~[poi-3.17.jar:3.17]
    at org.apache.poi.sl.draw.DrawSlide.draw(DrawSlide.java:41) ~[poi-3.17.jar:3.17]
    at org.apache.poi.xslf.usermodel.XSLFSlide.draw(XSLFSlide.java:307) ~[tika-server-1.16.jar:1.16]

最佳答案

解决方案是不要混合 POI 版本。 Apache Tika 中已经有 POI

关于java - 使用 iText 和 PdfGraphics2D 的 PPTX 到 PDF 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53415615/

相关文章:

java - 不同名称、相同内容的文件的哈希函数

java - 下面的代码片段中发生了什么?

java - 我无法运行 Java 程序

node.js - 在 Apache、.htaccess 配置和 PHP 后面运行 Node.js

java - 检索 pdf 中图像的页码 - IText

java - VS Code Java 测试失败并显示 "Failed to load Application Context"

java - 成功启动后如何从浏览器访问Apache Tomcat

python - 无请求时网站速度慢 + cpu 使用率高

java - iText - 使用 PdfCleanUpProcessor 后输出文件字体看起来模糊

c# - 将 PDF 转换为 PDF/A3 或将 PDF/A-1 转换为 PDF/A-3