【发布时间】:2013-10-03 12:16:11
【问题描述】:
我正在使用下面显示的一段代码,通过 iTextSharp 库将我的网页导出为 pdf。网页分为两列,一列宽度为 90%,另一列宽度为 10%。但是,当下载为 PDF 时,两列分配相同的宽度。在下载的 PDF 中,每列占 50% 的宽度。
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=ResumeTemplate.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
wrapper.RenderControl(hw);
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
StringReader sr = new StringReader(sw.ToString());
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
下面是我的 HTML 代码:
<table border="0" width="100%" id="maintable" runat="server" >
<tr>
<td>
<div id="content_left" runat="server" style="margin-right:10px; float:left;vertical-align:top;width:90%" >
</td>
<td>
<div id="content_right" runat="server" style="vertical-align:top;width:10%">
</div>
</div>
</td>
</tr>
</table>
div content_left 和 content_right 在页面中以指定的宽度精确显示。当它以 Word 格式下载时,它会在网页中以精确的 css 显示。但是,当下载为 PDF 格式时,content_left 和 content_right 的宽度与页面大小相等(分配给 content_left 和 content_right 的宽度为 50%)。
【问题讨论】:
-
您的 HTML sn-p 无效,我已对其进行了格式化,以便您可以看到第一个
<div>未正确关闭。是故意的吗?这可能是您的问题的原因吗? -
不,这不是问题的原因,即使 div 格式正确,下载的 pdf 的 content_left 和 content_right 的宽度也会相同
标签: c# .net pdf itextsharp