2017-04-21 9 views
0

私はこれを使ってhtmlからpdfに変換しますが、何もしません。エラーまたは例外はありません。私はデバッグし、HTMLコンテンツを持ち、ページにも表示されますが、ダウンロードはしません。私はHTMLコンテンツをデータベースから隠しフィールドに読み込み、バックエンドからのリテラルコントロールに割り当てて、値をチェックしています。なぜ私のページをpdfに変換しないのですか?

コード:

private MemoryStream Export(string html="") 
    { 
     ltr.Text = hdnDescription.Value; 
     html = ltr.Text; 

     MemoryStream msOutput = new MemoryStream(); 
     TextReader reader = new StringReader(html); 

     // step 1: creation of a document-object 
     Document document = new Document(PageSize.A4, 30, 30, 30, 30); 

     // step 2: 
     // we create a writer that listens to the document 
     // and directs a XML-stream to a file 
     PdfWriter writer = PdfWriter.GetInstance(document, msOutput); 

     // step 3: we create a worker parse the document 
     HTMLWorker worker = new HTMLWorker(document); 

     // step 4: we open document and start the worker on the document 
     document.Open(); 
     worker.StartDocument(); 

     // step 5: parse the html into the document 
     worker.Parse(reader); 

     // step 6: close the document and the worker 
     worker.EndDocument(); 
     worker.Close(); 
     document.Close(); 

     return msOutput; 
    } 

.aspxの:

<%@ Page Title="Print Tender" EnableEventValidation="false" Language="C#" 
    MasterPageFile="~/Default.master" AutoEventWireup="true" CodeFile="printTender.aspx.cs" 
    Inherits="forms_general_printTender" %> 

<%--<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>--%> 
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server"> 

     <asp:HiddenField ID="hdnDescription" runat="server" /> 
    <asp:Literal ID="ltr" runat="server"></asp:Literal> 

    <rsweb:ReportViewer ID="ReportViewer1" AsyncRendering="false" runat="server" Width="100%" Height="50%" Font-Names="Verdana" SizeToReportContent="false" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" /> 
</asp:Content> 
<asp:Content ID="Content3" ContentPlaceHolderID="ContentScript" runat="Server"> 
</asp:Content> 

答えて

1

まず、HTMLWorkerはちょうどpdfHTMLに取って代わられたXMLWorker、取って代わられました。 この多くのバージョンの背後にいることは、ドキュメントワークフローには役立ちません。

第2に、iTextは静的HTMLのみを変換します。 ASPページは静的コンテンツとはみなされません。

関連する問題