Я пытаюсь сделать веб-страницу, содержащую изображения, в 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.
Кажется, это проблема с правами доступа, но я не мог понять это.
Спасибо.