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

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

This tutorial will explain how to create PDF files dynamically in Java applications and explore the code examples for creating PDF pages from text, URL, and HTML pages. Afterward, it will cover the creation of a password-protected PDF file from a new document instance.

The IronPDF Java Library is ideal for this purpose because it is free for development, more secure, provides all functionalities in a single library with 100% accuracy, and performs exceptionally well.

Before moving forward, let's have a brief introduction to IronPDF.

IronPDF。

IronPDF Java Library is the most popular Java PDF library developed by Iron Software for creating PDFs, editing new files, and manipulating existing PDFs. It is designed to be compatible with a wide range of JVM languages, including Java, Scala, and Kotlin, and it can run on a wide range of platforms, including Windows, Linux, Docker, Azure, and AWS. IronPDF works with popular IDEs such as IntelliJ IDEA and Eclipse.

The main features include the ability to create a PDF file from HTML, HTTP, JavaScript, CSS, XML documents, and various image formats. In addition, IronPDF offers the abilities to add headers and footers, create tables in PDF, add digital signatures, attachments, implement passwords, and security features. It supports complete multithreading and so much more!

Now, let's begin with the code examples for creating dynamic documents.

First of all, create a new Maven repository project.

创建一个新的Java项目

For demonstration purposes, this tutorial will use IntelliJ IDE. You can use an IDE of your choice. Steps for creating a new Java project may differ from IDE to IDE. Use the following steps:

  1. Launch the IntelliJ IDE.
  2. Select File > New > Project.
  3. Enter Project Title.
  4. Choose a location, a language, a build system, and a JDK.
  5. Click the Create button.

How to Generate PDF Files From Java Applications Dynamically, Figure 1: Create a Project Create a Project

Name your project, choose a location, a language, a build system, and a JDK, then select the Create button option. A new project will be created.

Now, install IronPDF in this demo Java application.

Install IronPDF Java Library

The next step is to add a dependency in the pom.xml file for installing IronPDF. Add the following XML source code in the pom.xml file as shown below.

<!-- 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

Replace INSERT_LATEST_VERSION_HERE with the latest version of IronPDF from the Maven repository.

After adding the dependency, build the project. The application will automatically install the library from the Maven repository.

Let's begin with a straightforward example of converting an HTML string into a PDF file.

Create PDF Documents

在此示例中,IronPDF用于将HTML内容渲染为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

In the above function, the HTML content is assigned to a string variable. The renderHtmlAsPdf method takes a string as an argument and converts HTML content into a PDF document instance. The saveAs method accepts the location path as an input and saves the instance of the PDF file in the selected directory.

The PDF produced by the aforementioned code is shown below.

How to Generate PDF Files From Java Applications Dynamically, Figure 2: Output 输出

Generate PDF File from HTML File

IronPDF also provides the amazing functionality of generating PDF files from HTML files.

The sample HTML file that will be used in the example is shown below.

How to Generate PDF Files From Java Applications Dynamically, Figure 3: Rendered HTML with new paragraph Rendered HTML with new paragraph

The following is the sample code snippet for generating PDFs:

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

The renderHtmlFileAsPdf method accepts the path to the HTML file as an argument and produces a PDF document from the HTML file. This PDF file is afterward saved using the saveAs method to a local drive.

The document that this program generated in PDF format is shown below.

How to Generate PDF Files From Java Applications Dynamically, Figure 4: PDF Output PDF 输出

The next step is to use a sizable HTML document that contains JavaScript and CSS and check the accuracy and consistency of the design as it converts HTML to PDF.

Generate PDF files from HTML files

The following sample HTML page will be used and it includes images, animation, styling, jQuery, and Bootstrap.

How to Generate PDF Files From Java Applications Dynamically, Figure 5: Sample HTML Page Sample HTML Page

How to Generate PDF Files From Java Applications Dynamically, Figure 6: Sample HTML Sample HTML

The sample HTML document shows that it has extensive styling and includes graphics. This HTML file will be converted into a PDF document, and the accuracy of the content and styling will be evaluated.

The same line of code from the example above will be used.

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

The previous example already includes a code explanation. The rest is unchanged;

This is the output PDF file:

How to Generate PDF Files From Java Applications Dynamically, Figure 7: HTML to PDF HTML to PDF

Using IronPDF to create PDF files is quite simple. The source document's format and content are both consistent.

A URL can also be used to create a PDF file.

Convert URL to PDF document

The following code sample will generate a PDF file from a URL.

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

The renderUrlAsPdf function accepts a URL as an argument and converts it to a PDF document. This PDF document is later saved to a local drive using the saveAs function.

The following is the output PDF:

How to Generate PDF Files From Java Applications Dynamically, Figure 8: Output PDF 输出 PDF

It is also possible to add a watermark, header, footer, digital signature, convert XML files/JSP pages, and more.

The next step is to generate password-protected PDFs.

Generate Password-protected PDF File

The following sample code demonstrates the example of adding security to the generated PDF file.

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

The PDF file is made read-only by the above code, and edits or paragraph alignment are not allowed. The document is also restricted from printing, ensuring it cannot be printed. A password has also been set. The file is now very secure. In this way, different file permissions can be defined, and dynamic output can be generated using IronPDF.

摘要

This tutorial demonstrated how to generate PDF files. A PDF file was created from an HTML string, an HTML file, and a URL, with examples ranging from simple to complex. Many more useful features are available such as adding a watermark, footer, header, foreground color, merging and splitting pages, etc. All of them cannot be covered here; visit the IronPDF Official Documentation for further exploration.

HTML to PDF conversion was made a breeze by IronPDF. HTML was converted to PDF with just one line of code. Some security measures have also been added to the PDF file. It's faster, more accurate, and safer. Each generated PDF includes the IronPDF watermark. This is due to the fact that a free development version with limited permissions is being used, not the commercial license. It can be gotten rid of by purchasing a free trial version or a full license as needed.

常见问题解答

如何在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 来说,他的工作令人满意,因为它被重视并产生真正的影响。