`

套打-生成pdf

阅读更多

/**

iTextAsian.jar

itext-2.0.1.jar

*/

 

package cn.gov.zjport.webapp.ata.pdf;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfWriter;

//import freemarker.template.utility.Coordinate;
//import freemarker.template.utility.ParsePrintTemplate;

/**
 *
 * @author pubinfo
 * @version
 */
public class PdfProducerServlet extends HttpServlet {
   
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

        /*
        ParsePrintTemplate parsept = new ParsePrintTemplate();

        HttpSession session = request.getSession();
        Map printcontent = (Map)session.getAttribute("printdata");
        String templatename =(String)session.getAttribute("templatename");

        ArrayList itemlist = parsept.getParameter(templatename);

        */
        Rectangle pageSize = null;
        float width  =21 *72f/2.54f;
        float height = 29.7f*72f/2.54f;
        pageSize = new Rectangle(width, height);
        Document document = new Document(pageSize, 36,36,36,36);
        ByteArrayOutputStream ba   = new ByteArrayOutputStream();
        ServletOutputStream servletOut = response.getOutputStream();
        try {
            PdfWriter writer =PdfWriter.getInstance(document, ba);
            document.open();
            PdfContentByte cb = writer.getDirectContent();
            cb.beginText();

            //汉字
            //BaseFont bfComic = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
            BaseFont bfComic = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            cb.setFontAndSize(bfComic, 9);
             float x, y;

                    x = 2* 72f/2.5f;
                    y = height - 2* 72f/2.5f;
                    cb.showTextAligned(PdfContentByte.ALIGN_LEFT, "中国", x, y, 0); 

            cb.endText();
            ba.writeTo(servletOut);
        } catch(DocumentException de) {
            de.printStackTrace();
            System.err.println("A Document error:" +de.getMessage());
        }
        document.close();
        response.setContentType("application/pdf");
        response.setContentLength(ba.size());
        ServletOutputStream out   = response.getOutputStream();
        ba.writeTo(out);
        out.flush();
       
    }
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    public String getServletInfo() {
        return "";
    }
}

分享到:
评论

相关推荐

    金蝶EAS通过套打模板实现后台生成PDF文件.docx

    ### 金蝶EAS通过套打模板实现后台生成PDF文件 #### 概述 本文旨在介绍如何在金蝶EAS系统中利用套打模板技术,通过后台服务器代码自动生成PDF文件,进而完成合同等文件的档案归档与备份工作。这种方法能够显著提高...

    flying-saucer-pdf-9.0.9转pdf相关包

    `flying-saucer`是一个流行的开源库,专门用于这个目的。标题中的“flying-saucer-pdf-9.0.9转pdf相关包”指的是使用`...同时,结合FreeMarker和iText,可以实现更复杂的功能,如动态生成PDF报告,满足各种定制化需求。

    aspose-17.8 Java 生成 pdf 工具类

    在IT行业中,生成PDF文档是常见的需求之一,特别是在Java开发中。Aspose是一家知名的软件公司,提供了一系列API来处理各种格式的文件,包括PDF。在本篇内容中,我们将聚焦于"Aspose-17.8 Java 生成PDF工具类",了解...

    java使用pdf模板套打二维码,文字,表格示例

    本示例主要探讨如何利用Java技术实现PDF模板套打,包括二维码、文字和表格的插入。PDF作为一种通用的文档格式,具有良好的跨平台性和打印质量,因此广泛应用于各种业务场景。 首先,我们需要一个可靠的PDF库来帮助...

    C#生成pdf文件

    当涉及到生成PDF文件时,C#提供了多种方法来实现这一功能。PDF(Portable Document Format)文件格式因其跨平台性和易于共享的特性,常用于文档的创建和分发。本篇文章将深入探讨如何利用C#生成PDF文件。 首先,...

    C#生成电子发票PDF文件的样例(使用了iText7)

    `Program.cs`文件是程序的主入口点,它调用`PDfMaker`中的方法生成PDF,并可能提供用户交互,如输入发票数据或保存生成的PDF到特定位置。`MakePDFDemo.csproj`是Visual Studio项目的配置文件,定义了项目结构、引用...

    Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    在IT行业中,生成PDF文件是常见的需求,尤其是在报告、文档或证书的生成上。Java作为一个强大的后端开发语言,提供了多种库来实现这一功能。本文将深入探讨如何使用iText7这个库在Java环境中生成带有页码和目录的PDF...

    生成pdf,加密、编辑pdf

    本主题将深入探讨如何生成PDF文件,如何为PDF添加水印,以及如何进行PDF的编辑操作。 1. **生成PDF文件**: - **方法一:使用在线工具**:许多在线平台如smallpdf、ilovepdf等提供PDF生成服务,只需上传或输入文本...

    haru-free PDF

    "Haru-Free PDF" 是一个开源的PDF文档生成库,主要用C语言编写,它提供了在各种编程环境中创建、编辑和保存PDF文件的功能。这个压缩包包含的是libharu-2.0.8版本,这是一个稳定的发布,为开发者提供了一个强大而灵活...

    python-3.6.7-docs-pdf-a4

    通过"python-3.6.7-docs-pdf-a4"这份文档,初学者不仅可以学习到Python的基础知识,还可以了解到一些高级特性和最佳实践。此外,中文版文档使得国内用户能更好地理解内容,减少语言障碍,提高学习效率。无论你是打算...

    PDF套打报表

    PDF套打报表是一种技术,它允许开发者利用预设的模板,将动态生成的数据无缝地嵌入到PDF文档中,以创建定制化的报表。在IT行业中,这种功能常用于企业内部的报告生成、财务报表、发票打印等场景,极大地提高了工作...

    java生成pdf文件

    Java生成PDF文件是一种常见的需求,特别是在企业级应用中,用于生成报告、发票、合同等文档。iText是一个广泛使用的开源库,专为Java和.NET设计,用于创建和修改PDF文档。在Java中生成PDF文件,iText库是首选工具之...

    excel模版生成pdf

    在IT行业中,将Excel模板转换为PDF是一种常见的需求,特别...综上所述,“excel模版生成pdf”涉及了Excel模板的创建与管理、PDF的格式优势以及文件转换技术。了解这些知识点,有助于提升工作效率,保证文档的专业呈现。

    PowerBuilder的DataWindow控件生成PDF文件

    ### PowerBuilder的DataWindow控件生成PDF文件:技术解析与应用案例 #### 技术背景与目标 在医疗信息化领域,医院信息系统(HIS)与影像归档和通信系统(PACS)之间的信息共享至关重要。《中国医疗器械杂志》2008...

    itext2.0.8+core-renderer-1.0.0+flying-saucer-pdf-9.1.3+xmlworker-5.4.3

    这个压缩包"itext2.0.8+core-renderer-1.0.0+flying-saucer-pdf-9.1.3+xmlworker-5.4.3"提供了一套解决方案,包含了一系列的Java库,使得开发者能够轻松实现HTML到PDF的转换。 首先,我们来看一下关键组件: 1. **...

    asp.net生成pdf详细资料

    在ASP.NET中生成PDF文档是一项常见的任务,尤其在企业级应用中,比如报表、发票、合同等需要打印或下载为PDF格式的场景。本详细资料将深入探讨如何使用不同的库和方法来实现在ASP.NET环境下生成PDF文件。 首先,...

    如何制作PDF套打模板

    套打模板则是预先设计好布局和内容的PDF文件,用于批量生成具有统一格式但个人信息不同的文档,如信函、报告、证书等。在制作过程中,通常会利用特定软件或编程工具来实现动态数据填充,确保每个生成的PDF文档都能...

    Java IText生成PDF

    在本篇文章中,我们将深入探讨如何使用IText在Java环境中生成PDF文档。 首先,你需要在项目中引入IText库。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;com.itextpdf&lt;/groupId&gt; ...

    flex生成pdf全套

    在Flex中生成PDF是一项常见的需求,特别是在需要将用户界面的内容导出为可打印或可分享的文档时。本资源“flex生成pdf全套”提供了一个解决方案,通过AlivePDF库来实现这一目标。 AlivePDF是Flex中一个轻量级的库,...

    C#打印条码不需要使用第三方插件,C#生成二维码,导出PDF,c#生成二维码超级简单,方便直接使用,易入门

    这个压缩包提供了一套完整的C#解决方案,无需依赖任何第三方插件,即可轻松实现二维码的生成、显示以及导出为PDF功能。下面我们将深入探讨这些知识点。 首先,C#生成二维码的核心是利用编码算法将文本数据转换成...

Global site tag (gtag.js) - Google Analytics