当使用将 html 转换为 pdf 时itextsharp
使用 css 为网页应用的 iam 样式在转换后的 pdf 中不起作用。
这是我的CSS代码:
<style type="text/css">
.cssformat
{
width:300px;
height:200px;
border:2px solid black;
background-color:white;
border-top-left-radius:60px 90px;
border-bottom-right-radius:60px 90px;
}
</style>
这是我的 html 代码:
<div id="divpdf" runat="server">
<table id="tid" runat="server">
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="this is new way of pdf" CssClass="cssformat"></asp:Label>
</td>
</tr>
</table>
</div>
以下是我用 c# 尝试过的:
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Document pdfDoc = new Document(PageSize.A4, 60f, 80f, -2f, 35f);
divpdf.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
hw1.Parse(new StringReader(sttt));
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
sw.Close();
sr.Close();
hw.Close();
我在使用 iTextSharp 从 HTML 转换为 PDF 时费了很大劲,最终放弃了,因为我无法获得与我的 HTML5/CSS3 页面 100% 相同的转换后的 PDF。所以我给你提供了最终对我有用的替代方案。
令人惊讶的是,当您不准备为商业图书馆付费时,可用的选择非常少。我的一位客户也有同样的要求(从 HTML 转换为 PDF),他们不想支付任何第三方工具的费用,所以我必须制定一个计划。这就是我所做的,不是最好的解决方案,但它完成了工作
我下载了最新版本的wkhtml转pdf https://code.google.com/p/wkhtmltopdf/。不幸的是,wkhtmltopdf 工具在转换为 PDF 时没有显示嵌入 HTML 中的一些谷歌图表。因此,我使用了附带的 wkhtmltoimage 工具来转换为 PNG,它按预期唤醒并显示所有图形。
然后我下载了最新版本的图像魔法 http://www.imagemagick.org/script/index.php并将 PNG 转换为 PDF。
我使用 C# 自动化了这个过程。
不幸的是,这不是最优雅的解决方案,因为您必须执行两次转换并做一些工作来自动化所有操作,但这是我能想到的最好的解决方案,它给了我所需的结果和质量。
当然,有很多商业软件可以做得更快更好。
只是一个旁注:
我必须转换的网页是使用 Bootstrap 版本 3 以 HTML5 和 CSS3 开发的,其中包含一些谷歌图表和图表。一切都已顺利转换。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)