📜  Servlet – 将数据写入 PDF

📅  最后修改于: 2022-05-13 01:55:39.625000             🧑  作者: Mango

Servlet – 将数据写入 PDF

Servlet 是一个接受请求并用响应响应它的对象。基本的 Servlet 包包含代表 servlet 请求和响应的Java对象,以及配置和执行环境信息。 Servlet 可以对任何形式的请求做出反应,尽管它们最常用于扩展 Web 服务器托管的应用程序。 Java对于此类应用程序,servlet 技术提供了特定于 HTTP 的 servlet 类。

让我们看看如何使用 servlet 技术将数据写入 PDF。这里简单地使用一个 servlet 来编写一些数据,然后将其显示为 PDF。作为本文的一部分,创建了一个将数据输出到 PDF 文件的应用程序。

为了创建应用程序,需要以下文件:

  • HTML 文件——该文件包含一个指向显示我们的 PDF 材料的 servlet 的 URL。
  • Servlet 文件- 此文件将数据保存为 PDF 文件,并通知服务器它是 PDF 文件类型。
  • web.xml – 用于设置 servlet 文件。服务器从这个 XML 文件接收 servlet 信息。

执行:

让我们开始构建这个应用程序。

第 1 步:第一步是打开 NetBeans IDE 并创建一个新项目。

步骤 2:现在选择“Java web”->“Web 应用程序”,如下图所示。

第 3 步:将项目命名如下。

第 4 步:选择版本和服务器向导,然后单击完成。

第 5 步:现在复制下面提供的 index.html 中的代码。

HTML



Write Data into Pdf using Servlet




 
  

Click on Below Link to Get your PDF

 
 
  Click Here  


Java
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.*;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
public class DownloadPdf extends HttpServlet {
    private static final long serialVersionUID = 1L;
    @Override
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
        throws ServletException, IOException
    {
  
        response.setContentType("application/pdf");
  
        response.setHeader(
            "Content-disposition",
            "inline; filename='Downloaded.pdf'");
  
        try {
  
            Document document = new Document();
  
            PdfWriter.getInstance(
                document, response.getOutputStream());
  
            document.open();
  
            document.add(new Paragraph("GeeksforGeeks"));
            document.add(new Paragraph(
                "This is a demo to write data to pdf\n using servlet\nThank You"));
  
            document.close();
        }
        catch (DocumentException de) {
            throw new IOException(de.getMessage());
        }
    }
}


XML


    
    
        DownloadPdf
        DownloadPdf
    
  
    
        DownloadPdf
        /DownloadPdf
    
    
        30
    


第 6 步:下载“itextpdf.jar”文件并将其添加到您的项目库中。

第 7 步:现在创建一个名为“DownloadPdf”的 servlet,并将提供的代码复制到其中。

例子

Java

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.*;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
public class DownloadPdf extends HttpServlet {
    private static final long serialVersionUID = 1L;
    @Override
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
        throws ServletException, IOException
    {
  
        response.setContentType("application/pdf");
  
        response.setHeader(
            "Content-disposition",
            "inline; filename='Downloaded.pdf'");
  
        try {
  
            Document document = new Document();
  
            PdfWriter.getInstance(
                document, response.getOutputStream());
  
            document.open();
  
            document.add(new Paragraph("GeeksforGeeks"));
            document.add(new Paragraph(
                "This is a demo to write data to pdf\n using servlet\nThank You"));
  
            document.close();
        }
        catch (DocumentException de) {
            throw new IOException(de.getMessage());
        }
    }
}

第 8 步:确保您的“web.xml”文件与下面的代码相同。

XML



    
    
        DownloadPdf
        DownloadPdf
    
  
    
        DownloadPdf
        /DownloadPdf
    
    
        30
    

第 9 步:项目已准备好运行,应用程序的输出如下所示。

第 10 步:点击链接后,将开始下载 pdf 文件。

第 11 步:下载的文件显示如下所示的输出。