flying saucer 中文不显示、以及中文换行的问题解决

1首先下载官方的 iText-2.0.8.jar, 这是导出PDF必备的jar包,

2 程序中需要指定 中文字体:

// mac

        fontResolver.addFont("/library/fonts/Arial Unicode.ttf",     

              BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);    

        // linux:

fontResolver.addFont("/usr/share/fonts/TTF/ARIALUNI.TTF",     

                      BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);     

      // windows:

fontResolver.addFont("C:/Windows/Fonts/ARIALUNI.TTF",     

                      BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);     

3 导入中文字体换行包,看了一下,是修改了源代码,加入了对中文字符的支持,替换了core-renderder.jar。

换行包地址


4 在模版页面:加入style

<body  style="font-family:'Arial Unicode MS'">


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flying Saucer 是一个基于 Java 的 HTML 渲染引擎,它默认使用 AWT/Swing 内置字体来渲染中文字符。如果需要使用自定义字体文件来显示中文字符,可以按照以下步骤进行: 1. 把字体文件加入 classpath。可以把字体文件放在项目的 `src/main/resources` 目录下,或者直接在代码中使用 `ClassLoader.getSystemClassLoader().getResourceAsStream("path/to/font.ttf")` 加载字体文件。 2. 加载字体文件并注册到 AWT 中。可以使用 `Font.createFont()` 方法加载字体文件,并使用 `GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont()` 方法注册字体到 AWT 中。 3. 设置 Flying Saucer 使用注册的字体。可以通过 `ITextRenderer.getFontResolver().addFont()` 方法添加字体到 Flying Saucer 的字体解析器中,并设置需要使用的字体。 以下是一个示例代码: ```java // 加载字体文件并注册到 AWT 中 InputStream fontInputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("path/to/font.ttf"); Font customFont = Font.createFont(Font.TRUETYPE_FONT, fontInputStream); GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(customFont); // 设置 Flying Saucer 使用注册的字体 ITextRenderer renderer = new ITextRenderer(); renderer.getFontResolver().addFont("path/to/font.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); ``` 注意:在使用自定义字体时,需要确保字体文件的编码与 Flying Saucer 渲染的 HTML 文件编码一致,否则可能会出现中文显示问题。同时,Flying Saucer 也需要支持相应的字符集,否则也可能会出现中文显示问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值