/**
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进行档案归档备份,可通过后台服务器代码进行开发实现;
java使用pdf模板套打二维码,文字,表格示例
可以将数据通过数据流形式进行pdf化的一套代码。
C#生成电子发票PDF文件的样例(使用了iText7), 以指定的模板,来填充发票的数据,以正规发票的格式生成。
mybatis-plus3.5.1,代码生成器集成(自定义模板)
这个资源绝对可信,并可以帮你学会如何用flex来实现pdf文件的生产和转化。
vue 使用 print-template 生成pdf 打印 。支持生成二维码、条形码、文本、图片、线 安装 yarn add print-template 或 npm install print-template 内容类型 line 线条 barcode 条形码 qrcode 二维码 ...
针对目前缺乏Profile自动生成工具,传统分光测色仪价格昂贵,自动化程度低的现状,设计实现了一个符合ICC规范的Profile编辑器,给出了一套基于3-CCD扫描方式的自动检测方法,实现了ICC Profile的自动生成。
PB数据窗口DataWindow转PDF,通过DLL实现,可简单快速实现数据窗口转为PDF文件,如生成报告之类的需要实现;自测可用
开源的PDF打印机,对于要开发和制作pdf打印机的人很有参考价值,整套源码可以编译。
文档打印直接生成pdf,各种os下可以用,在windows7下未测试。
一种基于CORBA和UML的网管接口TTCN-3测试套生成方法,任梓为,王智立,CORBA是网络管理中的主流接口技术之一,目前的网络管理接口一般主要采用UML来进行与实现技术无关的信息建模,而将IDL作为一种基于具�
PDF-XChange介绍 ================ 是来自加拿大的全功能PDF套件,包括一个PDF阅读器PDF-XChange Viewer、PDF处理工具PDF-XChange Tools 4.0和Office文档转换工具PDF-XChange Office2PDF,使用体验超过Foxit Phantom...
此项目是用Java技术实现套打快递单功能,快递单模版是EMS,里面的代码比较简单,用的主要是BufferedImage读取模版,然后使用Graphics画图来实现对应关系,生成的是xps文件,可以直接在复印机或者打印机进行操作。
在ruoyi系统中,集成了开源的CLodop打印插件,实现了自定义打印模板,可支持空白纸打印和套打打印模板的定制
开源的TCPDF是基于PHP的一套类库,它能够很好的生成PDF格式的文档。并且支持文件加密,在目前的开源PHP框架、系统、应用中也使用得很广。这里是设置PDF文档的相关属性的方法原型,其中就可以设置密码 TCPDF::...
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及...
利用GAN的思想,进行数字对抗样本生成,以LeNet作为图像分类模型,LeNet是一个小型的神经网络结构,仅包含两层卷积层、两个池化层以及三层全连接。该轻量级网络能快速、占内存小、高精确度的解决复杂度比较低的问题...
现在想要将文档导出为离线的handbook pdf,于是找到了rst2pdf这个项目,作为sphinx的拓展,然后加上少量配置即可输出中文PDF。 rst2pdf 简介 rst2pdf是一个将 reStructuredText 转换为 PDF 的工具,具有下列特性: ...