【Util】iText,iTextAsian,中文显示

本文详细介绍了如何使用iTextAsian.jar库中的字体创建包含中文的PDF文件,包括设置字体、创建文档、添加中文内容及保存文件等步骤。
部署运行你感兴趣的模型镜像

1.根据路径获取:

Font fontZh = FontFactory.getFont("C:\\Windows\\Fonts\\MSYH.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

2.使用iTextAsian.jar中的字体

Font fontZh = FontFactory.getFont("STSong-Light", "UniGB-UCS2-H", 14, Font.BOLD, new CMYKColor(0, 255, 0, 0));

3.TestPDF.java

public static void main(String[] args) {
	try {
		Document document = new Document();
		OutputStream os = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\test.pdf"));
		PdfWriter.getInstance(document, os);
		document.open();
		document.add(new Paragraph("看看有没有输出中文?", getFont()));
		document.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
}


 

注:

1.个人习惯用FontFactory,FontFactory只不过对BaseFont进行了封装(个人理解,不喜勿喷)。FontFactory.getFont()中最后的实现还是调用了BaseFont.createFont();

2.jar包地址:http://download.youkuaiyun.com/detail/inforstack/8936407

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

在 Java 中使用 iText 操作 PDF 模板,一般可按以下步骤实现。 ### 1. 引入依赖 若使用 Maven 项目,需在 `pom.xml` 中添加依赖: ```xml <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version> </dependency> ``` 此依赖配置可参考相关内容,保证了 iText 相关功能的使用[^2]。 ### 2. 操作 PDF 模板的代码示例 以下是一个简单的 Java 代码示例,用于根据 PDF 模板创建新的 PDF 文件并填充数据: ```java import com.itextpdf.text.Document; import com.itextpdf.text.pdf.*; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class PdfTemplateExample { public static void main(String[] args) { String templatePath = "template.pdf"; String outputPath = "output.pdf"; // 定义要填充的数据 Map<String, String> formData = new HashMap<>(); formData.put("field1", "填充的数据1"); formData.put("field2", "填充的数据2"); try { // 读取模板文件 PdfReader reader = new PdfReader(templatePath); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputPath)); // 获取表单 AcroFields form = stamper.getAcroFields(); // 填充表单数据 for (Map.Entry<String, String> entry : formData.entrySet()) { form.setField(entry.getKey(), entry.getValue()); } // 关闭 stamper 和 reader stamper.close(); reader.close(); } catch (IOException | DocumentException e) { e.printStackTrace(); } } } ``` 上述代码中,首先读取 PDF 模板文件,然后获取表单字段,接着将定义好的数据填充到相应的表单字段中,最后保存为新的 PDF 文件。 ### 3. 说明 - 需确保 PDF 模板文件中包含可编辑的表单字段,字段名称要与代码中 `formData` 里的键对应。 - 若模板文件包含中文,可能需要设置字体以正确显示中文内容。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值