0

jqueryでもhtmlページを解析してpdfに変換できるhtmlパーサーを探しています。

以前は、次のコードを使用して html ファイルを pdf にエクスポートしていました。

using System;using System.Web;
using System.Web.UI;
using System.Data;
using System.IO;using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser; 

protected void btnPDF_Click(object sender, EventArgs e)
{
    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment;filename=UserDetails.pdf");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    this.Page.RenderControl(hw);
    StringReader sr = new StringReader(sw.ToString());
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0.0f);
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
    pdfDoc.Open();
    htmlparser.Parse(sr);
    pdfDoc.Close();
    Response.Write(pdfDoc);
    Response.End();
}

しかし、 iTextSharp dll を使用すると、Jquery UI を含む html ページを pdf に変換できますか?

私はアイデアを使い果たしました。どうすればこれを達成できるか、意見や提案を教えてください。

まず、これが達成できるかどうかを知りたいですか?HTML ページ (Jquery UI) を pdf に変換する機能を持つ dll はありますか?

4

2 に答える 2

1

私はこれを解決するためにjspdf.debug.jsを使用しました..

  function pdfFromHtml(element,gridConfig) { 
                getHtmlForExport(element,gridConfig,"pdf")
                var source='<table>'+$('#exportTable').html()+'</table>'; 
                var pdf = new jsPDF('l', 'pt', 'a0');  
               var margins = {
                    top: 60,
                    bottom: 10,
                    left: 10,
                    width: 720
                };
                pdf.fromHTML(
                    source, // HTML string or DOM elem ref.
                    margins.left, // x coord
                    margins.top, {// y coord
                        'width': margins.width, // max width of content on PDF 
                    },
                    function (obj) { 
                        var elementClicked = element;
                        var headerText =  $(elementClicked).text();
                        var fileName;
                        if (elementClicked == undefined || headerText == undefined) {
                            fileName = "pdfExport"
                        } else {
                            fileName = headerText.toString().trim()
                        } 
                            pdf.setFontSize(22);
                            pdf.setFontType("bold");
                            pdf.text(40, 40, fileName+" grid");
                            pdf.save(fileName + '.pdf');
                    }, margins);
    } 

getHtmlForExport(element,gridConfig,"pdf")は、pdf にエクスポートするテーブルからプレーンな html を取得する関数です ....

私が知る限り、CSS はサポートされないことに注意してください。

于 2014-12-04T15:12:21.523 に答える