2009-06-22 8 views
8

J'essaie de rendre une page Web contenant des images dans un document pdf en utilisant ABCpdf. Ceci est fait à partir d'une application web.ABCpdf ne restitue pas les images dans une application Web sous IIS6

Lorsque j'exécute l'application sur mon ordinateur de développement dans IIS5, tout va bien. Lorsque je déploie l'application sur IIS6, les images n'apparaissent pas dans le pdf.

Pour reproduire le problème, j'ai fait une simple application web pour rendre un fichier pdf à partir d'une simple page web et j'ai découvert que les images qui ne sont pas locales sont celles qui n'apparaissent pas dans le pdf.

Le code correspondant qui interagit avec ABCpdf est:

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

La page html que j'utilise pour le test est la suivante:

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

Je suis en train de rendre la page à cet url: http://myserver/test/testpage.html (le code ci-dessus) dans un pdf.

Dans IIS6, la deuxième image (qui n'est pas locale pour le serveur) n'apparaît pas dans le pdf.

Il semble que ce soit un problème avec les droits d'accès, mais je ne pouvais pas le comprendre.

Merci.

+0

Avez-vous trouvé une solution à votre problème? – sptremblay

+0

Non. Le projet a été abandonné quand même ... – Paul

Répondre

2

J'ai rencontré un problème similaire et j'ai trouvé que c'était dû à la taille trop importante du fichier image.

3

Je sais que c'est un peu en retard, mais j'espère aider quelqu'un d'autre!

J'ai eu un problème très similaire (c'est comme ça que j'ai atterri sur cette page ..). La version d'IIS était la même, mais elle était exécutée sur un serveur différent. On dirait que le problème était plus la génération du PDF avant que l'image a fini de télécharger.

J'ai pris contact avec WebSuperGoo. Ledit sous le capot, il utilise MSHTML (bonne chance qui est la différence dans vos environnements) et quelques suggestions ont été d'essayer:

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

et

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

Le deuxième retardera rendu le PDF, donner à l'image une chance de télécharger.

Questions connexes