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

两个pdf文档中的字体属性看起来相似,但外观和感觉不同,pdf,pdf-generation,itext,Pdf,Pdf Generation,Itext,我有我的客户提供的PDF模板文档作为参考。我的应用程序必须创建它。当我比较应用程序生成的PDF和客户端提供的模板时,我可以看到外观和感觉略有不同。我在Adobe acrobat pro dc中打开它,仍然可以看到字体属性是相同的。请查看下面的链接,以查看我创建的具有上述问题的PDF标题 请看图片: 我在xml中定义了字体属性,如下所示。这将在稍后取消编组 <font name="Arial Narrow" id="blackBold" fsize="12" type="bold" rgb

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

请看图片:

我在xml中定义了字体属性,如下所示。这将在稍后取消编组

<font name="Arial Narrow" id="blackBold" fsize="12" type="bold" rgb="0,0,0"/>
itext字体将从未编组的xml字体对象创建,如下所示:

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);
getId()是“blackBold”、“blackRegular”等。这取决于将从此映射中提取的适当字体的使用

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
短语添加到
PdfPCell
PdfPCell
添加到
PdfPTable
中,然后添加到
文档中

有谁能给我点启发吗?我正在使用Java1.6和itextpdf-5.3.4

我所指的示例模板请单击

我正在尝试创建与模板类似的模板,请单击


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

我编辑了这个问题,因为它很难阅读,我认为这是由于格式问题。既然问题的格式正确了,仍然很难理解。我们需要查看PDF,但也需要:什么是
itextFontMap
,为什么该映射理解
“blackBold”
“blackRegular”
sbcFont.getName()
返回什么,您确定
itextFont
不仅仅是Helvetica,因为
sbcFont.getName()
不能被识别为注册字体吗?这张
fontAndAlignmentMap
是关于什么的?将样式映射为整数是非常奇怪的。此问题无法回答。@AmedeeVanGasse我已更新了代码并提供了指向pdf文件的链接。谢谢。@BrunoLowagie感谢您编辑我的问题并将其框成更好的形状。我已提供了包括pdf文件在内的详细信息。请查看。Thanks@AmedeeVanGasse你觉得我的PDF有什么问题吗提供?@BrunoLowagie您在比较PDF时看到问题了吗?我在创建PDF时遗漏了什么吗?
sbcFont.getName() :Arial Narrow Bold
sbcFont.getName() :Arial Narrow