2009-06-22 98 views
8

我試圖使用ABCpdf將包含圖像的網頁呈現爲pdf文檔。這是從一個Web應用程序完成的。ABCpdf不在IIS6下呈現Web應用程序中的圖像

當我在我的開發機器在IIS5上運行應用程序時,一切都很好。當我在IIS6上部署應用程序時,圖像不會顯示在pdf中。

要重現該問題,我做了一個簡單的Web應用程序,以使從一個簡單的網頁一個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中。

這似乎是訪問權限的問題,但我無法弄清楚。

謝謝。

+0

你有沒有找到解決問題的辦法? – sptremblay 2010-04-20 19:17:31

回答

2

我也有類似的問題,並發現它是由圖像文件過大的尺寸造成的。

3

我知道這有點晚了,但希望能幫助別人!

只是在經歷一個非常類似的問題(這是我降落在此頁。)。 IIS的版本是相同的,但它在不同的服務器上運行。看起來問題是在圖像下載完成之前更多的PDF。

我與WebSuperGoo取得了聯繫。它使用MSHTML(很好的機會,在你的環境中的差異)和引擎蓋下稱一對夫婦的建議是嘗試:

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

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

第二個將延遲渲染PDF,給圖像下載的機會。