ppt转pdf

1.添加依赖

XML 复制代码
<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml-schemas</artifactId>
        <version>5.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext7-core</artifactId>
        <version>7.2.2</version>
    </dependency>
</dependencies>

2.示例代码

java 复制代码
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFShape;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class PptToPdfConverter {
    public static void main(String[] args) {
        String pptFilePath = "input.pptx"; // 输入的PPT文件路径
        String pdfFilePath = "output.pdf"; // 输出的PDF文件路径

        try {
            convertPptToPdf(pptFilePath, pdfFilePath);
            System.out.println("转换成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void convertPptToPdf(String pptFilePath, String pdfFilePath) throws IOException {
        XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(pptFilePath));
        PdfWriter writer = new PdfWriter(new FileOutputStream(pdfFilePath));
        PdfDocument pdfDoc = new PdfDocument(writer);
        Document pdfDocument = new Document(pdfDoc);
// 设置中文字体
        PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", true);
        for (XSLFSlide slide : ppt.getSlides()) {
            StringBuilder slideContent = new StringBuilder();
            for (XSLFShape shape : slide.getShapes()) {
                slideContent.append(shape.getText()).append("\n");
            }
            pdfDocument.add(new Paragraph(slideContent.toString()).setFont(font));
        }

        pdfDocument.close();
        pdfDoc.close();
        ppt.close();
    }
}
  • Apache POI + PDFBox适合简单需求,但对复杂文档支持有限。
  • 处理复杂的PPT文档,可以使用商业版的Aspose.Slides
相关推荐
weixin_441003644 小时前
2027徐涛《核心考案+优题库》电子版pdf
pdf
IT大师兄吖4 小时前
paddleOcr 懒人整合包 添加pdf和图片转markdown 添加GPU支持
pdf
IT大师兄吖5 小时前
PaddleOCR-VL-1.5 懒人整合包 支持PDF转MD 比PP-StructureV3更精准
pdf
AmyLin_20016 小时前
【pdf2md-3:实现揭秘】福昕PDF SDK Python 开发实战:从逐字符提取到 LR 版面分析
开发语言·python·pdf·sdk·markdown·pdf2md
开开心心就好7 小时前
伪装文件历史记录!修改时间的黑科技软件
java·前端·科技·r语言·edge·pdf·语音识别
其实秋天的枫8 小时前
【26最新】考研计算机408统考历年真题及答案解析PDF电子版(2009-2026年)
经验分享·pdf
优化控制仿真模型8 小时前
【26最新】考研计算机408统考历年真题及答案解析PDF电子版(2009-2026年)
经验分享·pdf
IT大师兄吖9 小时前
小红书FireRed-OCR 2B 图片和PDF转md 懒人整合包
pdf·ocr
SEO-狼术9 小时前
Secure PDF Delphi Edition
服务器·windows·pdf
long_songs10 小时前
纯前端 PNG/JPG 转 PDF 工具(无需服务器,源码分享)
服务器·前端·pdf