[英]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.