PDFを操作するためのC#ライブラリを参照する

トピック画像
PDFHTMLのトピックはこの記事を書くことを私に押し付けましたが、それはphp言語専用であるという事実のために、個人的にはあまり役に立ちませんでした。 PHPでの私の経験はすべて、いくつかのスクリプトをC#に変換することに限定されていたので、C#言語ツールを使用してpdfを操作するために利用できるものの概要を説明することにしました。

私のリストには7つのライブラリがありますが、いくつかの単語について説明します。最も人気のあるライブラリ(stackoverflowの答えから判断して)については、それを使用して簡単なドキュメントを作成する方法を書きます。 これはiTextSharpであるすぐに言わなければならず、その作業については記事の最後で説明します。

ライブラリの概要


1. iTextSharp
iTextライブラリを使用すると、PDFドキュメントを作成および操作できます。 開発者は、PDFドキュメントの動的な生成および/または操作を通じてWebおよびアプリケーションアプリケーションを改善できます。

開発者はiTextを使用して次のことができます。
-PDFをブラウザに転送
-XMLファイルまたはデータベースから動的ドキュメントを生成する
-PDFの多くのインタラクティブ機能を使用する
-ブックマーク、ページ数、透かしなどを追加します。
-PDFページの分離、結合、操作
-PDFフォームへの記入を自動化する
-PDFファイルにデジタル署名を追加します
iTextは、JavaとC#の2つの言語で利用できます。

2. Report.NET
Report.NETは、シンプルで柔軟な方法でPDFドキュメントを生成するのに役立つ強力なライブラリです。 ADO.NETデータセットから取得したデータを使用してドキュメントを作成できます。

ライブラリ機能:
-Microsoft .NET Framework用にC#で完全に記述
-非常にコンパクトなコード(Hello World:6行)
-グラフィックオブジェクトをサポート:テキスト、線、長方形、jpeg画像
-グラフィックオブジェクトの整列と変換の容易さ
-ASP.NETは動的なPDFページを生成できます
-XMLドキュメント(コメントWebページ)

3. PDFシャープ
PDFsharpは、その場でPDFドキュメントを非常に簡単に作成するC#ライブラリです。 GDI +描画手順のように見えます。同様に、PDFドキュメントを作成したり、画面に描画したり、プリンタに印刷して送信したりできます。 PDFsharpは、既存のPDFファイルを変更、マージ、分割したり、既存のPDFファイルから新しいPDFドキュメントにページを移動したりできます。
PDFsharpは、任意の.NET言語からPDFドキュメントを簡単に作成するオープンソースライブラリです。

4. SharpPDF
SharpPDFは、いくつかの手順でPDFドキュメントにさまざまなオブジェクトを作成できるC#ライブラリです。 .NET framework 1.1用に作成され、100%互換性のあるPDFファイルを作成できます(Acrobat Reader、Ghostscript、JAWS PDF Editor、およびその他のPDFリーダーでテスト済み)。 ライブラリの最も重要な目標は単純な使用です。

ライブラリ機能:
-Windowsフォームで使用して、新しいPDFファイルを生成したり、データベースに保存したりできます。
-Webアプリケーション(ASP.NET)で使用して、pdfファイルを生成したり、結果をブラウザーにすぐに送信したりできます。

5. PDFjet Open Source Edition
PDFjetは、Javaおよび.NETからPDFドキュメントを動的に作成するためのオープンソースライブラリです。

ライブラリ機能:
図面:ポイント、ライン、ボックス、円、ベジェ曲線、ポリゴン、星、複雑なパスと形状。
テキスト:Unicodeサポート、HelveticaおよびTimes-Romanフォントファミリを使用する場合のテキストカーニング、ハイパーリンクの挿入、レポート機能の柔軟性を備えたテーブルクラスを使用します。
次のタイプの画像の挿入をサポート:PNG、JPEG、BMP

6. ASP.NET FO PDF
FO PDFは、C#で記述されたASP.NETサーバーコントロールに似ています。 XSL FOを生成するためのDataTableと他のいくつかのパラメーターを受け取り、NFOP(Apache FOP Port in J#)PDF Formatterを使用してPDFレポートとしてDataGridをレンダリングします。

7. PDFピエロ
PDF Clownは、さまざまなプログラミングスタイル(低レベル(PDFオブジェクトモデル)から高レベル(PDFドキュメント構造とストリーミングコンテンツ)まで)に合わせて、いくつかの抽象化レイヤーを持つPDFファイルの読み取り、処理、書き込みを行うC#2.0ライブラリです。 主なターゲットプラットフォームはGNU / Linuxですが、Monoプロジェクトのおかげで、ほとんどプラットフォームに依存しません。

iTextSharpのクイックスタート


前に書いたように、このライブラリは、説明したすべてをテストして選択したために選択されませんでしたが、最も頻繁に参照およびアドバイスされるためです。 プロジェクトのウェブサイトにアクセスすると、本を購入したり、ファイルをダウンロードしたりできることがわかります。
自分で何かを収集したくないので、ソースコードではなく、すぐにitextsharp-5.0.5-dll.zipライブラリをダウンロードします。 1つのライブラリでは、クイックスタートが機能しないため、サンプルのiTextSharp.tutorial.01.zipをダウンロードします。 サンプルのアーカイブを開いた後、開始が思ったよりずっと速くなることに気付きました。 例には13の章があります。 私はすぐにこれを終了できると考えましたが、それでも小さなアプリケーションを作成することにしました。

ライブラリを使用するために必要な手順を書き留めます。
-WinFormsアプリケーションを作成しています。
-itextsharp.dllへのリンクを追加します
-フォームにボタンをインストールし、クリックハンドラーに次のコードを追加します。
var doc = new Document();
PdfWriter.GetInstance(doc, new FileStream (Application.StartupPath + @"\Document.pdf" , FileMode .Create));
doc.Open();
iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(Application.StartupPath + @"/images.jpg" );
jpg.Alignment = Element.ALIGN_CENTER;
doc.Add(jpg);
PdfPTable table = new PdfPTable(3);
PdfPCell cell = new PdfPCell( new Phrase( "Simple table" ,
new iTextSharp.text. Font (iTextSharp.text. Font .FontFamily.TIMES_ROMAN, 16,
iTextSharp.text. Font .NORMAL, new BaseColor(Color.Orange))));
cell.BackgroundColor = new BaseColor(Color.Wheat);
cell.Padding = 5;
cell.Colspan = 3;
cell.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell);
table.AddCell( "Col 1 Row 1" );
table.AddCell( "Col 2 Row 1" );
table.AddCell( "Col 3 Row 1" );
table.AddCell( "Col 1 Row 2" );
table.AddCell( "Col 2 Row 2" );
table.AddCell( "Col 3 Row 2" );
jpg = iTextSharp.text.Image.GetInstance(Application.StartupPath + @"/left.jpg" );
cell = new PdfPCell(jpg);
cell.Padding = 5;
cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
table.AddCell(cell);
cell = new PdfPCell( new Phrase( "Col 2 Row 3" ));
cell.VerticalAlignment = PdfPCell.ALIGN_MIDDLE;
cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
table.AddCell(cell);
jpg = iTextSharp.text.Image.GetInstance(Application.StartupPath + @"/right.jpg" );
cell = new PdfPCell(jpg);
cell.Padding = 5;
cell.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
table.AddCell(cell);
doc.Add(table);
doc.Close();


* This source code was highlighted with Source Code Highlighter .

このコードの結果:
例

結論


インターネット上の各ライブラリについては、多くの情報を見つけることができます(開発者のWebサイトから始めることをお勧めします)。このライブラリのコレクションを準備している間、私はさまざまな意見に出会いました。あなたのニーズから。 正直なところ、私はそれらのすべてを使用したわけではなく、それらのいくつかを試しただけで、iTextSharpに落ち着きました。

希望:特定のライブラリーで停止したことを示す場合、選択する際に何が決定的であったかを示すために怠けすぎないでください。

Source: https://habr.com/ru/post/J112707/


All Articles