2009-06-22 15 views
8

Estoy tratando de renderizar una página web que contiene imágenes en un documento pdf usando ABCpdf. Esto se hace desde una aplicación web.ABCpdf no representa imágenes en una aplicación web bajo IIS6

Cuando ejecuto la aplicación en mi máquina de desarrollo en IIS5, todo está bien. Cuando despliegue la aplicación en IIS6, las imágenes no aparecen en el pdf.

Para reproducir el problema, hice una simple aplicación web para procesar un archivo pdf desde una página web simple y descubrí que las imágenes que no son locales son las que no aparecen en el pdf.

El código relevante que interactúa con ABCpdf es:

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 página HTML que estoy usando para la prueba es la siguiente:

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

Así que estoy tratando de hacer que la página a la esta url: http://myserver/test/testpage.html (el código de arriba) en un pdf.

En IIS6, la segunda imagen (que no es local para el servidor) no aparece en el pdf.

Parece que hay un problema con los derechos de acceso, pero no pude resolverlo.

Gracias.

+0

¿Encontró alguna solución a su problema? – sptremblay

+0

No. El proyecto fue abandonado de todos modos ... – Paul

Respuesta

2

Tuve un problema similar y encontré que fue causado por el tamaño del archivo de imagen que es demasiado grande.

3

Sé que esto es un poco tarde, ¡pero espero que ayude a alguien más!

Acabo de experimentar un problema muy similar (que es cómo llegué a esta página ...). La versión de IIS era la misma, pero se estaba ejecutando en un servidor diferente. Parece que el problema fue una mayor generación del PDF antes de que la imagen haya terminado de descargarse.

Me puse en contacto con WebSuperGoo. El citado bajo el capó se utiliza MSHTML (buena probabilidad de que la diferencia en sus entornos) y un par de sugerencias fueron intentar:

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

y

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

El segundo retrasará la prestación del PDF, dando a la imagen la oportunidad de descargar.

Cuestiones relacionadas