21

iTextSharp を使用して PDF をレンダリングし、CSS を使用してページをレンダリングする方法についてのアイデア。css は、HTML に埋め込むか、個別に渡すことができます。私はあまり気にしません。ただ動作させたいだけです。

特定のコード例をいただければ幸いです。

また、私は本当に iTextSharp を使い続けたいと思っていますが、他の提案がある場合は、無料でオープン ソースであり、商用ソフトウェアでの使用を許可するライセンスを持っている必要があります。

4

3 に答える 3

9

現時点では不可能ですが、それを行うオープンソース プロジェクトを開始することを妨げるものは何もありません。私もそれが必要なので、実際に始めるかもしれません!

基本的に、html および css マークアップを iTextSharp クラスに変換するパーサーが必要です。そう<table>なりiTextSharp.SimpleTableました。

限定された html および css サブセットで機能するプロトタイプを考え出すのは簡単です。

更新:これが可能になるまで、これが私が一時的に解決した方法です。2 つのステップのみ:

  • PDFCreatorというオープンソース アプリをダウンロードするようユーザーに伝えます。
  • 印刷用のスタイルシートを提供することで、すべての HTML レポートを印刷に適したものにします。

    複数ページのレポートですべてのページにヘッダーが必要な場合は、THEAD html タグで設定します。

これで、ユーザーは印刷しやすくなり、PDFCreator プリンター ドライバーを選択すると、レポートを PDF 形式で取得することもできます (他の PDF プリンター ドライバーもありますが、これは無料でオープン ソースです)。

また、HTML は PDF ほど柔軟ではないこともわかっていますが、それで十分かもしれません。私は実際のユーザーといくつかのテストを行っていましたが、彼らは実際にそれを気に入っています。なぜなら、彼らは何でも PDF に印刷できるようになっただけでなく (私のアプリを超えても)、PDF リーダーが開くまでダウンロードして待つ必要がないため、ワークフローが高速になったからです。上。彼らは、ウェブブラウザから直接、ウェブサイトで見たものを印刷 (または PDF にエクスポート) するだけです。

于 2009-01-10T04:21:04.333 に答える
6

WKHTMLTOPDF を試してください。

これは、webkit のオープン ソース実装です。どちらも無料です。

ここに小さなチュートリアルを設定しました

于 2009-08-31T13:47:42.183 に答える
2
 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;
        }
于 2015-12-22T12:19:09.863 に答える