c#中带有html的itextsharp [重复]
Posted
技术标签:
【中文标题】c#中带有html的itextsharp [重复]【英文标题】:itextsharp with html in c# [duplicate] 【发布时间】:2015-05-26 04:18:11 【问题描述】:我之前用 vb 使用了 itextsharp,我是用一些 html 编码来做的,比如将整个 html 传递给 itextsharp 以创建 PDF,但现在我正在使用 c#,我已经丢失了我以前的所有作品,有没有范帮助我做到这一点的链接或提示?
我知道我可以简单地使用 itextsharp 创建 pdf,但我似乎无法找到正确布局我的内容的方法,这就是我想使用 HTML 样式来提供帮助的原因。
如果有更好的方法来使用 itextsharp 或任何其他库来布局 pdf,请告诉我。
谢谢
【问题讨论】:
@Daniel Casserly -> 不是“我可以渲染 pdf”而是“那个库不读取我的 css” @zchpit 确实HtmlWorker
不会读取 CSS,但 XML Worker 会。
阅读The Best iText Questions on *** 也会让您受益匪浅。这是一本包含数百个示例的免费电子书,它介绍了创建模板的不同方法(HTML 只是一种选择)。
@benji_Wong -> 如果有任何答案有帮助,别忘了点赞 :)
@zchpit 我想我应该稍微改变一下我的问题。我不必使用 HTML 到 PDF。我想使用它的原因是因为我似乎找不到使用 itextsharp 本身正确格式化文档的方法,有没有更好的格式化方法?
【参考方案1】:
检查这些链接:
-
How to convert html to pdf - itextsharp
Another conversion example
使用示例(不含html):
MemoryStream output = new MemoryStream();
iTextSharp.text.Document document = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10, 10, 20, 20);
PdfWriter writer = PdfWriter.GetInstance(document, output);
document.Open(); // open doc to write
// add things to your document
// example: document.Add(new Paragraph("Test"));
document.Close();
writer.Close();
byte[] pdfBytes = output.ToArray();
【讨论】:
第一个链接就OK了。这确实是这里提出的问题的重复。第二个链接不行,因为它使用了HTMLWorker
,这是一个已被放弃而支持 XML Worker 并且不再受支持的类。
您添加的示例无关紧要,因为 OP 解释说他能够创建 PDF。他说:我知道我可以简单地使用 itextsharp 创建 pdf。 因此,您应该投票结束问题,而不是添加答案。以上是关于c#中带有html的itextsharp [重复]的主要内容,如果未能解决你的问题,请参考以下文章