2015-09-21 3 views
0

У меня есть html-страница, которую мне нужно преобразовать в pdf, страница html состоит из gridview и изображений, поиск в сети. Я узнал, что это можно сделать с помощью ItextSharp, но когда i попробовал это, используя следующий код, который создается в формате pdf, но ничто не выровнено, и я не могу получить gridview, может ли предлагать какие-либо более эффективные методы или что-то не так со следующим кодом?Преобразование HTML в PDF не происходит

protected void btnExportPDF_Click() 
    { 
     Response.ContentType = "application/pdf"; 
    Response.AddHeader("content-disposition", 
     "attachment;filename=GridViewExport.pdf"); 

     Response.Cache.SetCacheability(HttpCacheability.NoCache); 

     StringWriter sw = new StringWriter(); 
     HtmlTextWriter hw = new HtmlTextWriter(sw); 

     this.PDFForm.RenderControl(hw); 
     StringReader sr = new StringReader(sw.ToString()); 
     iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10f, 10f, 10f, 0f); 
     iTextSharp.text.html.simpleparser.HTMLWorker htmlparser = new iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc); 
     PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
     pdfDoc.Open(); 
     htmlparser.Parse(sr); 
     pdfDoc.Close(); 
     Response.Write(pdfDoc); 
     Response.End(); 
    } 

ответ

0

Вы можете использовать GemBox.Document, так как это может подойти вашим потребностям.

1

1) Вы можете попробовать Winnovative HTML to PDF Conversion tool (paid version). Его архитектура STA.

http://www.winnovative-software.com/HTML-to-PDF-Conversion-Fine-Control.aspx

2) Для высокой скорости & объемной генерации PDF документа с сотнями страниц, я бы рекомендовал пойти на основе серверного программного обеспечения, такие как PDFReactor. Его лицензионная цена высокая. Его архитектура - MTA.

Я попробовал оба из них коммерчески и сделал выбор PDFReactor в одном из проектов, в котором пользовательский пользовательский HTML должен отображаться в PDF-файле.

http://www.pdfreactor.com/