C# 使用CSS从HTML在iTextSharp中呈现PDF
知道如何使用iTextSharp呈现PDF,以便使用CSS呈现页面吗。css可以嵌入到HTML中,也可以单独传递,我不在乎,只是希望它能够工作 具体的代码示例将不胜感激C# 使用CSS从HTML在iTextSharp中呈现PDF,c#,html,pdf,itextsharp,C#,Html,Pdf,Itextsharp,知道如何使用iTextSharp呈现PDF,以便使用CSS呈现页面吗。css可以嵌入到HTML中,也可以单独传递,我不在乎,只是希望它能够工作 具体的代码示例将不胜感激 另外,我真的很想坚持使用iTextSharp,不过如果你对其他东西有建议的话,它必须是免费的、开源的,并且有许可证允许在商业软件中使用它。现在不可能,但没有什么能阻止你启动开源项目。我可能真的开始一个,因为我也需要它 基本上,您需要将html和css标记转换为iTextSharp类的解析器。所以变成iTextSharp.Simp
另外,我真的很想坚持使用iTextSharp,不过如果你对其他东西有建议的话,它必须是免费的、开源的,并且有许可证允许在商业软件中使用它。现在不可能,但没有什么能阻止你启动开源项目。我可能真的开始一个,因为我也需要它 基本上,您需要将html和css标记转换为iTextSharp类的解析器。所以
变成iTextSharp.SimpleTable
等等
这将很容易拿出原型,将能够与有限的html和css子集工作
更新:在这成为可能之前,这是我临时为自己解决问题的方式。只有两个步骤:
- 告诉用户下载名为
- 通过提供打印样式表,使所有html报告对打印机友好 如果某些多页报告需要在每页上都有标题,请在AD html标记中设置标题
列出getListWeeks(int annee)
{
列表周=新列表();
DateTime beginDate=新的日期时间(annee,1,1);
DateTime endDate=新的日期时间(annee,12,31);
int nb=(int)beginDate.DayOfWeek;
DateTime monday=beginDate.AddDays(-nb+1);
DateTime周六=周一。添加天数(6);
而(星期一<结束日期)
{
添加(新日期时间[]{星期一、星期六});
星期一=星期一。添加天数(7);
星期六=星期一。附加天数(6);
}
返回周;
}
Ha……要是我有时间就好了。如果我还没有在做另一个我正试图使用iTextSharp的项目,我会这么做。另外…我在语法分析方面很烂…你应该看看。这里还有一个关于它的例子,解释了如何使用Nuget包管理器获取它。它基于Mic在另一个回答中提到的wkhtmltopdf。我将在我的新房地产项目中使用iTextSharp,我将从选定的房地产创建一个PDF文件,并将其发送打印。如果你提到的“使用css”是可能的,那就太好了。我希望有人能详细回答你的问题。谢谢你看,真糟糕!就像真的一样,它有时会消耗100%的cpu@ShilpaSoni奇怪的是,我们在生产中使用它已有多年了,而且从未遇到过任何CPU(或其他)问题。您可能有不太复杂的HTML。
List<DateTime[]> getListWeeks(int annee)
{
List<DateTime[]> weeks = new List<DateTime[]>();
DateTime beginDate = new DateTime(annee, 1, 1);
DateTime endDate = new DateTime(annee, 12, 31);
int nb =(int)beginDate.DayOfWeek;
DateTime monday = beginDate.AddDays(-nb+1); ;
DateTime saturday = monday.AddDays(6);
while (monday < endDate)
{
weeks.Add(new DateTime[] { monday, saturday });
monday = monday.AddDays(7);
saturday = monday.AddDays(6);
}
return weeks;
}