ABCpdf не отображает изображения в веб-приложении под IIS6 - PullRequest
8 голосов
/ 22 июня 2009

Я пытаюсь сделать веб-страницу, содержащую изображения, в PDF-документе, используя ABCpdf. Это делается из веб-приложения.

Когда я запускаю приложение на своей машине для разработки в IIS5, все в порядке. При развертывании приложения на IIS6 изображения не отображаются в формате 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 (код выше) в формате PDF.

В IIS6 второе изображение (не локальное для сервера) не отображается в pdf.

Кажется, это проблема с правами доступа, но я не мог понять это.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 13 октября 2011

Я знаю, что немного поздно, но, надеюсь, поможет кому-то еще!

Просто у меня возникла очень похожая проблема (именно так я и попал на эту страницу ...). Версия IIS была той же, но работала на другом сервере. Похоже, проблема заключалась в том, что PDF-файл создавался еще до завершения загрузки изображения.

Я связался с WebSuperGoo. Сказанное под капотом использует MSHTML (хороший шанс, что разница в вашей среде), и пару предложений было попробовать:

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

и

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

Вторая задержит рендеринг PDF, предоставив возможность загрузки изображения.

2 голосов
/ 08 июля 2011

У меня была похожая проблема, и я обнаружил, что она вызвана слишком большим размером файла изображения.

...