栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何测试我的字体在pdf中是否正确显示?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何测试我的字体在pdf中是否正确显示?

由于jasper report使用itext库,因此最简单的测试字体是否将在pdf中正确显示的方法是直接使用itext测试它。

示例
程序*,改编自iText:第11章:选择正确的字体

import java.io.FileOutputStream;import java.io.IOException;import com.lowagie.text.document;import com.lowagie.text.documentException;import com.lowagie.text.Font;import com.lowagie.text.Paragraph;import com.lowagie.text.pdf.baseFont;import com.lowagie.text.pdf.ColumnText;import com.lowagie.text.pdf.PdfWriter;public class FontTest {        public static final String RESULT = "fontTest.pdf";        public static final String TEST = "Test to render this text with the turkish lira character u20BA";    public void createPdf(String filename) throws IOException, documentException {        document document = new document();        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));        document.open();        baseFont bf = baseFont.createFont( "pathToMyFont/myFont.ttf", baseFont.IDENTITY_H, baseFont.EMBEDDED);        Font font = new Font(bf, 20);        ColumnText column = new ColumnText(writer.getDirectContent());        column.setSimpleColumn(36, 730, 569, 36);        column.addElement(new Paragraph(TEST, font));        column.go();        document.close();    }    public static void main(String[] args) throws IOException, documentException {        new FontTest().createPdf(RESULT);    }}

一些注意事项(如示例所示):

  • 要渲染特殊字符,请使用其编码值示例
    u20BA
    来避免文件编码类型出现问题。
  • 考虑始终使用 Unipre 编码,这是更新的PDF标准(PDF / A,PDF / UA)中推荐的方法,它使您可以混合使用不同的编码类型,但唯一的缺点是文件大小稍大。

结论:

如果在“ fontTest.pdf”中 正确 显示了字体,则在jasper报告中字体扩展名有问题。

如果您在“ fontTest.pdf”中 无法正确显示 字体,则在jasper报告中您无能为力,您需要查找其他字体。


*最新的jasper-reports发行版使用特殊版本itext-2.1.7,此版本中的导入为

com.lowagie.text
,如果您使用的是更高版本,则导入
com.itextpdf.text
如改编示例中所示。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437407.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号