如何避免PDF文件中的字体替换

时间:2017-05-12 10:46:48

标签: pdf reporting-services fonts ssrs-2008

我将这个问题作为最后的手段来写,因为我一直试图找到上周的解决方案而且我无法提出任何解决方案。

工作流程

SSRS根据各自的.rdl文件和从数据库中检索到的数据生成PDF文件。我做了一个应用程序,简而言之,将这些PDF文件分组并将它们合并为一个组。为了合并文件,我使用了PdfSharp库。

问题

PDF文件不包含嵌入字体。这在打印文档期间导致问题,因为未正确打印非拉丁字符。更具体地说,.rdl文件仅包含带有Arial字体系列的文本框。但是,SSRS生成的PDF使用Helvetica(Adobe Reader将其转换为Arial,但打印机存在问题)。

我想要实现的目标

我希望我的输出PDF只包含嵌入字体。

到目前为止我尝试了什么

我尝试将.rdl文件中的字体更改为不能替换的字体(例如Calibri或Liberation Sans)。然而,这导致报告的建设和#39;到了'崩溃'#39; - 几个元素不在它们应该的位置。

通过阅读微软论坛上的几个主题后,我发现字体替换问题在SSRS 2008中很常见,不幸的是,它还没有解决,似乎没有解决方法,更不用说解决方案了。

我的问题

您知道我的输出PDF文件只包含嵌入字体的方法吗?也许它可以通过对.rdl文件的一些修改来实现,也许有办法通过PdfSharp或其他一些库来实现它?

1 个答案:

答案 0 :(得分:1)

最后我使用GhostScript嵌入字体,如in this answer所述。

"C:\Program Files\gs\gs9.21\bin\gswin64c.exe" \
    -o outputPdf.pdf \
    -sDEVICE=pdfwrite \
    -dPDFSETTINGS=/prepress \
    -sFONTMAP=myFontMap.txt \
    inputPdf.pdf