【发布时间】:2023-03-17 23:53:02
【问题描述】:
我有下表,需要下载为 PDF。
该方法下载为pdf,但不显示表格的边框。
谢谢!
protected void Button2_Click(object sender, EventArgs e) {
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
Repeater_AK.RenderControl(htmlTextWriter);
StringReader stringReader = new StringReader(stringWriter.ToString());
Document Doc = new Document(PageSize.A4, 160, 160, 20, 20);
HTMLWorker htmlparser = new HTMLWorker(Doc);
PdfWriter.GetInstance(Doc, Response.OutputStream);
Doc.Open();
htmlparser.Parse(stringReader);
Doc.Close();
Response.Write(Doc);
Response.End();
}
HTML
<table cellspacing="0" style="border-style:solid; font-family:Calibri; border-width:thin;" >
<tr style="height: 26.4pt;">
<td align="center" colspan="6"
style="padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_title" runat="server"
Style="font-weight: bold; font-size:7pt; padding-left:5.4pt; padding-right:5.4pt;">ALASKA INSURANCE IDENTIFICATION CARD</asp:Label>
</td>
</tr>
<tr style="height: 8.4pt;">
<td colspan="2"
style="max-width:98.1pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;">
<asp:Label ID="lbl_Company_NAIC_Number" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Company NAIC Number"></asp:Label>
</td>
<td style="width:43.2pt; padding-left:5.4px; padding-right:5.4pt; padding-bottom:0px;">
<asp:Label ID="lbl_Commercial" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Commercial"></asp:Label>
</td>
<td style="width:20.7pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;">
</td>
<td style="width:38.7pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;">
<asp:Label ID="lbl_Personal" runat="server" Style="font-weight:bold; font-size:7pt;" Text="Personal"></asp:Label>
</td>
<td style="width:16.2pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;">
</td>
</tr>
<tr valign="top">
<td colspan="2" style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Company_NAIC_Number_out" runat="server" Style="font-size:5pt;" Text="31089"></asp:Label>
</td>
<td colspan="4"
style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_empty2" runat="server"
Style="font-weight:bold; font-size:7pt;" Text=""></asp:Label>
</td>
</tr>
<tr style="height: 21.6pt;" valign="top">
<td colspan="2"
style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Company_Name_and_Address" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Company Name and Address"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Company_Name_and_Address_out" runat="server" Style="font-size:5pt;" Text="Repwest Insurance Company"></asp:Label>
</td>
<td colspan="4"
style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Company_Phone_Number" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Company Phone Number"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Company_Phone_Number_out" runat="server"
Style="font-size:5pt;" Text="1-800-858-0317"></asp:Label>
</td>
</tr>
<tr style="height: 21.6pt;" valign="top">
<td colspan="2"
style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Policy_Number" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Policy Number"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Policy_Number_out" runat="server"
Style="font-size:5pt;" Text="PolicyPlaceHolder"></asp:Label>
</td>
<td colspan="2"
style="width:85.5pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Effective_Date" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Effective Date"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Effective_Date_out" runat="server"
Style="font-size:5pt;" Text="4/1/2015"></asp:Label>
</td>
<td colspan="2"
style="width:76.5pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Expiration_Date" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Expiration Date"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Expiration_Date_out" runat="server"
Style="font-size:5pt;" Text="3/31/2016"></asp:Label>
</td>
</tr>
<tr style="height: 22.2pt;" valign="top">
<td style="width:50.4pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Year" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Year"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Year_out" runat="server"
Style="font-size:5pt;" Text='<%# Eval("YEAR") %>'></asp:Label>
</td>
<td style="width:58.5pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Make_Model" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Make/Model"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Make_Model_out" runat="server"
Style="font-size:5pt;" Text='<%# Eval("MODEL") %>'></asp:Label>
</td>
<td colspan="4"
style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_VIN" runat="server" Style="font-weight:bold; font-size:7pt;"
Text="Vehicle Identification Number"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_VIN_out" runat="server" Style="font-size:5pt;"
Text='<%# Eval("VIN") %>'></asp:Label>
</td>
</tr>
<tr style="height: 37.8pt;" valign="top">
<td colspan="2"
style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Agency" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Agency/Company Issuing Card"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Agency_out" runat="server"
Style="font-size:5pt;">Company<br />ADDRESS<br />PHOENIX, AZ 85024</asp:Label>
</td>
<td colspan="4"
style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Insured_Name" runat="server"
Style="font-weight:bold; font-size:7pt;" Text="Insured Name and Address"></asp:Label>
<p style="margin:0px;">
</p>
<asp:Label ID="lbl_Insured_Name_out" runat="server" Style="font-size:5pt;"><%# Eval("INSURED_NAME") %><br /><%# Eval("INSURED_ADDRESS") %><br /><%# Eval("INSURED_CITY")%>, <%# Eval("INSURED_STATE")%>  <%# Eval("INSURED_ZIPCODE") %></asp:Label>
</td>
</tr>
<tr style="height: 9.6pt;" valign="top">
<td align="center" colspan="6"
style="width:260.1pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_Not_valid" runat="server"
Style="font-weight:bold; font-size:7pt;"
Text="Not valid for more than one year from effective date"></asp:Label>
</td>
</tr>
<tr style="height: 12pt;">
<td align="center" colspan="6"
style="width:260.1pt; padding-left:5.4pt; padding-right:5.4pt;">
<asp:Label ID="lbl_see_importance" runat="server"
Style="font-weight:bold; font-size:7pt;"
Text="See Important notice on reverse side"></asp:Label>
</td>
</tr>
<tr style="height: 13.7pt;">
<td colspan="6"
style="width:260.1pt; padding-left:5.4pt; padding-right:5.4pt;">
</td>
</tr>
</table>
【问题讨论】:
-
嗨,莉莉,不幸的是,您发布的代码行数越多,您的问题得到回答的可能性就越小,而且您得到的 366 已经很多了。此外,由于我们没有您的数据库,因此您的代码不可重现。如果您发布的代码更少并且我们都可以进入 VS 并让它正常工作,这将有所帮助,理想情况下是将您的非常具体的问题抽象为更普遍的问题。例如,数据库是一组行的集合,这些行是单元格的集合,也许(出于演示目的)您可以只拥有一个对象数组。
-
您好克里斯,感谢您帮助解决我的问题。我将代码替换为链接,以便您查看演示。我还包括了下载中继器的第二个选项。再次感谢您!
-
感谢 Lily,我们离合作的目标越来越近了。我建议阅读this (unfortunately long) post about converting HTML to PDF。首先(第 5 段),您会发现
HTMLWorker已过时,不再受支持,并且有一个非常非常基本的 HTML/CSS 解析器。您应该改用XMLWorker。其次(第 4 段),一旦 iTextSharp 参与进来,ASP.Net 不再重要,必须只有 HTML 和 CSS。如果您可以发布一个非常小的 HTML 和 CSS 示例,我们可能会为您提供更多帮助。 -
我认为我发布了太多 HTML。除了作为图像的水印之外,我没有 CSS 脚本。我在 html 正文中编码的所有其他内容。我不明白为什么不显示表格边框。如果我能把它显示出来,我会在清澈的海水中。谢谢!
-
这仍然是 ASPX 而不是 HTML。你能渲染这个然后只发布你希望 iTextSharp 解析的 HTML 吗?
标签: c# itextsharp