3

我正在尝试从 ABCpdf07 过渡到 ABCpdf8。我们将其用于以 PDF 格式打印各种运输标签的方法。这通常有效,其中包含图像的文件除外。这是用于将 html 放入 Document 的代码:

    public void AddHtml(string html, string frame, string nextPageFrame)
    {
        if (string.IsNullOrEmpty(nextPageFrame))
            nextPageFrame = frame;
        Document.Units = UnitType.Mm;
        Document.Rect.String = frame;

        int i = Document.AddImageHtml(html);

        while (true)
        {
            if (!Document.Chainable(i))
                break;
            Document.Page = Document.AddPage();
            Document.Rect.String = nextPageFrame;
            i = Document.AddImageToChain(i);
        }

        for (int j = 1; j <= Document.PageCount; j++)
        {
            Document.PageNumber = j;
            Document.Flatten();
        }
    }

frame 和 nextFrame 只是确定页面大小的值。当我在 HTML 视图中查看它时,该 html 在调试中起作用。但是在这种方法之后,当文档被保存时,图像不会显示在页面上 - 而是有损坏的图像图标。图像本地保存在项目文件夹 (c:\etc...) 中。已经三次检查链接是否正常工作。

真的无法理解为什么图像无法正确显示。有什么帮助吗?

编辑:我的 xslt 文档找到这样的图像

    <xsl:template match="//TheWrapper">
    ...
    <img class="someClass">
       <xsl:attribute name="src">
          <xsl:value-of select ='LogoLocation' />
       </xsl:attribute>
    </img>
    ...
    </xsl:template>
4

2 回答 2

1

ABCpdf 的第 8 版似乎有另一种传递图像的方法。这是因为他们不想依赖 IE(它在处理过程中的某个时间在后台加载)。我对这里的细节不是很了解。

无论如何 - 碰巧在 Chrome 中打开徽标文件路径,它自动添加了“file:///”,所以我尝试在我的代码中这样做,它成功了!只需在徽标文件路径前加上“file:///”即可,一切正常。

于 2012-09-24T11:01:05.010 回答
0

问题是 http 标头响应是 abcpdf 的错误格式,请为您的图像使用良好的标头 http 响应。以一个很好的例子为例,在 Firefox 调试器中查看 http 标头,并为您的图像重现此 http 标头响应。

或者,如果您通过代码服务器发送手动图像,请查看您的图像的 http 流响应的关闭方法是否良好。

于 2012-09-14T11:24:22.950 回答