当前位置:首页 > Java

java如何转换pdf

2026-03-18 06:34:18Java

使用Apache PDFBox库转换PDF

Apache PDFBox是一个开源的Java库,支持PDF文档的创建、操作和提取内容。以下示例展示如何将文本内容写入PDF文件:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

public class PdfBoxExample {
    public static void main(String[] args) throws Exception {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        PDPageContentStream contentStream = new PDPageContentStream(document, page);
        contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
        contentStream.beginText();
        contentStream.newLineAtOffset(100, 700);
        contentStream.showText("Hello PDF");
        contentStream.endText();
        contentStream.close();

        document.save("output.pdf");
        document.close();
    }
}

使用iText库处理PDF

iText是另一个流行的Java PDF处理库,支持高级PDF操作功能。以下是使用iText创建PDF的示例:

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

public class ITextExample {
    public static void main(String[] args) throws Exception {
        PdfWriter writer = new PdfWriter("output.pdf");
        PdfDocument pdf = new PdfDocument(writer);
        Document document = new Document(pdf);

        document.add(new Paragraph("Hello World with iText"));
        document.close();
    }
}

将HTML转换为PDF

使用Flying Saucer库可以将HTML内容渲染为PDF:

import org.xhtmlrenderer.pdf.ITextRenderer;
import java.io.FileOutputStream;

public class HtmlToPdf {
    public static void main(String[] args) throws Exception {
        String html = "<html><body><h1>Hello PDF</h1></body></html>";
        ITextRenderer renderer = new ITextRenderer();
        renderer.setDocumentFromString(html);
        renderer.layout();

        FileOutputStream fos = new FileOutputStream("output.pdf");
        renderer.createPDF(fos);
        fos.close();
    }
}

使用OpenPDF处理PDF

OpenPDF是iText的一个分支,提供类似的PDF处理功能:

import com.lowagie.text.Document;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;

public class OpenPdfExample {
    public static void main(String[] args) throws Exception {
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));

        document.open();
        document.add(new Paragraph("Hello OpenPDF"));
        document.close();
    }
}

使用JasperReports生成PDF

JasperReports是一个强大的报表生成工具,支持输出为PDF格式:

java如何转换pdf

import net.sf.jasperreports.engine.*;
import java.util.HashMap;

public class JasperReportExample {
    public static void main(String[] args) throws Exception {
        JasperReport jasperReport = JasperCompileManager.compileReport("report.jrxml");
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap<>(), new JREmptyDataSource());

        JasperExportManager.exportReportToPdfFile(jasperPrint, "output.pdf");
    }
}

每种方法适用于不同场景:PDFBox适合基础PDF操作,iText/OpenPDF适合复杂文档生成,Flying Saucer适合HTML转PDF,JasperReports适合报表生成。选择时应考虑项目需求和许可限制。

标签: javapdf
分享给朋友:

相关文章

如何删除java

如何删除java

卸载 Java 的步骤 Windows 系统: 打开控制面板,选择“程序和功能”或“卸载程序”,在列表中找到 Java 相关条目(如“Java Runtime Environment”或“Java D…

vue 实现导出pdf

vue 实现导出pdf

实现 Vue 导出 PDF 的方法 使用 html2pdf.js 库 html2pdf.js 是一个基于 jsPDF 和 html2canvas 的库,可以直接将 HTML 元素转换为 PDF。 安…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…