0

直到我在 Windows 7 的 Google Chrome 中运行它之前,我才注意到这个错误。它在 Internet Explorer 中并不明显,因为它使用的是 Adob​​e Acrobat,但 Chrome 使用内置的 PDF 查看器。

文本“你好,你好吗?” 变成了“你好,?怎么样?是?你?”。

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 出现错误,那么您对修复的估计时间有任何想法吗?

谢谢。

4

1 回答 1

1

Vadim 在他的回答中巧妙地解释了这个问题,并且是至少一个 pdf.js' bug-tracking entry的主题。

简短的回答是 PDF Clown 生成完全合法的 PDF 文件(因此它们可以由 Adob​​e Acrobat、基于 Poppler 的查看器(如 Evince),甚至是出色的 Ghostscript 解释器正确呈现)。问题是这些 PDF 文件具有“锯齿状”混合长度的代码点,而 Chrome 等不太成熟的查看器无法正确处理这些代码点。

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


2015 年 4 月 14 日更新

我很高兴地宣布该问题已得到解决并已提交到项目的 repo中。它将包含在下一个版本中(0.1.2.1 和 0.2.0);同时,您可以从指示的链接下载代码快照。

于 2015-04-01T10:07:25.847 回答