使用Arial字体的PDF Viewer bug,其中空格成为"问号"

时间:2015-03-31 20:50:58

标签: pdfclown

我在Windows 7的谷歌浏览器中运行它之前没有注意到这个错误。在Internet Explorer中它没有引起注意,因为它使用的是Adobe Acrobat,但Chrome使用内置的PDF Viewer。 / p>

文字"你好,你好吗?"已成为"你好,?怎么样?是吗?"。

using pdfclownFonts = org.pdfclown.documents.contents.fonts;

private void DocumentTemplate(Document parmDocument)
{
    PrimitiveComposer primitiveComposer = new PrimitiveComposer(page);
    {
        BlockComposer blockComposer = new BlockComposer(primitiveComposer);
        pdfclownFonts::Font fontArial = pdfclownFonts::Font.Get(parmDocument, _fontArialRegularFilePath);
        primitiveComposer.SetFont(fontArial, 26 /*[Font-Size]*/);

        blockComposer.Begin(New RectangleF(5f, 5f, 500f, 30f), XAlignmentEnum.Left, YAlignment Enum.Top);
        blockComposer.ShowText("Hello, How are you?");
        blockComposer.End();

        blockComposer.Flush();
    }
}

然后我在http://sourceforge.net/p/clown/bugs/52/找到了这个错误报告。

所以我的问题是......

1)这只是Chrome的错误吗?

2)或者它只是一个PDFClown错误?

3)如果PDFClown错误,那么您是否知道估计时间是否会被修复?

感谢。

1 个答案:

答案 0 :(得分:1)

Vadim在his answer中对此问题进行了精辟的解释,至少是one pdf.js' bug-tracking entry的主题。

简短的回答是PDF Clown生成完全合法的PDF文件(因此它们由Adobe Acrobat,基于Poppler的观众如Evince,甚至优秀的Ghostscript解释器正确呈现)。问题是这些PDF文件具有“锯齿状”的混合长度代码点,而这些代码点并不像Chrome那样不太成熟的观众正确处理。

为了避免这样的不便,PDF Clown将仅使用单长度编码(这是在0.2.0中解决的问题之一)。


更新2015年4月14日

我很高兴宣布the issue has been solved and committed to the project's repo。它将包含在下一版本(0.1.2.1和0.2.0)中;在此期间,您可以从指示的链接下载代码快照。