【java使用itext导出pdf导出中文及非中文遇到的问题】

java使用itext导出pdf导出中文及非中文遇到的问题

需求背景

目前公司有海外的客户,在生成pdf的时候,输入的某些字符无法显示,原因是因为之前解决了一个问题就是中文无法显示,解决方式如下

FontProgram fp = FontProgramFactory.createFont("STSong-Light", false);
PdfType0Font font = new PdfType0FontIgnoreUnknown((CidFont) fp, "UniGB-UCS2-H");

但是上述解决方案在遇到Registo de prestação de trabalho no exterior这样的字符时,也无法显示

最新版解决方案

使用fontprovider类实现,详细代码如下

static {
    fontProvider = new DefaultFontProvider(true, true, false);
    try {
        FontProgram fp = FontProgramFactory.createFont("STSong-Light", false);
        fontProvider.addFont(fp, "UniGB-UCS2-H");
    } catch (IOException e) {
        log.error("加载中文字体失败");
    }
}

public static synchronized FontProvider getFontProvider() {
    return fontProvider;
}

使用方法如下

Document document = new Document(pdfDocument);
//        document.setFont(font);
document.setFontProvider(fontProvider);
document.setFontFamily(StandardFontFamilies.COURIER, StandardFontFamilies.HELVETICA, StandardFontFamilies.SYMBOL, StandardFontFamilies.TIMES, StandardFontFamilies.ZAPFDINGBATS,"STSong-Light");

最终效果
在这里插入图片描述

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用iText库根据模板导出PDF文件,您可以按照以下步骤进行操作: 1. 首先,您需要将iText库添加到您的Java项目中。您可以在iText的官方网站(https://itextpdf.com/)上下载并导入相应的jar文件。 2. 加载模板PDF文件。您可以使用iTextPdfReader类来加载模板文件,例如: ```java PdfReader reader = new PdfReader("template.pdf"); ``` 3. 创建一个新的PdfWriter对象,将其与输出PDF文件相关联。您可以使用iTextPdfWriter类来实现这一点,例如: ```java PdfWriter writer = new PdfWriter("output.pdf"); ``` 4. 创建一个新的PdfDocument对象,并将其与模板文件和PdfWriter对象相关联。这将使您能够编辑和导出PDF文件。例如: ```java PdfDocument document = new PdfDocument(reader, writer); ``` 5. 获取特定页面的PdfPage对象,并创建一个PdfCanvas对象以在页面上绘制内容。例如: ```java PdfPage page = document.getPage(1); // 获取第一页 PdfCanvas canvas = new PdfCanvas(page); canvas.beginText(); canvas.setFontAndSize(PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD), 12); canvas.moveText(100, 700); canvas.showText("Hello, World!"); canvas.endText(); ``` 在这个示例中,我们在第一页上添加了一个文本元素。 6. 关闭文档并保存生成的PDF文件。例如: ```java document.close(); ``` 这样,您就可以使用iText库根据模板导出PDF文件了。请注意,iText库还提供了许多其他功能,例如添加表格、图片等,您可以根据自己的需求进行更多的PDF编辑操作。 希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值