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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ITextSharp导出PDF表格和图片(C#)

c# itextsharp PDF 创建每个页面上都有水印

C#可以用itextsharp 打开PDF文件吗?

C# iTextSharp 自动调整列宽

C#工具类:使用iTextSharp操作PDF文档

C# - 每页上的 itextSharp 小计