/**
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文件 #### 概述 本文旨在介绍如何在金蝶EAS系统中利用套打模板技术,通过后台服务器代码自动生成PDF文件,进而完成合同等文件的档案归档与备份工作。这种方法能够显著提高...
`flying-saucer`是一个流行的开源库,专门用于这个目的。标题中的“flying-saucer-pdf-9.0.9转pdf相关包”指的是使用`...同时,结合FreeMarker和iText,可以实现更复杂的功能,如动态生成PDF报告,满足各种定制化需求。
在IT行业中,生成PDF文档是常见的需求之一,特别是在Java开发中。Aspose是一家知名的软件公司,提供了一系列API来处理各种格式的文件,包括PDF。在本篇内容中,我们将聚焦于"Aspose-17.8 Java 生成PDF工具类",了解...
本示例主要探讨如何利用Java技术实现PDF模板套打,包括二维码、文字和表格的插入。PDF作为一种通用的文档格式,具有良好的跨平台性和打印质量,因此广泛应用于各种业务场景。 首先,我们需要一个可靠的PDF库来帮助...
当涉及到生成PDF文件时,C#提供了多种方法来实现这一功能。PDF(Portable Document Format)文件格式因其跨平台性和易于共享的特性,常用于文档的创建和分发。本篇文章将深入探讨如何利用C#生成PDF文件。 首先,...
`Program.cs`文件是程序的主入口点,它调用`PDfMaker`中的方法生成PDF,并可能提供用户交互,如输入发票数据或保存生成的PDF到特定位置。`MakePDFDemo.csproj`是Visual Studio项目的配置文件,定义了项目结构、引用...
在IT行业中,生成PDF文件是常见的需求,尤其是在报告、文档或证书的生成上。Java作为一个强大的后端开发语言,提供了多种库来实现这一功能。本文将深入探讨如何使用iText7这个库在Java环境中生成带有页码和目录的PDF...
本主题将深入探讨如何生成PDF文件,如何为PDF添加水印,以及如何进行PDF的编辑操作。 1. **生成PDF文件**: - **方法一:使用在线工具**:许多在线平台如smallpdf、ilovepdf等提供PDF生成服务,只需上传或输入文本...
"Haru-Free PDF" 是一个开源的PDF文档生成库,主要用C语言编写,它提供了在各种编程环境中创建、编辑和保存PDF文件的功能。这个压缩包包含的是libharu-2.0.8版本,这是一个稳定的发布,为开发者提供了一个强大而灵活...
通过"python-3.6.7-docs-pdf-a4"这份文档,初学者不仅可以学习到Python的基础知识,还可以了解到一些高级特性和最佳实践。此外,中文版文档使得国内用户能更好地理解内容,减少语言障碍,提高学习效率。无论你是打算...
PDF套打报表是一种技术,它允许开发者利用预设的模板,将动态生成的数据无缝地嵌入到PDF文档中,以创建定制化的报表。在IT行业中,这种功能常用于企业内部的报告生成、财务报表、发票打印等场景,极大地提高了工作...
Java生成PDF文件是一种常见的需求,特别是在企业级应用中,用于生成报告、发票、合同等文档。iText是一个广泛使用的开源库,专为Java和.NET设计,用于创建和修改PDF文档。在Java中生成PDF文件,iText库是首选工具之...
在IT行业中,将Excel模板转换为PDF是一种常见的需求,特别...综上所述,“excel模版生成pdf”涉及了Excel模板的创建与管理、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"提供了一套解决方案,包含了一系列的Java库,使得开发者能够轻松实现HTML到PDF的转换。 首先,我们来看一下关键组件: 1. **...
在ASP.NET中生成PDF文档是一项常见的任务,尤其在企业级应用中,比如报表、发票、合同等需要打印或下载为PDF格式的场景。本详细资料将深入探讨如何使用不同的库和方法来实现在ASP.NET环境下生成PDF文件。 首先,...
套打模板则是预先设计好布局和内容的PDF文件,用于批量生成具有统一格式但个人信息不同的文档,如信函、报告、证书等。在制作过程中,通常会利用特定软件或编程工具来实现动态数据填充,确保每个生成的PDF文档都能...
在本篇文章中,我们将深入探讨如何使用IText在Java环境中生成PDF文档。 首先,你需要在项目中引入IText库。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.itextpdf</groupId> ...
在Flex中生成PDF是一项常见的需求,特别是在需要将用户界面的内容导出为可打印或可分享的文档时。本资源“flex生成pdf全套”提供了一个解决方案,通过AlivePDF库来实现这一目标。 AlivePDF是Flex中一个轻量级的库,...
这个压缩包提供了一套完整的C#解决方案,无需依赖任何第三方插件,即可轻松实现二维码的生成、显示以及导出为PDF功能。下面我们将深入探讨这些知识点。 首先,C#生成二维码的核心是利用编码算法将文本数据转换成...