簡體   English   中英

使用CSS從HTML在iTextSharp中渲染PDF

[英]Render PDF in iTextSharp from HTML with CSS

任何想法如何使用iTextSharp渲染PDF,以便它使用CSS渲染頁面。 CSS既可以嵌入HTML中,也可以單獨傳遞,我並不在乎,只是希望它能工作。

具體的代碼示例,將不勝感激。

另外,我真的想堅持使用iTextSharp,盡管如果您有其他建議,它必須是免費的,開源的,並具有允許在商業軟件中使用它的許可證。

目前尚不可能,但是沒有什么可以阻止您啟動將要執行的開源項目。 我可能實際上會開始一個,因為我也需要它!

基本上,您將需要將HTML和CSS標記轉換為iTextSharp類的解析器。 因此<table>變成了iTextSharp.SimpleTable等等。

能夠與有限的html和css子集一起工作的原型很容易提出。

更新:在可能之前,這就是我臨時為自己解決的方式。 僅需兩個步驟:

  • 告訴您的用戶下載名為PDFCreator的開源應用程序
  • 通過提供要打印的樣式表,使所有html報表打印機友好。

    如果您的某些多頁報表需要在每個頁面上都包含標題,請在THEAD html標簽中進行設置。

現在,用戶將能夠進行友好的打印,並且如果他們選擇PDFCreator打印機驅動程序,他們甚至可以獲取PDF格式的報告(還有其他pdf打印機驅動程序,但是該驅動程序是免費的且開源的)。

我也知道HTML不如PDF靈活,但它可能已經足夠了。 我正在與真實用戶進行一些測試,他們實際上很喜歡,因為他們不僅可以將任何內容打印為PDF(甚至超出我的應用程序),而且他們的工作流程更快,因為他們無需下載並等待pdf閱讀器打開起來 他們只是直接從Web瀏覽器中打印(或導出為pdf)他們在網站上看到的內容,這很有意義。

嘗試WKHTMLTOPDF。

這是webkit的開源實現。 兩者都是免費的。

我們在這里設置了一個小教程

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM