`

套打-生成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进行档案归档备份,可通过后台服务器代码进行开发实现;

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

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

    使用java生成pdf文件

    可以将数据通过数据流形式进行pdf化的一套代码。

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

    C#生成电子发票PDF文件的样例(使用了iText7), 以指定的模板,来填充发票的数据,以正规发票的格式生成。

    mybatis-plus3.5.1,代码生成器集成(自定义模板).pdf

    mybatis-plus3.5.1,代码生成器集成(自定义模板)

    flex生成pdf全套

    这个资源绝对可信,并可以帮你学会如何用flex来实现pdf文件的生产和转化。

    vue 打印(模板套打)

    vue 使用 print-template 生成pdf 打印 。支持生成二维码、条形码、文本、图片、线  安装 yarn add print-template 或 npm install print-template 内容类型 line 线条 barcode 条形码 qrcode 二维码 ...

    论文研究-ICCProfile自动生成技术.pdf

    针对目前缺乏Profile自动生成工具,传统分光测色仪价格昂贵,自动化程度低的现状,设计实现了一个符合ICC规范的Profile编辑器,给出了一套基于3-CCD扫描方式的自动检测方法,实现了ICC Profile的自动生成。

    dw2pdf,Pb数据窗口转Pdf, pdfdll.rar

    PB数据窗口DataWindow转PDF,通过DLL实现,可简单快速实现数据窗口转为PDF文件,如生成报告之类的需要实现;自测可用

    PDF生成工具pdf打印机源码

    开源的PDF打印机,对于要开发和制作pdf打印机的人很有参考价值,整套源码可以编译。

    好用的pdf文档生成器

    文档打印直接生成pdf,各种os下可以用,在windows7下未测试。

    论文研究-一种基于CORBA和UML的网管接口TTCN-3测试套生成方法 .pdf

    一种基于CORBA和UML的网管接口TTCN-3测试套生成方法,任梓为,王智立,CORBA是网络管理中的主流接口技术之一,目前的网络管理接口一般主要采用UML来进行与实现技术无关的信息建模,而将IDL作为一种基于具�

    PDF-Xchange pro 4

    PDF-XChange介绍 ================ 是来自加拿大的全功能PDF套件,包括一个PDF阅读器PDF-XChange Viewer、PDF处理工具PDF-XChange Tools 4.0和Office文档转换工具PDF-XChange Office2PDF,使用体验超过Foxit Phantom...

    Java实现套打快递单

    此项目是用Java技术实现套打快递单功能,快递单模版是EMS,里面的代码比较简单,用的主要是BufferedImage读取模版,然后使用Graphics画图来实现对应关系,生成的是xps文件,可以直接在复印机或者打印机进行操作。

    ruoyi-print.zip

    在ruoyi系统中,集成了开源的CLodop打印插件,实现了自定义打印模板,可支持空白纸打印和套打打印模板的定制

    php生成PDF格式文件并且加密

    开源的TCPDF是基于PHP的一套类库,它能够很好的生成PDF格式的文档。并且支持文件加密,在目前的开源PHP框架、系统、应用中也使用得很广。这里是设置PDF文档的相关属性的方法原型,其中就可以设置密码 TCPDF::...

    阿里EasyExcel的操作.pdf

    Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及...

    Pytorch实现数字对抗样本生成全套代码(GAN)

    利用GAN的思想,进行数字对抗样本生成,以LeNet作为图像分类模型,LeNet是一个小型的神经网络结构,仅包含两层卷积层、两个池化层以及三层全连接。该轻量级网络能快速、占内存小、高精确度的解决复杂度比较低的问题...

    使用rst2pdf实现将sphinx生成PDF

    现在想要将文档导出为离线的handbook pdf,于是找到了rst2pdf这个项目,作为sphinx的拓展,然后加上少量配置即可输出中文PDF。 rst2pdf 简介 rst2pdf是一个将 reStructuredText 转换为 PDF 的工具,具有下列特性: ...

Global site tag (gtag.js) - Google Analytics