2009-06-22 6 views
8

Sto tentando di eseguire il rendering di una pagina Web che contiene immagini in un documento PDF utilizzando ABCpdf. Questo viene fatto da un'applicazione web.ABCpdf non esegue il rendering di immagini in un'applicazione Web con IIS6

Quando eseguo l'applicazione sul mio computer di sviluppo in IIS5, tutto funziona correttamente. Quando distribuisco l'applicazione su IIS6, le immagini non compaiono nel pdf.

Per riprodurre il problema, ho creato una semplice applicazione Web per il rendering di un file PDF da una semplice pagina Web e ho scoperto che le immagini che non sono locali sono quelle che non compaiono nel pdf.

Il relativo codice che interagisce con 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(); 

la pagina HTML che sto usando per la prova è questa:

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

Così sto cercando di rendere la pagina a questo url: http://myserver/test/testpage.html (il codice sopra) in un pdf.

In IIS6, la seconda immagine (che non è locale per il server) non viene visualizzata nel pdf.

Sembra essere un problema con i diritti di accesso, ma non riuscivo a capirlo.

Grazie.

+0

hai trovato qualche soluzione al tuo problema? – sptremblay

+0

No. Il progetto è stato comunque abbandonato ... – Paul

risposta

2

Ho riscontrato un problema simile e ho scoperto che era causato dalla dimensione del file di immagine troppo grande.

3

So che è un po 'tardi, ma speriamo possa aiutare qualcun altro!

Appena sperimentato un problema molto simile (che è come sono atterrato a questa pagina ..). La versione di IIS era la stessa, ma veniva eseguita su un server diverso. Sembra che il problema sia stato più generazione del PDF prima che l'immagine abbia finito di scaricare.

Mi sono messo in contatto con WebSuperGoo. Il suddetto sotto il cofano che utilizza MSHTML (buona probabilità che la differenza nei vostri ambienti) e un paio di suggerimenti dovesse provare:

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

e

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

Il secondo ritarderà il rendering del PDF, dando l'immagine la possibilità di scaricare.

Problemi correlati