ABCpdf 不会在 IIS6 下的 Web 应用程序中渲染图像

2023-12-31

我正在尝试使用 ABCpdf 将包含图像的网页渲染为 pdf 文档。这是通过网络应用程序完成的。

当我在 IIS 5 中的开发计算机上运行该应用程序时,一切都很好。当我在 IIS 6 上部署应用程序时,图像不会出现在 pdf 中。

为了重现这个问题,我做了一个简单的网络应用程序来从一个简单的网页渲染一个pdf文件,我发现不是本地的图像是没有出现在pdf中的图像。

与ABCpdf交互的相关代码是:

Doc theDoc = new Doc();
theDoc.Rect.Inset(18, 18);
theDoc.HtmlOptions.PageCacheEnabled = false;
theDoc.HtmlOptions.PageCacheClear();
theDoc.HtmlOptions.UseNoCache = true;
theDoc.HtmlOptions.Timeout = 60000;

int theID = theDoc.AddImageUrl(theUrl);

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

for (int i = 1; i <= theDoc.PageCount; i++)
{
  theDoc.PageNumber = i;
  theDoc.Flatten();
}

theDoc.Save(location);
theDoc.Clear();

我用于测试的 html 页面是这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Test page</title></head>

<body>
<p>This is a local image</p>
<img src="http://myserver/test/images/testimage.gif" />

<p>This is a remote image</p>
<img src="http://l.yimg.com/a/i/ww/beta/y3.gif" />

</body>
</html>

所以我试图在这个网址渲染页面:http://myserver/test/testpage.html http://myserver/test/testpage.html(上面的代码)转换成pdf。

在 IIS6 中,第二个图像(对于服务器来说不是本地的)不会出现在 pdf 中。

似乎是访问权限的问题,但我无法弄清楚。

谢谢。


我知道这有点晚了,但希望能对其他人有所帮助!

刚刚遇到了一个非常相似的问题(这就是我到达此页面的方式..)。 IIS 的版本相同,但运行在不同的服务器上。看起来问题是在图像下载完成之前生成了更多 PDF。

我联系了WebSuperGoo。据说它在幕后使用 MSHTML(很可能这就是您的环境的差异),并且有一些建议可以尝试:

theDoc.SetInfo(0, "CheckBgImages", "1");

and

theDoc.SetInfo(0, "RenderDelay", "5000");  // You can change this value, just an initial test.

第二个将延迟渲染 PDF,让图像有机会下载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ABCpdf 不会在 IIS6 下的 Web 应用程序中渲染图像 的相关文章

随机推荐