2013-08-01 3 views
3

Я использовал iTextSharp.dll для создания pdf. но это работает только для текстового содержимого HTML. если я использовать образы в моей страничке прошлифованных исключение, что изображения не найдены ...Создание PDF-документов с HTML-страницы с использованием ASP.NET -C#

мой дизайн файл

<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 Файлы \ Microsoft Shared \ DevServer \ Images \ image1.png.

Скажите, пожалуйста, есть ли альтернативное решение для создания pdf.

Спасибо заранее.

+0

Посмотрите: http://stackoverflow.com/a/16061848/231316 –

+0

USE Полный путь для ваших изображений, затем его работа. –

+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», и он не показывает image .. – 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 - это адрес вашей локальной машины.