最近各种研究PDF的编辑,之前看例子有使用PDFBox的,但是后来经过深入了解,发现各种不靠谱,稍微有些编辑有问题的地方,都会不识别和找不到相应的位置
于是换成了iText
总体来说还是很方便很不错的一个工具,网上有很多相关的例子,这里就不再多贴了,大家可以搜索关键词”fromPDFTempletToPdfWithValue“,网上有很多
重点记录一下遇到的问题
问题:
中文显示的问题,通常iText可以通过另外一个包来做亚洲语言,比如中文、韩文、日文的显示,要么没有字体支持的话,中文就怎么也显示不出来
解决:
用Maven的话,可以到http://mvnrepository.com/去搜itext-asian,就会找到相应的Jar包
但是,在代码里面怎么也不管用
那么这里面需要注意一点
BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",
BaseFont.NOT_EMBEDDED);
这是引用了相应的字体和编码,用最新的5.2.0的语言支持,不需要像很多网上写的改什么jar包里面的包结构,已经是最新的了,但是,我们需要去引用他。
或者是自己画的内容,或者是加载PDF文件进行再次编辑的内容
如果是使用AcroFields来做的话,代码如下
String fileName = templateUri;// "/Volumes/Data/DWorks/test.pdf";
PdfReader reader = new PdfReader(fileName);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfStamper ps = new PdfStamper(reader, bos);
AcroFields s = ps.getAcroFields();
s.setFieldProperty("字段名", "textfont", bf, null);
这里边一定要注意关于AcroFields的用法,要去查官方API,这样写完就可以针对于单独的Field来设置字体了,还有相应的其他属性,比如说字体大小之类的,在API中都有描述,来修改
试了试字号修改,参数值直接用数值不行,需要new Float(16)才行
当然也可以自己使用本地字体
BaseFont bf =
BaseFont.createFont("/Microsoft Yahei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
分享到:
相关推荐
在iTextpdf中,可能需要指定支持中文的字体(如SimSun、Arial Unicode MS等),并确保数据正确编码为UTF-8,以避免乱码问题。 使用iTextpdf库,开发者可以实现以下功能: 1. **创建PDF**:从头开始创建全新的PDF...
在实际开发中,`iText操作Pdf简单整理.txt`可能包含了关于如何使用这些功能的示例代码和说明,通过学习和实践,开发者能够熟练掌握iText,满足各种PDF文档处理需求。 总的来说,iText是一款功能丰富的PDF处理工具,...
**iTextPDF中文帮助文档** iTextPDF是一款广泛使用的开源Java库,用于创建、修改PDF文档。这个中文帮助文档提供了关于如何使用iTextPDF库在Java项目中处理PDF的详细指南,适合对PDF操作有一定需求的开发者。iText...
iText是一个强大的PDF库,它允许开发者在程序中创建、修改和操作PDF文档。然而,对于处理中文字符,iText需要额外的字体文件支持,因为默认的字体库不包含中文字符集。本教程将深入探讨如何在Java中使用iText PDF...
在描述中提到的“iText可以制作中文PDF文件的JAVA源程序”,意味着这个压缩包可能包含示例代码或教程,展示了如何使用iText库在Java程序中创建包含中文字符的PDF文档。通常,处理中文字符需要正确配置字体资源,并...
这个中文帮助文档提供了详细的指导,帮助开发者理解和使用iText来创建包含丰富内容的PDF文件。以下是对iText库和文档中涉及的关键知识点的详细解释: 1. **iText基本概念**: - **PDF(Portable Document Format)...
iTextPDF是一个Java库,专门用于创建、编辑和处理PDF文档,而`iText-asian-5.2.0.jar`和`itextpdf-5.5.5.jar`是iText库的不同版本,用于支持中文字符和其他亚洲语言。 1. **iTextPDF**: iTextPDF是iText项目的一...
iTextPDF是一款强大的开源库,它允许开发人员创建、修改和操作PDF文档。在处理中文字符时,iTextPDF可能会遇到一些挑战,特别是当涉及到特定字体,如“STSong-Light”及其编码“UniGB-UCS2-H”时。这个问题在iText...
《iTextPDF中文支持与字体选择》 在Java开发中,处理PDF文档是一项常见的任务,iTextPDF是一个广泛使用的开源库,它提供了丰富的API来创建、修改和操作PDF文档。在处理中文字符时,我们需要引入特定的依赖包,以...
除了基本的文本添加,iText 还支持更复杂的操作,比如添加图片、创建表格、定义页面大小和边距、设置字体和颜色、创建链接、插入页眉和页脚等。例如,你可以这样做: ```java // 添加图片 Image image = Image....
iTextPDF允许开发者在Java环境中创建、修改和操作PDF文档。它提供了丰富的API,可以用于生成表格、添加图片、设置字体、创建链接、插入签名、添加水印、填写表单等。5.5.5版本修复了一些已知问题,增强了稳定性和...
- `itext-asian` 和 `font-asian`:这两个模块主要针对亚洲语言,如中文、日文和韩文,提供了对这些语言的字体和字符集的支持,确保PDF中的非拉丁字符能正确显示。 4. **PDF表单处理**: - `forms`:此模块用于...
这个版本的iText支持基本的PDF操作,如创建新文档、添加页面、插入文本和图形、设置字体样式等。开发者可以利用其API来构建复杂的PDF结构,满足定制化需求。 iTextAsian.jar是iText针对亚洲语言(如中文、日文、...
总结来说,这个压缩包提供了iText库的最新稳定版本,结合其亚洲语言支持扩展,使得Java开发者能够方便地创建和处理包含中文的PDF文档,无论是从头新建还是修改已有的PDF,都能得心应手。对于需要处理中文PDF的企业和...
iText是一款广泛应用于PDF文档处理的Java库,尤其在生成、编辑和操作PDF文档方面表现卓越。本资源包包含了iText 5.5.11版本的组件,以及专门针对亚洲语言支持的itext-asian5.20.jar,同时提供了加水印和去水印的代码...
虽然本示例未直接使用XPDF,但在某些场景下,如服务器环境,你可能需要结合XPDF或其他命令行工具来完成更复杂的PDF操作。 总之,使用iTextPDF库在Java中实现HTML到PDF的转换是一项实用的技能,但需要注意库对HTML和...
而iText-Asian是iTextPDF的一个扩展,主要目的是支持中文、日文和韩文等亚洲语言的字符集,因为这些字符在PDF处理中需要特殊的编码和支持。 在Java中使用iTextPDF和iText-Asian添加中文水印,你需要完成以下几个...
2. itext-asian-5.2.0.jar:此JAR文件提供了对亚洲语言(如中文、日文和韩文)的支持。它包含特定的字体和排版规则,确保在生成PDF时能正确显示这些语言的文字。 3. freemarker-2.3.23.jar:FreeMarker是一个模板...
综上所述,iText5.0.6+iTextAsian是开发人员在Java环境中处理中文PDF文档的强大工具,它提供了全面的功能和良好的中文支持,极大地拓展了PDF文档处理的能力。通过熟练掌握iText库,开发者可以创建出专业且功能丰富的...
Itext支持PDF版本从1.3到2.0,并且提供了一系列的API,使得开发者能够方便地进行PDF文档的操作。 **API文档的重要性** Itext的英文官方API文档是学习和使用Itext库的关键资源。它详细记录了库中的类、方法和属性,...