【问题标题】:ABCpdf7 Not Rendering Images using AddImageUrlABCpdf7 不使用 AddImageUrl 渲染图像
【发布时间】:2010-03-19 02:02:36
【问题描述】:

在我看来相当异国情调。我们最近从 Windows Server 2003 升级/迁移到 2008,现在使用 Doc.AddImageUrl() 时似乎无法渲染图像。 (保存 pdf 时,图像以正确的尺寸显示,但 IE8 丢失的图像 x 出现)。

如果我理解正确的话,ABCpdf 在内部使用 IE 渲染来处理这类事情。

我们认为这可能是权限问题,但我们检查了 IE ESC,并且似乎按照他们的建议进行了配置。有没有其他人遇到过类似的问题?也许需要代码配置?

不是整个 sn-p,而是 ABCpdf7 的东西:

using (Doc doc = new Doc())
        {
            doc.HtmlOptions.PageCacheEnabled = false;
            doc.HtmlOptions.UseNoCache = true;
            doc.HtmlOptions.PageCacheClear();
            doc.HtmlOptions.PageCachePurge();
            doc.HtmlOptions.UseResync = true;
            doc.HtmlOptions.ImageQuality = 25;

            int pageID = doc.AddImageUrl(url + "&guid=" + url.GetHashCode());

            while (true)
            {
                if (!doc.Chainable(pageID))
                    break;
                doc.Page = doc.AddPage();
                pageID = doc.AddImageToChain(pageID);
            }

  // file saving etc.
    }

【问题讨论】:

  • 您是否尝试在 2008 机器上查看 IE 中的 URL 以查看它是否正确显示?
  • 您是否在网络调试器(例如 www.fiddler2.com)中查看了您的流量,以确保图像传输正确,并且具有正确的 MIME 标头?
  • 我们之前都正确地完成了这两件事(这也是导致我们在 2008 年处理错误的 IE ESC 配置的原因)。

标签: windows internet-explorer pdf windows-server-2008 abcpdf


【解决方案1】:

从代码中提取了一个单元测试,以便在多个环境中进行测试。事实证明,我们的开发数据库服务器(这是唯一一个运行 2008 年的服务器)能够以几乎完全相同的配置运行单元测试。

掌握了这些信息,我们能够将其范围缩小到生产中的 dll。尽管 ABCpdf.dll 是正确的(32 位),但 64 位的核心 (ABCpdf7ce.dll) 正在生产中。

我猜因为组件的核心是 COM (iirc),所以我们没有抛出任何错误。此外,我们能够从没有图像的 html 生成 pdf 的事实对我来说很奇怪。

而且,最重要的是,我们的存储库中没有 64 位 dll 的记录,而 32 位 dll 在我们的 GAC 中。据我所知,核心 DLL 仅用于构建,因此我们从受影响的环境中删除了这些 dll,并且看起来状况良好。

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 2022-12-21
    • 2015-06-28
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2021-12-31
    相关资源
    最近更新 更多