浏览器和 Acrobat PDF 查看器之间的 PDF 渲染存在差异

问题描述 投票:0回答:1

我遇到了一种情况,我同时在 Web 浏览器和 Acrobat PDF 查看器中打开 PDF。在浏览器中,PDF 可以正确显示,但在 PDF 查看器中,我得到了不同的输出文件。我正在尝试确定这种差异是否与 PDF 文件本身的问题有关,或者 PDF 查看器和浏览器渲染之间是否存在固有差异。

有没有人遇到过类似的问题,您能否提供有关如何排查和解决此问题的见解或建议?此外,Web 浏览器和专用 PDF 查看器之间的 PDF 呈现方式是否存在已知差异,可以解释这种行为?

边缘输出:

Adobe Acrobat Reader 输出:

我正在使用 pdftron 和 java 1.8 修改 pdf 在pdf中添加元素和文本的代码:

Element tabElement = builder.createRect(x, y - 36, tabWidth, tabHeight);
            tabElement.setPathFill(true);
            GState gstate = tabElement.getGState();
            gstate.setFillColorSpace(ColorSpace.createDeviceRGB());
            gstate.setFillColor(new ColorPt(0.9, 0.9, 0.9));
            elementWriterLine1.writeElement(tabElement);

            Element tabTextElementLine1 = builder.createTextBegin(Font.createTrueTypeFont(outputPdfDoc, ARIAL, true), 8);
            Element textLine1 = builder.createTextRun("TEXT LINE 1");
            if(isLandscape) {
                tabPosition = 4 - tabPosition;
                tabTextElementLine1.getGState().setTransform(1, 0, 0, 1, pageWidth - gap - (tabPosition * tabWidth) - (tabWidth/2 + textLine1.getTextLength()/2) ,  tabHeight-13 );
            } else {
                tabTextElementLine1.getGState().setTransform(0, -1, 1, 0, pageWidth - 13 , pageHeight - gap  - (tabPosition * tabHeight) - (tabHeight/2 - textLine1.getTextLength()/2) );
            }
            tabTextElementLine1.getGState().setFillColorSpace(ColorSpace.createDeviceRGB());
            tabTextElementLine1.getGState().setFillColor(new ColorPt(0, 0, 0));
            tabTextElementLine1.setPathFill(true);
            elementWriterLine1.writeElement(tabTextElementLine1);

我和同事分享了pdf文件,他们也面临着同样的问题。

java pdf adobe microsoft-edge pdftron
1个回答
0
投票

您的文本不是在文本对象内绘制的。文本绘制指令只能在文本对象中使用。

你有

    0.9 0.9 0.9 rg
    36 0 144 36 re
    f*
    1 0 0 1 67.104 23 cm
    0 0 0 rg
    /F0 8 Tf
    q
        (TEST LINE1 OF TAB1) Tj
        1 0 0 1 67.104 23 cm
    Q
    (TEST LINE1 OF TAB1) Tj

但你可能应该有

    0.9 0.9 0.9 rg
    36 0 144 36 re
    f*
    1 0 0 1 67.104 23 cm
    0 0 0 rg
    /F0 8 Tf
    q
        BT
        (TEST LINE1 OF TAB1) Tj
        ET
        1 0 0 1 67.104 23 cm
    Q
    BT
    (TEST LINE1 OF TAB1) Tj
    ET

但我不知道如何让 pdftron 添加 BeginText 和 EndText 运算符。

© www.soinside.com 2019 - 2024. All rights reserved.