- 浏览: 76770 次
- 来自: 北京
文章分类
最新评论
-
lifei2199:
[*]
解决session超时跳转首页,跳出frameset -
ITCheng:
<table id="errorLogTabl ...
Jsp导出Excel -
ITCheng:
dingding5060 写道这个插件商用要付费吗?
不需 ...
HighChart -
dingding5060:
这个插件商用要付费吗?不需要调用什么google api吧
HighChart -
ITCheng:
wanxkl 写道不错 用了 thangks
呵呵 多多交流 ...
java生成PDF格式文件并且加密
1.生成pdf的表格
package com.me.test; import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Table; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; /** * 生成表格到硬盘 * * @author admin * */ public class ITextTest { public void getTable(){ try { Document document = new Document(PageSize.A4, 20, 20, 20, 20); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("f:/IText/table.pdf")); document.open(); BaseFont bfChinese; bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false); Font fontChinese = new Font(bfChinese, 9, Font.BOLD, Color.black); Table t = new Table(12, 2); // t.setBorderColor(new Color(220, 255, 100)); int width[] = { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, }; t.setWidths(width); t.setWidth(100); // 占页面宽度 % t.setPadding(1); t.setSpacing(0); t.setBorderWidth(2); Cell c1 = new Cell("header1"); t.addCell(c1); c1 = new Cell("Header2"); t.addCell(c1); c1 = new Cell("Header3"); t.addCell(c1); c1 = new Cell("Header4"); t.addCell(c1); c1 = new Cell("Header5"); t.addCell(c1); c1 = new Cell("Header6"); t.addCell(c1); c1 = new Cell("Header7"); t.addCell(c1); c1 = new Cell("Header8"); t.addCell(c1); c1 = new Cell("Header9"); t.addCell(c1); c1 = new Cell("Header10"); t.addCell(c1); c1 = new Cell("Header11"); t.addCell(c1); c1 = new Cell("Header12"); t.addCell(c1); int k = 0; while (k < 3) { for (int q = 0; q < 12; q++) { Paragraph par = new Paragraph(k + "-" + q, fontChinese); c1 = new Cell(par); c1.setHorizontalAlignment(Element.ALIGN_CENTER); t.addCell(c1); } k++; } for (int i = 0; i < 24; i++) { String num = Integer.toString(i); c1.setHorizontalAlignment(Element.ALIGN_CENTER); c1 = new Cell(num); c1.setColspan(2); c1.setRowspan(1); t.addCell(c1); } c1 = new Cell("26"); t.addCell(c1); document.add(t); // 创建一个新页面 document.newPage(); document.add(t); document.close(); } catch (Exception e2) { e2.printStackTrace(); } } }
2.将网页中的信息,用pdf格式文件弹出
package com.me.test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; /** * 在网页上获取信息,查看pdf格式文件 * @author admin * */ public class PdfServlet extends HttpServlet { /** * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // Get the text that will be added to the PDF String text = request.getParameter("text"); if (text == null || text.trim().length() == 0) { text = "You didn't enter any text."; } // step 1 Document document = new Document(); // step 2 ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter.getInstance(document, baos); // step 3 document.open(); // step 4 document.add(new Paragraph(String.format( "You have submitted the following text using the %s method:", request.getMethod()))); document.add(new Paragraph(text)); // step 5 document.close(); // setting some response headers response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); // setting the content type response.setContentType("application/pdf"); // the contentlength response.setContentLength(baos.size()); // write ByteArrayOutputStream to the ServletOutputStream OutputStream os = response.getOutputStream(); baos.writeTo(os); os.flush(); os.close(); } catch(DocumentException e) { throw new IOException(e.getMessage()); } } /** * Serial version UID. */ private static final long serialVersionUID = 6067021675155015602L; }
3.在网页上直接以pdf的形式显示
package com.me.test; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfWriter; import com.lowagie.text.Element; import com.lowagie.text.PageSize; import com.lowagie.text.pdf.PdfPTable; /** * 直接在网页中生成PDF格式 查看 */ /** * Hello World example as a Servlet. * * @author blowagie */ public class HelloWorldServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 3710911016238241119L; /** * Returns a PDF, RTF or HTML document. * * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { System.out.println("document.add(BigTable)"); // step1 Document document = new Document(PageSize.A4.rotate(), 10, 10, 10, 10); //定义纸张类型及方向,页边距 // step 1 try { // step 2: we set the ContentType and create an instance of the corresponding Writer response.setContentType("application/pdf"); PdfWriter.getInstance(document, response.getOutputStream()); // step3 document.open(); // step4 定义表格填充内容 String[] bogusData = { "M0065920", "SL", "FR86000P", "PCGOLD", "119000", "96 06", "2001-08-13", "4350", "6011648299", "FLFLMTGP", "153", "119000.00" }; int NumColumns = 12; //定义表格列数 PdfPTable datatable = new PdfPTable(NumColumns); //创建新表. int headerwidths[] = { 9, 4, 8, 10, 8, 11, 9, 7, 9, 10, 4, 10 }; // percentage 定义表格头宽度 datatable.setWidths(headerwidths); datatable.setWidthPercentage(100); // percentage datatable.getDefaultCell().setPadding(3); datatable.getDefaultCell().setBorderWidth(2); datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); //以下是填充表头 datatable.addCell("Clock #"); datatable.addCell("Trans Type"); datatable.addCell("Cusip"); datatable.addCell("Long Name"); datatable.addCell("Quantity"); datatable.addCell("Fraction Price"); datatable.addCell("Settle Date"); datatable.addCell("Portfolio"); datatable.addCell("ADP Number"); datatable.addCell("Account ID"); datatable.addCell("Reg Rep ID"); datatable.addCell("Amt To Go "); datatable.setHeaderRows(1); // this is the end of the table header datatable.getDefaultCell().setBorderWidth(1); for (int i = 1; i < 750; i++) { if (i % 2 == 1) { datatable.getDefaultCell().setGrayFill(0.9f); } for (int x = 0; x < NumColumns; x++) { datatable.addCell(bogusData[x]); } if (i % 2 == 1) { datatable.getDefaultCell().setGrayFill(0.0f); } } document.add(datatable); //加载新表 } catch(DocumentException de) { de.printStackTrace(); System.err.println("document: " + de.getMessage()); } // step 5: we close the document (the outputstream is also closed internally) document.close(); } }
4.生成PDF到计算机中
package com.me.test; import java.awt.*; import java.io.*; import com.lowagie.text.*; import com.lowagie.text.Font; import com.lowagie.text.Image; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfWriter; /** * 通过给定的短语生成pdf文件,并且加密 */ /** * First iText example: Hello World. */ public class HelloWorld { /** Path to the resulting PDF file. */ public static final String RESULT = "f:/hello.pdf"; public static final String pwd = "123456"; public static final String result = "f:/Itext/b.gif"; /** * Creates a PDF file: hello.pdf * * @param args * no arguments needed */ public static void main(String[] args) throws DocumentException, IOException { new HelloWorld().createPdf(RESULT); } /** * Creates a PDF document. * * @param filename * the path to the new PDF document * @throws DocumentException * @throws IOException */ public void createPdf(String filename) throws DocumentException, IOException { // 设定文本样式 Rectangle rec = new Rectangle(PageSize.A4); rec.setBackgroundColor(Color.GRAY); rec.setBorder(Rectangle.TOP); rec.setBorderColor(Color.black); rec.setBorderWidth(50); // 创建本文 Document doc = new Document(rec, 100, 201, 20, 20); // 设定路径 PdfWriter pdf = PdfWriter.getInstance(doc, new FileOutputStream( HelloWorld.RESULT)); // 设定布局 pdf.setViewerPreferences(PdfWriter.PageModeUseThumbs | PdfWriter.PageLayoutTwoColumnLeft | PdfWriter.HideMenubar); // 加密 pdf.setEncryption(pwd.getBytes(), pwd.getBytes(), PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING, PdfWriter.STANDARD_ENCRYPTION_40); // 设置中文 BaseFont base = null; Font fontChinese = null; try { base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED); fontChinese = new Font(base, 18, Font.BOLD); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } doc.open(); doc.add(new Paragraph("你好我是Pro", fontChinese)); doc.close(); } }
- itext-5.1.3.rar (8.8 MB)
- 下载次数: 11
发表评论
-
java:创建自己的Liberaries的步骤
2013-07-02 11:48 7721.Windows-Preferences-Java-Bui ... -
log4j配置
2012-11-07 17:54 733log4j.rootLogger=DEBUG,CONSOLE, ... -
Tomcat 在IE中下载rar文件直接以乱码体式格式打开解决规划
2012-09-27 17:32 1321这几天一向很纳闷,在Tomcat安排的网站中的下载文件中,若是 ... -
根据月份获得当月天数
2012-05-18 21:13 897public static void main(String ... -
项目上线后去除80端口以及项目名称
2012-05-16 11:17 8831.在Webapps文件夹下,建立一个ROOT文件夹文件夹里建 ... -
jexcelapi 的使用
2012-05-11 10:59 857<result name="dayExcel& ... -
遍历文件夹下的文件名称
2012-03-23 12:33 790package test; import java.io ... -
文件读取为字符串,字符串存储为文件
2012-03-15 15:17 933将外部文件读取成为字符串 public String doP ... -
将对象以xml的形式在控制台输出
2012-03-05 20:33 619String str=BeanUtil.formatBean2 ... -
java获取当前月的天数
2012-02-09 10:46 1941import java.text.ParseExcep ... -
java生成PDF格式文件并且加密
2011-12-27 11:26 4454package com.me.test; import ... -
WebService的创建发布以及应用
2011-10-28 22:15 8501.创建WebService服务 创建Web Service ... -
JAVA反射机制
2011-10-27 18:12 590JAVA反射机制 JAVA反 ...
相关推荐
java使用iText导出PDF文本绝对定位(实现方法) iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF...我们希望本篇文章能够给您一个参考,帮助您更好地使用iText生成PDF文档。
这是使用Itext生成的PDF文档。")); document.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 上述代码会在当前目录下生成一个名为"output.pdf"的PDF文件,内容为"Hello, World! 这是使用...
首先,为了在Gradle项目中使用iText7,你需要在项目的`build.gradle`文件中添加依赖。如下所示: ```groovy dependencies { implementation 'com.itextpdf:itext7-core:7.x.y' // 替换x.y为最新版本号 ...
在使用iText生成PDF目录时,要注意几点: - 确保每个书签都有一个对应的目标位置,否则在PDF中点击书签可能无法正确跳转。 - 避免内存泄漏,尤其是在处理大量书签时,要及时释放资源。 - 书签层次不宜过深,以免影响...
首先,构造URL对象获取图片地址,然后使用`document.add(new Jpeg(url))`将其添加到PDF中。需要注意的是,图片必须是PDF支持的格式,例如JPEG、PNG等。 7. **处理网络资源**: 示例中的图片是从网络上获取的,这...
document.add(new Paragraph("这是使用IText生成的PDF文档!")); document.close(); } catch (DocumentException | IOException e) { e.printStackTrace(); } } } ``` 这段代码首先创建了一个`Document`对象...
`ITextDemo`这个文件可能包含了这样的示例代码,用于展示如何在实际项目中使用IText。运行这个Demo,你应该能得到一个包含文字、图片和表格的完整PDF文件。 在开发过程中,你可能会遇到各种问题,比如字符编码、...
对于链接,iTextPDF会将其转换为PDF中的超链接,但可能无法保留原始的HTML锚点。 此外,标签中的"xpdf"通常指的是XPDF工具集,它是一个命令行工具,用于处理PDF文档。虽然本示例未直接使用XPDF,但在某些场景下,如...
为了解决"Java使用Itext生成PDF中文不换行"的问题,我们可以采取以下几种策略: 1. **设置字体和编码**:确保使用支持中文的字体,如SimSun、Arial Unicode MS等,并正确设置PDF的编码为UTF-8。Itext中的`Font`类...
接下来,我们需要了解如何在Java代码中使用iText来生成Word文件。以下是一个简单的步骤概述: 1. **导入库**:在你的Java文件中,你需要导入必要的iText类。例如: ```java import com.lowagie.text.Document; ...
iText库提供了多种API,可以用来创建PDF文档、添加文本、图像、表格等元素。在HTML到PDF的转换过程中,我们通常会借助一个名为HTMLWorker的类,它能够解析HTML并将其内容转换为PDF格式。 1. **安装iText库**:在...
在Java开发中,有时我们需要将数据导出为Word文档,以方便阅读和打印。...通过学习和理解这些代码,你可以快速掌握在Java中使用iText生成Word文档的技巧。记得根据你的项目需求进行适当的修改和优化。
在Java项目中使用iText,需要在项目的Maven配置文件(pom.xml)中添加iText的依赖。在提供的`itext.txt`文件中,可能包含了如何引入iText库到Maven仓库的详细信息。通常,这会是类似以下的代码段: ```xml ...
iText是用Java编写的一个开源库,它提供了丰富的API,使得开发者能够方便地在PDF文件中添加文本、图像、表格、链接等元素。对于生成表格,iText提供了一个名为`PdfPTable`的类,它是表格的核心组件。 创建一个简单...
总结一下,要实现在Spring Boot应用中使用iText生成带有页眉、页码、水印、目录和二维码的PDF,你需要: 1. 引入iText及相关库。 2. 创建HTML页面并将其转换为PDF。 3. 定制PDF内容,包括添加页眉、页码和水印。 4. ...
在Java中使用iTextPDF和iText-Asian添加中文水印,你需要完成以下几个步骤: 1. **引入依赖**:在你的项目中,你需要添加iTextPDF和iText-Asian的依赖。如果是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml...
- 写入和关闭:使用`Document`的`add`方法添加表格和目录到PDF中,最后调用`close()`方法关闭文档。 6. **注意事项**: 在处理中文字符时,确保使用的字体库支持中文,例如Arial Unicode MS或者SimSun。另外,为了...
### 使用Java组件itext生成PDF知识点详解 #### 一、前言 在现代企业信息化建设过程中,报表处理占据了举足轻重的地位。特别是在B/S架构系统中,如何高效地生成和展示报表成为了一个亟待解决的问题。Java组件iText...
如果你需要在PDF中插入图片,可以使用`Image`类。确保图片是JPEG或PNG格式,因为IText库支持这两种格式: ```java Image image = Image.getInstance("path_to_your_image.jpg"); image.scaleToFit(500f, 300f); // ...
5. **复制页面**:使用PdfStamper类从模板PDF中复制页面,并在新PDF上进行操作。PdfStamper提供了一个接口,可以在保留原始内容的同时添加、修改或删除元素。 6. **替换占位符**:遍历模板中的占位符,例如通过...