-1

パネル コントロールにある 1 つの静的テーブルを使用しています。パネル内の html コンテンツを pdf に変換する方法 ボタンのエクスポートがクリックされたらすぐに pdf に変換するのを手伝ってください。

Aspx コード:-

<table width="100%">  
   <tr>
      <td>
          <asp:Panel ID="pnlPerson" runat="server">
            <table border="1" style="font-family: Arial; font-size: 10pt; width: 200px">
                <tr>
                    <td colspan="2" style="background-color: #18B5F0; height: 18px; color: White; border: 1px solid white">
                        <b>Personal Details</b>
                    </td>
                </tr>
                <tr>
                    <td>
                        <b>Name:</b>
                    </td>
                    <td>
                        <asp:Label ID="lblName" runat="server"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <b>Age:</b>
                    </td>
                    <td>
                        <asp:Label ID="lblAge" runat="server"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <b>City:</b>
                    </td>
                    <td>
                        <asp:Label ID="lblCity" runat="server"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <b>Country:</b>
                    </td>
                    <td>
                        <asp:Label ID="lblCountry" runat="server"></asp:Label>
                    </td>
                </tr>
            </table>
          </asp:Panel>
        <asp:Button ID="btnExport" runat="server" Text="Export"  />
      </td>
  </tr>
</table>

C#.net コード:-

if (!IsPostBack)
{
    //Populate DataTable
    DataTable dt = new DataTable();
    dt.Columns.Add("Name");
    dt.Columns.Add("Age");
    dt.Columns.Add("City");
    dt.Columns.Add("Country");
    dt.Rows.Add();
    dt.Rows[0]["Name"] = "Mudassar Khan";
    dt.Rows[0]["Age"] = "27";
    dt.Rows[0]["City"] = "Mumbai";
    dt.Rows[0]["Country"] = "India";

    //Bind Datatable to Labels
    lblName.Text = dt.Rows[0]["Name"].ToString();
    lblAge.Text = dt.Rows[0]["Age"].ToString();
    lblCity.Text = dt.Rows[0]["City"].ToString();
    lblCountry.Text = dt.Rows[0]["Country"].ToString();
}

protected void btnExport_Click(object sender, EventArgs e)
{
}

このエクスポート ボタンの C# コードを送ってください。

4

1 に答える 1

0

それが私がしたことであり、必要に応じてpdfを作成しています

protected void btnExport_Click(object sender, EventArgs e)
    {
        var document = new Document(PageSize.A4, 50, 50, 25, 25);
        var output = new FileStream(@"C:\Temp\PersonDetail.pdf", FileMode.Create);
        var writer = PdfWriter.GetInstance(document, output);
        document.Open();


        StringBuilder sb = new StringBuilder();
        StringWriter tw = new StringWriter(sb);
        HtmlTextWriter hw = new HtmlTextWriter(tw);
        pnlPerson.RenderControl(hw);
        var html = sb.ToString();
        var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(html), null);

        // Enumerate the elements, adding each one to the Document...
        foreach (var htmlElement in parsedHtmlElements)
            document.Add(htmlElement as IElement);

        document.Close();

    }

http://www.4guysfromrolla.com/articles/030911-1.aspxにあるScott Mitchell によるこの素晴らしい記事を読んで、自分に最適なものを判断してください。この記事の著者が示唆しているように、HTML を解析して PDF に追加すると、サポートが制限され、複雑な HTML 構造では機能しない可能性があります。

それが役立つかどうか教えてください。

于 2012-10-10T20:17:01.017 に答える