2013-08-01 117 views
3

我使用iTextSharp.dll創建pdf。但僅適用於文本HTML內容。如果我在頁面中使用它的圖像得來的是圖像未發現異常......使用ASP.NET -C從HTML頁面生成PDF文檔#

我的設計文件

<asp:Panel ID="pdfPannel" runat="server"> 

     Sample Text 
<img src="../Images/image1.png"/> 


</asp:Panel> 

<asp:Button ID="btnSave" runat="server" Text="Save As PDF" onclick="btnSave_Click" /> 

我的方法:

protected void btnSave_Click(object sender, EventArgs e) 
{ 

Response.ContentType = "application/pdf"; 
Response.AddHeader("content-disposition", "attachment;filename=print.pdf"); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 
pdfPannel.RenderControl(hw); 
StringReader sr = new StringReader(sw.ToString()); 
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); 
HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
pdfDoc.Open(); 
htmlparser.Parse(sr); 
pdfDoc.Close(); 
Response.Write(pdfDoc); 
Response.End(); 

} 

當我點擊保存按鈕即時得到錯誤

找不到部分路徑'C:\ Program Files \ Common Files \ Microsoft Shared \ DevServer \ \圖片image1.png」。

請告訴我,是否有任何替代解決方案來創建pdf。

在此先感謝..

+0

請參閱:http://stackoverflow.com/a/16061848/231316 –

+0

使用完整路徑爲您的圖像然後它的工作。 –

+0

當我給完整路徑也沒有工作...它採取圖像路徑爲http:// localhost:58095/testProject/D:/testProject/Images/image1.png和該圖像不顯示在頁面中生成文本內容的pdf。 – Gopalakrishnan

回答

1

您的代碼看起來不錯。問題似乎與圖像的路徑。嘗試將它設置爲完全合格的路徑圖像,它會爲你工作。

此外,如果你是從服務器端代碼操縱HTML。然後我會建議你使用Server.MapPath()映射圖像路徑。它會正常工作。

+0

謝謝Mayank .. 但是,當我給server.mapPath()它將圖像的URL作爲「http:// localhost:58095/testProject/D:/testProject/Images/Image1.png」,並沒有顯示圖片.. – Gopalakrishnan

+0

這對你有用......? –

+0

它不工作時,我給server.mapPath()它將圖像的URL作爲「http:// localhost:58095/testProject/D:/testProject/Images/image1.png;它不顯示圖像。 – Gopalakrishnan

0

使用

http://localhost:58095/Images/image1.png 

得到圖片的路徑。希望它能幫助你。 localhost:58095是您的本地機器地址。