字体属性看起来相似,但两个pdf文档中的外观和感觉不同

时间:2017-01-13 19:39:58

标签: pdf pdf-generation itext

我有一个由我的客户提供的PDF模板文档作为参考。我的应用程序必须创建它。当我比较我的应用程序生成的PDF和客户端给出的模板时,我可以看到外观略有不同。我在Adobe acrobat pro dc中打开它,我仍然可以看到字体属性是相同的。请参阅下面的链接,查看我创建的具有上述问题的PDF标题。

请看图片:

enter image description here

我在xml中定义了字体属性,如下所示。稍后将对此进行解组。

<font name="Arial Narrow" id="blackBold" fsize="12" type="bold" rgb="0,0,0"/>

我在地图中定义了不同的字体类型,如下所示

fontAndAlignmentMap.put("bold", 1);
//Internally this will be resolved to-->com.itextpdf.text.Font.BOLD = 1;

将从unmarshalled xml字体对象创建itext字体,如下所示:

FontFactory.registerDirectories();
com.itextpdf.text.Font itextFont = 
    FontFactory.getFont(sbcFont.getName(), sbcFont.getFsize(), fontAndAlignmentMap.get(sbcFont.getType()), new BaseColor(r,g,b));

10页的pdf文档具有不同的字体和格式。静态定义的字体被解组并加载到itextFontMap中,如下所示。

itextFontMap.put(sbcFont.getId(), itextFont);

sbcFont.getId()是&#34; blackBold&#34;,&#34; blackRegular&#34;等取决于使用相应的字体将从此地图中拉出。

Phrase pSbc = new Phrase("Summary of Benefits and Coverage:", 
    SBCMappingSingletonBuilder.itextFontMap.get("blackBold"));`  
Phrase pSbcDesc = new Phrase(
    " What this Plan Covers & What You Pay For Covered Services", 
    SBCMappingSingletonBuilder.itextFontMap.get("blackRegular"));  

当我打印com.itextpdf.text.Font对象的姓氏时。

blackBold.getFamilyname() :Arial Narrow 
blackRegular.getFamilyname() :Arial Narrow

这是从代码中打印出来的。

sbcFont.getName() :Arial Narrow Bold
sbcFont.getName() :Arial Narrow

Phrase已添加到PdfPCell;已将PdfPCell添加到PdfPTable,然后添加到document 任何人都可以在这里说清楚。我正在使用java 1.6和itextpdf-5.3.4

我所指的样本模板请点击   here

我要创建类似于模板的那个,请点击   here

我在Adobe Acrobat Pro中打开了pdf。粗体字看起来很窄,即使Adobe Acrobat Pro中的字体属性显示为粗体。但是当我在浏览器中打开pdf时,它看起来很不错。

0 个答案:

没有答案