[英]Render PDF in iTextSharp from HTML with CSS
任何想法如何使用iTextSharp渲染PDF,以便它使用CSS渲染页面。 CSS既可以嵌入HTML中,也可以单独传递,我并不在乎,只是希望它能工作。
具体的代码示例,将不胜感激。
另外,我真的想坚持使用iTextSharp,尽管如果您有其他建议,它必须是免费的,开源的,并具有允许在商业软件中使用它的许可证。
目前尚不可能,但是没有什么可以阻止您启动将要执行的开源项目。 我可能实际上会开始一个,因为我也需要它!
基本上,您将需要将HTML和CSS标记转换为iTextSharp类的解析器。 因此<table>
变成了iTextSharp.SimpleTable
等等。
能够与有限的html和css子集一起工作的原型很容易提出。
更新:在可能之前,这就是我临时为自己解决的方式。 仅需两个步骤:
通过提供要打印的样式表,使所有html报表打印机友好。
如果您的某些多页报表需要在每个页面上都包含标题,请在THEAD html标签中进行设置。
现在,用户将能够进行友好的打印,并且如果他们选择PDFCreator打印机驱动程序,他们甚至可以获取PDF格式的报告(还有其他pdf打印机驱动程序,但是该驱动程序是免费的且开源的)。
我也知道HTML不如PDF灵活,但它可能已经足够了。 我正在与真实用户进行一些测试,他们实际上很喜欢,因为他们不仅可以将任何内容打印为PDF(甚至超出我的应用程序),而且他们的工作流程更快,因为他们无需下载并等待pdf阅读器打开起来 他们只是直接从Web浏览器中打印(或导出为pdf)他们在网站上看到的内容,这很有意义。
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.