2009-06-22 5 views
8

Ich versuche, eine Webseite, die Bilder enthält, mit Hilfe von ABCpdf in ein PDF-Dokument zu rendern. Dies geschieht über eine Webanwendung.In einer Webanwendung unter IIS6 werden keine Bilder gerendert.

Wenn ich die Anwendung auf meinem Entwicklungscomputer in IIS5 ausführen, ist alles in Ordnung. Wenn ich die Anwendung auf IIS6 bereitstellen, werden die Bilder nicht in der PDF angezeigt.

Um das Problem zu reproduzieren, machte ich eine einfache Web-Anwendung, um eine PDF-Datei von einer einfachen Webseite zu rendern und ich fand heraus, dass die Bilder, die nicht lokal sind diejenigen sind, die nicht in der PDF erscheinen.

Der entsprechende Code, der mit ABCpdf interagiert ist:

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(); 

Die HTML-Seite, die ich für den Test verwendet habe, ist dies:

<!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> 

Also die Seite Ich versuche, bei zu machen Diese URL: http://myserver/test/testpage.html (der Code oben) in ein PDF.

In IIS6 erscheint das zweite Image (das nicht lokal für den Server ist) nicht in der PDF.

Es scheint ein Problem mit Zugriffsrechten zu sein, aber ich konnte es nicht herausfinden.

Vielen Dank.

+0

Haben Sie eine Lösung für Ihr Problem gefunden? – sptremblay

+0

Nein. Das Projekt wurde trotzdem fallengelassen ... – Paul

Antwort

2

Ich hatte ein ähnliches Problem und fand, dass es durch die Größe der Bilddatei verursacht wurde, die zu groß ist.

3

Ich weiß, das ist ein bisschen spät, aber hoffentlich wird jemand anders helfen!

Ich habe gerade ein sehr ähnliches Problem erlebt (so bin ich auf dieser Seite gelandet ...). Die Version von IIS war identisch, wurde jedoch auf einem anderen Server ausgeführt. Es sieht so aus, als ob das Problem mehr in der Erzeugung der PDF-Datei liegt, bevor das Bild fertig heruntergeladen wurde.

Ich habe mich mit WebSuperGoo in Verbindung gesetzt. Das sagte unter der Haube es MSHTML (gute Chance, dass der Unterschied in Ihrer Umgebung ist) verwendet und ein paar Vorschläge waren, um zu versuchen:

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

und

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

Die zweite Verzögerung werden die PDF-Rendering, Geben Sie dem Bild eine Chance zum Herunterladen.