【发布时间】:2015-05-09 11:48:36
【问题描述】:
使用来自here 的示例代码我想出了这些代码 -
var my_html = this.GetmyReportHtml();
var my_css = this.GetmyReportHtmlCss();
Byte[] bytes;
using (var ms = new MemoryStream())
{
using (var doc = new iTextSharp.text.Document(PageSize.LETTER))
{
using (var writer = PdfWriter.GetInstance(doc, ms))
{
doc.Open();
try
{
using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(my_css)))
{
using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(my_html)))
{
iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss);
}
}
}
catch (Exception ex)
{
}
finally
{
doc.Close();
}
}
}
bytes = ms.ToArray();
}
System.IO.File.WriteAllBytes(@"c:\\temp\test.pdf", bytes);
PDF 已生成。但是 my_html 在我的情况下有 6 页,只有一半的内容被转换为 pdf。
有人知道这里发生了什么吗?如何知道 iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml 是否正常工作?
谢谢
【问题讨论】:
-
getMyReportHtml 方法里面有什么?它是否在您的项目中使用 html 页面?我确实需要它。
-
@nsarchar 是的。 getMyReportHtml 获取整个页面。
-
如何获取 html 页面?将它们放入数组中?可以和我分享一下吗?
-
@nsarchar 我把页面作为一个巨大的 html 字符串。
标签: c# html .net pdf itextsharp