`

iText导出PDF使用小结

    博客分类:
  • Java
FP 
阅读更多
新建一PDF页面,设置输出流:
Document document = new Document(PageSize.A4, 20, 20, 20, 20);//上下左右的页面边距
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, buffer);//设置输出流


PDF文档进行加密:
writer.setEncryption(PdfWriter.STRENGTH128BITS, "", "",  PdfWriter.AllowPrinting);

第二和第三个参数分别是用户查看密码和主人编辑密码。
权限方面,默认全部不允许,主要有一下权限控制:
PdfWriter.AllowPrinting
PdfWriter.AllowModifyContents
PdfWriter.AllowCopy
PdfWriter.AllowModifyAnnotations
PdfWriter.AllowFillIn
PdfWriter.AllowScreenReaders
PdfWriter.AllowAssembly
PdfWriter.AllowDegradedPrinting

定义中文字体:
目前高版本的iText jar包中大都不提供中文字体,这里使用的是iText1.4.5.jar,里面包含了中文字体。
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese,10); 


页眉中插入表格,表格里面插入图片:
Image img = Image.getInstance(new URL("http://assets.taobaocdn.com/img/chl/fp/logo080808.png"));
			img.scalePercent(60);//这只图片缩放比例,这里是60%
			img.setAbsolutePosition(0, 0);
			
			Table t = new Table(2,1);
			int w[] = {75,25};
			t.setWidths(w);
			t.setWidth(100);
			t.setDefaultHorizontalAlignment(Element.ALIGN_LEFT);
			t.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE);
			t.setAutoFillEmptyCells(true); //自动填满
			t.setPadding(0);
			t.setSpacing(0);
			t.setDefaultCellBorder(0);
			t.setBorder(0);
			
			Cell cell = new Cell();
			cell.add(img);
			cell.setVerticalAlignment(Element.ALIGN_CENTER);
			t.addCell(cell);
						
			Phrase p = new Phrase();
			p.add(t);
			
			HeaderFooter header = new HeaderFooter(p,false);
			header.setBorder(0);
			document.setHeader(header);


纯文本页脚:
Phrase p = new Phrase("杭州市西湖区\n第二行文字",FontChinese);
			HeaderFooter footer = new HeaderFooter(p,false);//第二个参数是false表示不输出页码信息
			footer.setBorder(0);
			footer.setAlignment(Element.ALIGN_CENTER);
			document.setFooter(footer);

带页码的页脚:
HeaderFooter footer = new HeaderFooter(new Phrase("页码:",FontChinese, true);  
或者:
HeaderFooter footer = new HeaderFooter(new Phrase("第:",FontChinese), new Phrase("页",FontChinese));  
footer.setBorder(Rectangle.NO_BORDER);  
document.setFooter(footer);  


带表头的分页表格(表格数据比较多,每页第一行是表头信息):
Table detailTable = new Table(3);
int detailWidth[] = {2,3,5};//每列宽度百分比
detailTable.setWidths(detailWidth);
detailTable.setWidth(100); // 占页面宽度 100%

detailTable.setDefaultHorizontalAlignment(Element.ALIGN_LEFT);
detailTable.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE);
detailTable.setAutoFillEmptyCells(true); //自动填满
detailTable.setPadding(1);
detailTable.setSpacing(0);

//表头部分
Cell cellHeader = new Cell(new Phrase("表头一",FontChinese));
cellHeader.setHeader(true);
detailTable.addCell(cellHeader);

cellHeader = new Cell(new Phrase("表头二",FontChinese));
cellHeader.setHeader(true);
detailTable.addCell(cellHeader);

cellHeader = new Cell(new Phrase("表头三",FontChinese));
cellHeader.setHeader(true);
detailTable.addCell(cellHeader);

detailTable.endHeaders(); 

for(int i=0; i< 50; i++){
	detailTable.addCell(new Phrase("内容1",FontChinese));
	detailTable.addCell(new Phrase("内容2",FontChinese));
	detailTable.addCell(new Phrase("内容3",FontChinese));
}
document.add(detailTable);
4
0
分享到:
评论

相关推荐

    velocity+itext导出pdf

    总结起来,"Velocity+Itext导出PDF"是一种高效且灵活的方式,可以将动态数据和预定义的模板结合,生成高质量的PDF文档。通过熟练掌握这两个工具的使用,开发者可以创建出满足各种需求的PDF文档生成系统。

    java 用iText导出PDF小例子

    本文将介绍一个使用iText库导出PDF的小例子。 首先,介绍iText库的基本知识。iText是一个开源的Java库,允许开发者创建和操纵PDF文档。它包括生成PDF文件、合并或分割现有PDF文件、添加文本或图像等功能。iText广泛...

    java使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包)

    Java使用IText库导出PDF是一项常见的任务,特别是在需要生成报告、文档或发票等静态内容时。IText是一个强大的PDF库,它允许开发者在Java环境中创建、修改和处理PDF文档。下面将详细介绍如何使用IText库来实现这个...

    c# winform Itext 实现PDF导出简单demo

    总结一下,这个C# WinForm的ItextSharp PDF导出示例主要涉及以下步骤: 1. 引入ItextSharp库。 2. 创建WinForm界面,绑定导出按钮的Click事件。 3. 在事件处理程序中调用`ExportToPdf`方法,传递待导出的文本和目标...

    使用ITEXT导出EXCEL工具类

    总结来说,使用ITEXT导出Excel虽然不是其主要功能,但通过创建模拟Excel结构的PDF文档并转换,可以实现这一目标。不过,这种方式可能不如直接使用Apache POI等专门的Excel处理库那么高效和灵活。在实际开发中,应...

    java itext导出PDF github

    根据所提供的标题“java itext导出PDF github”以及描述“导出PDF例子,供网友参考”,我们可以推测该文档主要介绍如何利用Java编程语言结合iText库来创建PDF文件。iText是一款非常强大的用于生成和操作PDF文件的开源...

    itext导出HTML到PDF的换行和解决中文包(配套三个)

    总结来说,将HTML转换为PDF并处理中文字符显示,需要正确地使用iText库,尤其是XMLWorker和iTextAsian组件。理解HTML和PDF之间的布局差异,以及如何配置字体以支持中文字符,是成功转换的关键。

    初学Itext 生成PDF 表格,条形码(一维),图片

    总结一下,iText是一个功能强大的库,用于在Java应用程序中创建和操作PDF文档。对于初学者来说,掌握使用iText生成PDF文档中的表格、一维条形码和图片是一项基本技能。此外,需要注重代码中字符串的准确性,避免由于...

    freemarker+itext生成PDF

    总结来说,"freemarker+itext生成PDF"的主题涵盖了使用FreeMarker模板引擎和Itext库在Java环境中动态生成PDF的技术。这是一项实用技能,对于需要自动化生成PDF文档的项目非常有价值。通过学习和实践这个主题,开发者...

    java 生成pdf所需直接将iText加入项目即可

    2. 引入`iText-5.0.6.jar`到项目中,即可开始使用iText提供的API创建PDF。 3. iTextAsian.jar已经集成在iText中,无需单独下载,支持中文等亚洲语言的显示。 4. 集成iText的方式包括设置类路径或通过构建工具管理...

    springboot使用itext生成pdf并保存到本地

    总结一下,要实现在Spring Boot应用中使用iText生成带有页眉、页码、水印、目录和二维码的PDF,你需要: 1. 引入iText及相关库。 2. 创建HTML页面并将其转换为PDF。 3. 定制PDF内容,包括添加页眉、页码和水印。 4. ...

    itextpdf.jar

    通过iTextPDF,开发者可以将XML数据转换为结构化的PDF文档,这对于报表生成、数据导出等场景非常实用。同时,iTextPDF还支持XPath和XSL-FO,使得XML文档的转换更加灵活和精准。 在处理Web表单时,iTextPDF可以将...

    利用IText导出word

    为了使用iText导出Word文档,你需要在项目中引入iText库。对于Java项目,可以通过Maven或Gradle添加依赖。在Maven的pom.xml文件中,添加以下依赖: ```xml &lt;groupId&gt;com.itextpdf&lt;/groupId&gt; &lt;artifactId&gt;itext...

    itext导出word整理

    根据提供的信息,我们可以总结出以下相关的IT知识点,主要聚焦于使用Java与iText库来实现从Web端将数据库中的数据导出至Word文档的过程。 ### 一、项目背景及技术选型 #### 1. 技术栈简介 - **前端技术**:使用JSF...

    itext html导出pdf

    在描述中提到的"itext html导出pdf",通常涉及到以下几个步骤: 1. **HTML解析**:首先,我们需要解析HTML内容。这通常通过第三方库如Jsoup或Apache POI完成,它们能够解析HTML文档并提取所需的数据结构。 2. **...

    Itext生成PDF所需要的最全Jar包

    Itext是一款广泛使用的Java库,专门用于生成和处理PDF文档。在Java开发中,如果你需要创建、编辑或读取PDF文件,Itext是不可或缺的工具。这个压缩包提供了使用Itext生成PDF所需的全部Jar包,确保你可以一次性导入...

    Itext-PDF导出jar包及使用API

    本教程将详细讲解如何使用Itext库进行PDF导出,并重点介绍处理中文显示的相关设置。 首先,我们需要获取Itext的jar包。Itext提供了多种版本,你可以从官方网站或通过Maven仓库下载。确保选择的版本支持中文字符集,...

    itext 生成 pdf 文档

    总结,Itext是一个功能强大的PDF处理库,无论是简单的文本输出还是复杂的文档结构,都能轻松应对。通过熟练掌握其API和使用技巧,可以高效地生成专业级别的PDF文档。在实际项目中,根据需求选择合适的版本,并结合...

    itextpdf+itext-asian+xmlworker 导出pdf 表格 自动分页中文 目录.rar

    总结来说,这个压缩包提供了使用iTextPDF、iText-Asian和XMLWorker库创建包含中文、表格、自动分页和目录的PDF文档的实例。通过理解和实践这些示例,开发者可以掌握如何在Java环境中高效地生成符合要求的PDF文件,...

    导出pdf的一种实现方式 freemark+itext

    要实现“freemark+itext”导出PDF的过程,首先需要创建一个FreeMarker模板,这个模板定义了PDF的布局和样式。模板中可以包含变量,这些变量将在运行时被实际的数据替换。例如,你可以创建一个如下的FTL(FreeMarker ...

Global site tag (gtag.js) - Google Analytics