跳至页脚内容
在 JAVA 中使用 IRONPDF

如何从 Java 应用程序动态生成 PDF 文件

本教程将解释如何在 Java 应用程序中动态创建 PDF 文件,并探讨从文本、URL 和 HTML 页面创建 PDF 页面的代码示例。 之后,它将涵盖从新文档实例创建受密码保护的 PDF 文件。

IronPDF Java 库是实现这一目的的理想选择,因为它可以免费用于开发,更加安全,在一个库中提供所有功能,准确率达到 100%,而且性能特别好。

在继续前行之前,我们先来简单介绍一下 IronPdf。

IronPDF。

IronPDF Java Library 是 Iron Software 开发的最流行的 Java PDF 库,用于创建 PDF、编辑新文件和操作现有 PDF。 它的设计兼容多种 JVM 语言,包括 Java、Scala 和 Kotlin,并可在多种平台上运行,包括 Windows、Linux、Docker、Azure 和 AWS。 IronPDF 可与 IntelliJ IDEA 和 Eclipse 等流行的集成开发环境配合使用。

主要功能包括 从 HTML、HTTP、JavaScript、CSS、XML 文档和各种图像格式创建 PDF 文件的能力。 此外,IronPDF 还提供添加页眉和页脚在 PDF 中创建表格的功能、添加数字签名、附件、实现密码和安全功能。 它支持完整的多线程和更多

现在,让我们从创建动态文档的代码示例开始。

首先,创建一个新的 Maven 资源库项目。

创建一个新的Java项目

为便于演示,本教程将使用 IntelliJ IDE。您可以使用自己选择的集成开发环境。创建新 Java 项目的步骤可能因 IDE 而异。请使用以下步骤:

1.启动 IntelliJ IDE。

  1. 选择文件>新建>项目。 3.输入项目标题。 4.选择地点、语言、构建系统和 JDK。
  2. 点击创建按钮。

如何从 Java 应用程序动态生成 PDF 文件,图 1:创建项目创建项目

命名您的项目,选择位置、语言、构建系统和 JDK,然后选择 创建按钮选项。 将创建一个新项目。

现在,在此演示 Java 应用程序中安装 IronPDF for Java。

安装 IronPDF for Java 库

下一步是在 pom.xml 文件中添加安装 IronPdf 的依赖关系。 如下所示,在 pom.xml 文件中添加以下 XML 源代码。

<!-- Add IronPDF to your Maven Project -->
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>INSERT_LATEST_VERSION_HERE</version>
</dependency>
<!-- Add IronPDF to your Maven Project -->
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>INSERT_LATEST_VERSION_HERE</version>
</dependency>
XML

INSERT_LATEST_VERSION_HERE 替换为 Maven 代码库中 IronPDF 的最新版本

添加依赖关系后,构建项目。 应用程序将自动从 Maven 资源库中安装库。

让我们从一个将 HTML 字符串转换为 PDF 文件的简单例子开始。

创建 PDF 文档

请考虑以下示例:

import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;

public class HtmlToPdfExample {

    public static void main(String[] args) {
        // Define HTML content
        String htmlString = "<h1>My First PDF File</h1><p>This is a sample PDF file</p>";

        // Convert HTML content to PDF
        PdfDocument myPdf = PdfDocument.renderHtmlAsPdf(htmlString);

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs(Paths.get("myPDF.pdf"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;

public class HtmlToPdfExample {

    public static void main(String[] args) {
        // Define HTML content
        String htmlString = "<h1>My First PDF File</h1><p>This is a sample PDF file</p>";

        // Convert HTML content to PDF
        PdfDocument myPdf = PdfDocument.renderHtmlAsPdf(htmlString);

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs(Paths.get("myPDF.pdf"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
JAVA

在上述函数中,HTML 内容被分配给一个字符串变量。 [renderHtmlAsPdf 方法](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#renderHtmlAsPdf(java.lang.String))以字符串为参数,将 HTML 内容转换为 PDF 文档实例。 [saveAs 方法](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#saveAs(java.nio.file.Path))接受位置路径作为输入,并将 PDF 文件的实例保存在选定的目录中。

由上述代码生成的 PDF 如下所示。

如何从 Java 应用程序动态生成 PDF 文件,图 2:输出Output

从 HTML 文件生成 PDF 文件

IronPDF 还提供从 HTML 文件生成 PDF 文件的神奇功能。

示例中将使用的 HTML 文件示例如下所示。

如何从 Java 应用程序动态生成 PDF 文件,图 3:带新段落的渲染 HTML 使用新段落渲染 HTML.

以下是生成 PDF 的示例代码片段:

import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;

public class HtmlFileToPdfExample {

    public static void main(String[] args) {
        // Convert HTML file to PDF
        PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("myFile.html");

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs("myPDF.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;

public class HtmlFileToPdfExample {

    public static void main(String[] args) {
        // Convert HTML file to PDF
        PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("myFile.html");

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs("myPDF.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
JAVA

[renderHtmlFileAsPdf 方法](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#renderHtmlFileAsPdf(java.lang.String))接受 HTML 文件的路径作为参数,并从 HTML 文件生成 PDF 文档。然后,使用 saveAs 方法将 PDF 文件保存到本地驱动器。

该程序生成的 PDF 格式文件如下所示。

如何从 Java 应用程序动态生成 PDF 文件,图 4:PDF 输出PDF 输出

下一步是使用一个包含 JavaScript 和 CSS 的相当大的 HTML 文档,并在将 HTML 转换为 PDF 时检查设计的准确性和一致性。

从 HTML 文件生成 PDF 文件

将使用以下 HTML 页面示例,其中包括图片、动画、样式、jQuery 和 Bootstrap。

如何从 Java 应用程序动态生成 PDF 文件,图 5:示例 HTML 页面HTML 页面示例

如何从 Java 应用程序动态生成 PDF 文件,图 6:HTML 示例HTML示例

从 HTML 文档示例中可以看出,该文档具有丰富的样式并包含图形。 该 HTML 文件将被转换为 PDF 文档,并将对内容和样式的准确性进行评估。

将使用上述示例中的同一行代码。

import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;

public class StyledHtmlToPdfExample {

    public static void main(String[] args) {
        // Convert HTML file with styling to PDF
        PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("index.html");

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs("styledPDF.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;

public class StyledHtmlToPdfExample {

    public static void main(String[] args) {
        // Convert HTML file with styling to PDF
        PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("index.html");

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs("styledPDF.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
JAVA

前面的例子已经包含了代码解释。 其他内容不变;

这是输出的 PDF 文件:

 如何从 Java 应用程序动态生成 PDF 文件,图 7:HTML 转 PDF HTML 转 PDF

使用 IronPDF 创建 PDF 文件非常简单。 源文件的格式和内容必须保持一致。

也可使用 URL 创建 PDF 文件。

将 URL 转换为 PDF 文档

以下代码示例将从 URL 生成 PDF 文件。

import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;

public class UrlToPdfExample {

    public static void main(String[] args) {
        // Convert URL to PDF
        PdfDocument myPdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs("urlPDF.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;

public class UrlToPdfExample {

    public static void main(String[] args) {
        // Convert URL to PDF
        PdfDocument myPdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");

        // Save the PdfDocument to a file
        try {
            myPdf.saveAs("urlPDF.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
JAVA

[renderUrlAsPdf 函数](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#renderUrlAsPdf(java.lang.String))接受 URL 作为参数并将其转换为 PDF 文档。 该 PDF 文档随后将使用 saveAs 功能保存到本地驱动器。

以下是输出的 PDF 文件:

 如何从 Java 应用程序动态生成 PDF 文件,图 8:输出 PDF 输出 PDF

还可以添加水印、页眉、页脚、数字签名、转换 XML 文件/JSP 页面等。

下一步是生成受密码保护的 PDF。

生成受密码保护的 PDF 文件

以下示例代码演示了为生成的 PDF 文件添加安全性的示例。

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.security.PdfEditSecurity;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import java.io.IOException;
import java.nio.file.Paths;

public class SecurePdfExample {

    public static void main(String[] args) {
        // Load an existing PDF document
        PdfDocument myPdf = PdfDocument.fromFile(Paths.get("myPDF.pdf"));

        // Configure security options
        SecurityOptions securityOptions = new SecurityOptions();
        securityOptions.setAllowUserEdits(PdfEditSecurity.NO_EDIT);
        securityOptions.setAllowUserAnnotations(false);
        securityOptions.setAllowUserPrinting(PdfPrintSecurity.NO_PRINT);
        securityOptions.setAllowUserFormData(false);
        securityOptions.setOwnerPassword("123456"); // Set owner password
        securityOptions.setUserPassword("123412"); // Set user password

        // Apply security options to the PDF document
        myPdf.applySecurity(securityOptions);

        // Save the secured PdfDocument to a file
        try {
            myPdf.saveAs(Paths.get("securedPDF.pdf"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.security.PdfEditSecurity;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import java.io.IOException;
import java.nio.file.Paths;

public class SecurePdfExample {

    public static void main(String[] args) {
        // Load an existing PDF document
        PdfDocument myPdf = PdfDocument.fromFile(Paths.get("myPDF.pdf"));

        // Configure security options
        SecurityOptions securityOptions = new SecurityOptions();
        securityOptions.setAllowUserEdits(PdfEditSecurity.NO_EDIT);
        securityOptions.setAllowUserAnnotations(false);
        securityOptions.setAllowUserPrinting(PdfPrintSecurity.NO_PRINT);
        securityOptions.setAllowUserFormData(false);
        securityOptions.setOwnerPassword("123456"); // Set owner password
        securityOptions.setUserPassword("123412"); // Set user password

        // Apply security options to the PDF document
        myPdf.applySecurity(securityOptions);

        // Save the secured PdfDocument to a file
        try {
            myPdf.saveAs(Paths.get("securedPDF.pdf"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
JAVA

通过上述代码,PDF 文件为只读文件,不允许进行编辑或段落对齐。 文件还限制打印,确保无法打印。 还设置了密码。 文件现在非常安全。 通过这种方式,可以定义不同的文件权限,并使用 IronPDF 生成动态输出。

摘要

本教程演示了如何生成 PDF 文件。 根据 HTML 字符串、HTML 文件和 URL 创建 PDF 文件,示例从简单到复杂不等。 还有很多有用的功能,如添加水印、页脚、页眉、前景色、合并和拆分页面等。这里无法一一介绍; 请访问IronPDF官方文档进行进一步探讨。

通过 IronPDF,HTML 到 PDF 的转换变得轻而易举。 只需一行代码即可将 HTML 转换为 PDF。 PDF 文件中还添加了一些安全措施。它更快、更准确、更安全。 每个生成的 PDF 都包含 IronPDF 水印。 这是因为使用的是权限有限的免费开发版本,而不是商业许可证。 您可以根据需要购买 免费试用版完整许可证,以摆脱这种情况。

常见问题解答

如何在Java中从HTML生成PDF文件?

您可以通过使用IronPDF的renderHtmlAsPdf方法将HTML字符串转换,以及renderHtmlFileAsPdf方法用于HTML文件,在Java中从HTML生成PDF文件。

我应该使用什么方法在Java中将URL转换为PDF?

要在Java中将URL转换为PDF,请使用IronPDF的renderUrlAsPdf方法,这使您可以轻松地从网页创建PDF。

如何在Java中用密码保护PDF?

在Java中,您可以使用IronPDF设置SecurityOptions来为PDF文档添加密码并管理权限,从而保护PDF。

IronPDF在将HTML转换为PDF时能处理复杂的CSS吗?

是的,IronPDF可以在将HTML转换为PDF时处理复杂的CSS,确保生成的PDF文档中样式准确反映。

IronPDF的免费开发版本有什么限制?

IronPDF的免费开发版本在每个生成的PDF上都包含水印。购买商业许可证可以消除此限制。

IronPDF为PDF提供了哪些附加功能?

IronPDF提供的附加功能包括添加水印、页眉、页脚以及合并PDF中的页面。

在新的Java项目中如何设置IronPDF?

要在新的Java项目中设置IronPDF,请通过Maven安装库,然后将必要的类导入到您的项目中以开始生成PDF。

我可以限制IronPDF生成的PDF的编辑和打印吗?

是的,IronPDF允许您通过应用特定的安全设置来限制PDF文档的编辑、注释、打印和表单数据录入。

IronPDF for Java 支持哪些平台?

IronPDF for Java 支持广泛的平台,包括Windows、Linux、Docker、Azure和AWS。

在哪里可以找到使用IronPDF在Java中的详细文档?

可以在IronPDF官方网站上找到使用Java的详细文档和示例,提供全面的资源和指南。

Darrius Serrant
全栈软件工程师(WebOps)

Darrius Serrant 拥有迈阿密大学的计算机科学学士学位,目前在 Iron Software 担任全栈 WebOps 市场工程师。从小就被编码吸引,他认为计算机既神秘又易于接触,使其成为创意和问题解决的理想媒介。

在 Iron Software,Darrius 喜欢创造新事物,并简化复杂概念以使其更易理解。作为我们常驻的开发者之一,他还自愿教授学生,与下一代分享他的专业知识。

对于 Darrius 来说,他的工作令人满意,因为它被重视并产生真正的影响。