Java servlet PDF 教程展示了如何从 Java servlet 返回 PDF 数据。 我们使用 iText 库处理 PDF。 该 Web 应用已部署在 Tomcat 服务器上。
PDF 格式
便携式文档格式(PDF)是用于以独立于应用软件,硬件和操作系统的方式呈现文档的文件格式。 PDF 由 Adobe 发明,现在是国际标准化组织(ISO)维护的开放标准。
Java Servlet
Servlet 是 Java 类,可响应特定类型的网络请求-最常见的是 HTTP 请求。 Java servlet 用于创建 Web 应用。 它们在 servlet 容器(例如 Tomcat 或 Jetty)中运行。 现代 Java Web 开发使用在 servlet 之上构建的框架。
iText
iText 是一个开放源代码库,用于在 Java 中创建和处理 PDF 文件。
Java Servlet PDF 应用
以下 Web 应用使用 Java Servlet 将 PDF 文件发送到客户端。 它从对象列表生成 PDF。
这是项目结构。
pom.xml
这是 Maven POM 文件。 我们有两个工件:用于 Java 的 servlet 的javax.servlet-api
和用于 PDF 生成的itext
。 maven-war-plugin
负责收集 Web 应用的所有工件依赖项,类和资源,并将它们打包到 Web 应用存档(WAR)中。
context.xml
在 Tomcat context.xml
文件中,我们定义了上下文路径。 它是 Web 应用的名称。
City.java
这是City
bean。 它具有三个属性:id
,name
和population
。
MyServlet.java
这是MyServlet
servlet。 它从服务类检索数据,从数据生成 PDF 文件,然后将 PDF 文件返回给客户端。
我们将响应对象的内容类型设置为application/pdf
。
Content-Disposition
响应标头指示内容应在浏览器中显示为inline
,即作为 Web 页面或 Web 页面的一部分,或作为attachment
在本地下载和保存。 。 可选的filename
伪指令指定传输文件的名称。
我们从响应对象获得ServletOutputStream
。
从CityService
中,我们可以获得城市列表。
从CityService
中,我们可以获得城市列表。
我们根据数据生成 PDF 文件,并将返回的ByteArrayOutputStream
写入ServletOutputStream
。
CityService.java
CityService's
getCities()
方法返回城市对象的列表。
GeneratePdf.java
GeneratePdf
根据提供的数据创建 PDF 文件。
数据将被写入ByteArrayOutputStream
。 ByteArrayOutputStream
实现了一个输出流,其中数据被写入字节数组。
我们将数据放在表格中; 为此,我们有PdfPTable
类。 该表具有三列:ID,名称和人口。
我们使用粗体 Helvetica 字体作为表标题。
数据放置在表单元格内,由PdfPCell
表示。 setHorizontalAlignment()
方法使文本水平对齐。
使用PdfWriter
,将文档写入ByteArrayOutputStream
。
该表将插入到 PDF 文档中。
为了将数据写入ByteArrayOutputStream
,必须关闭文档。
最后,数据返回为ByteArrayOutputStream
。
在本教程中,我们从 Java servlet 发送了 PDF 数据。
您可能也对以下相关教程感兴趣:Java Servlet 图表教程,Java servlet 复选框教程, Java servlet 图像教程, Java Servlet HTTP 标头或 Java 教程