C# で PDF ファイルを開く
-
Process.Start()
メソッドを使用してC#
で PDF ファイルを開く -
DynamicPDF
ビューアを使用してC#
で PDF ファイルを開く -
PdfDocument
を使用してC#
で PDF ファイルを開く -
System.IO.Stream
インスタンスを使用してC#
で PDF ファイルを開く -
iTextSharp
NuGet パッケージを使用してC#
で PDF ファイルを開く -
ツールボックスから
PdfViewer
を使用してC#
で PDF ファイルを開く
このチュートリアルでは、C# を使用して Windows フォーム内で PDF ファイルを開く方法を説明します。 Windows アプリケーション用の C# プログラミングで Portable Document Format ファイルにアクセスするには、6つの方法があります。
各メソッドは、C# プログラミングと GUI コントロールに関するユーザーの基本的な知識に基づいて配置されています。 実行可能な C# の例を使用すると、プログラミングの背景知識がなくても、これらのさまざまな方法を理解して学習できます。
C# で PDF ファイルを生成するための直接的なサポートがないことを知っておく必要があります。 代わりに、サードパーティのライブラリまたはツールを使用してファイルを生成できます。 PDFSharp
は、MIT ライセンスの下で公開されている GDI+
で知られる描画ルーチンを Windows アプリケーションで使用できるようにする例です。
Process.Start()
メソッドを使用して C#
で PDF ファイルを開く
C# の System.Diagnostics.Process.Start()
メソッドは、システムの既定の PDF ファイルまたはその他のドキュメント ビューアーとして機能します。 多くの初心者がこのアプローチで抱える共通の問題は、ファイル パスです。
プログラムの .exe
ファイルからリソースのあるフォルダーへの相対パスが必要な場合は、Resources\ または ...\Resources\
をファイル パスに追加します。 それ以外の場合は、Path.GetTempPath()
を使用して PDF ファイルを一時的な場所に保存して開くことにより、PDF ファイルを埋め込みリソースとして C# プロジェクトに追加できます。
using System;
using System.Diagnostics; // essential namespace
using System.Windows.Forms;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
/* alternative approach
ProcessStartInfo file_info = new ProcessStartInfo();
file_info.FileName = "report.pdf";
string _path = @"C:\Users\DELL"; // file path
file_info.Arguments = _path;
Process.Start(file_info);
*/
Process.Start(@"C:\Users\DELL\report.pdf");
}
}
}
出力:
これは、ProcessStartInfo
の定義も保持する System.Diagnostics
名前空間に属します。 PDF を含むファイルにアクセスするための、fileName
、arguments
、userName
、password
、および domain
などのさまざまなパラメーターがあります。
DynamicPDF
ビューアを使用して C#
で PDF ファイルを開く
DynamicPDF
ビューアは、Windows アプリケーション内の .NET がファイル、バイト配列、またはパスワードで保護されたファイルを使用して PDF にアクセスしたり、Stream
を使用して PDF を開いたりするための強力なツールです。 この方法の例では、DynamicPDF
ビューアーを使用して .pdf
ファイルにアクセスしたり開いたりする方法を説明します。
DynamicPDF
が提供する MSI インストーラーを使用してこのビューアーをインストールし、インストールが正常に完了したら、DynamicPDFViewer
コントロールを Visual Studio ツールボックスに追加します。 現在、ツールボックスにアクセスして DynamicPDFViewer
コントロールを Windows フォームに追加することは有効なオプションです。
これは、C# アプリケーションのパフォーマンスを向上させるためのカスタマイズ可能な機能を備えたプレミアム ツールです。 このビューアーは、任意の .NET
WinForm アプリケーションに完全に埋め込むことができるため、ドキュメントの表示や操作を外部ビューアーに依存する必要がなくなり、その高い効率性、信頼性、および互換性を活用できます。
using System;
using System.Windows.Forms;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
pdfViewer1.Open(@"C:\Users\DELL\report.pdf");
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
出力:
ceTe.DynamicPDF.Viewer.NET
という名前で Visual Studio に NuGet パッケージとしてインストールできます。 このツールの x64 および x86 バージョンが利用可能です。インストールして C# プロジェクトへの参照を配置すると、PDF ファイルをより効率的に開くことができます。
PdfDocument
を使用して C#
で PDF ファイルを開く
Open
メソッドは、pdfViewer.Open(pdf_path);
のようなものを使用して C# で PDF ファイルを開く場合、非常にシンプルで有名です。 また、バイト配列から PDF を直接開きたい場合、pdfDocument
のインスタンスを作成してバイト配列をコンストラクターに渡す必要がある場合は、Open
メソッドを使用できます。
pdfDocument pdf_doc = new pdfDocument(pdf_file);
のような Open
メソッドを使用して作成した Viewer
コントロールに pdfDocument
インスタンスを渡します。 Open
メソッド pdfViewer.Open(pdf_doc);
を使用して実行できます。
最も重要なことは、パスワードで保護された PDF ファイルの場合、pdfDocument pdf_doc = new pdfDocument(pdf_path, "my_password123");
のように、ファイル パスと共にパスワードをコンストラクターに渡す必要があることです。 Open
メソッドを使用して、このインスタンスを DynamicPDF
ビューア コントロールに渡します。
using System;
using System.Windows.Forms;
using ceTe.DynamicPDF.Viewer;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
PdfDocument file_pdf =
new PdfDocument(data_pdf); // `data_pdf` contains the byte array info of pdf file
pdfViewer1.Open(file_pdf);
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
開く
ボタンをクリックすると、Windows フォームに埋め込まれたDynamicPDF
ビューアでバイト配列から PDF ファイルが開きます。
パスワードで保護された PDF ファイルを開くのは、PdfDocument
のインスタンスを作成し、ファイル パスとパスワードをコンストラクターに渡すことによって、バイト配列から PDF ファイルを開くのと同じくらい簡単です。
PDF は暗号化され、パスワードで保護されているため、Open()
メソッドを使用して PdfDocument
インスタンスを pdfViewer1
に渡します。
using System;
using System.Windows.Forms;
using ceTe.DynamicPDF.Viewer;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
PdfDocument file_pdf = new PdfDocument(
@"C:\Users\DELL\report.pdf", "password"); // first string is the path, and the second
// string is the password on that pdf file
pdfViewer1.Open(file_pdf);
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
出力:
System.IO.Stream
インスタンスを使用して C#
で PDF ファイルを開く
System.IO.Stream
インスタンスを直接使用して、Open
メソッドでこのタスクを実行することができます。 Stream
から pdfDocument
インスタンスを作成する必要があります。たとえば、pdfDocument pdf_doc = new pdfDocument(pdf_stream);
のようになります。
using System;
using System.Windows.Forms;
using ceTe.DynamicPDF.Viewer;
using System.IO;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
/* perform some stream operation to get `pdf_stream`
string dictionary_start = @"C:\Users\DELL\";
string dictionary_end = @"C:\Users\DELL\edvdd";
foreach (string info_file in Directory.EnumerateFiles(dictionary_start))
{
using (FileStream SourceStream = File.Open(info_file, FileMode.Open))
{
using (FileStream DestinationStream = File.Create(dictionary_end +
info_file.Substring(info_file.LastIndexOf('\\'))))
{
await SourceStream.CopyToAsync(DestinationStream);
}
}
}
*/
PdfDocument file_pdf =
new PdfDocument(pdf_stream); // `pdf_stream` contains the pdf path directly from the
// `System.IO.Strem` instance
pdfViewer1.Open(file_pdf);
}
private void pdfViewer1_Click(object sender, EventArgs e) {}
}
}
開く
ボタンをクリックすると、Windows フォームに埋め込まれたpdfViewer1``DynamicPDF
ビューアーのストリームから PDF ファイルが開きます。
iTextSharp
NuGet パッケージを使用して C#
で PDF ファイルを開く
Visual Studio で新しい C# プロジェクト (Windows フォーム C# アプリケーション) を作成し、iTextSharp
NuGet パッケージ バージョン v5.5.11
または更新されたバージョンをインストールします。
CREATE
、INSERT
、ADAPT
、MAINTAIN
ドキュメントなどの機能を PDF で提供する重要なライブラリであり、可能なすべての .pdf
機能を C# プロジェクトに追加できます。
ボタンを使用してフォームを設計し、iTextSharp.text.pdf.parser
名前空間を使用してフォームを処理します。 高度なツール ライブラリとして、複雑な PDF レポートを作成し、PDF 機能を使用してアプリケーションを強化するのに役立ちます。
using System;
using System.Windows.Forms;
using iTextSharp.text.pdf.parser; // essential namespace
using System.Text;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
using (OpenFileDialog dialog_pdffile =
new OpenFileDialog() { Filter = "PDF files|*.pdf", ValidateNames = true,
Multiselect = false }) {
if (dialog_pdffile.ShowDialog() == DialogResult.OK) {
try {
iTextSharp.text.pdf.PdfReader file_proc =
new iTextSharp.text.pdf.PdfReader(dialog_pdffile.FileName);
StringBuilder build_string = new StringBuilder();
for (int i = 1; i <= file_proc.NumberOfPages; i++) {
// read the pdf document
build_string.Append(PdfTextExtractor.GetTextFromPage(file_proc, i));
}
richTextBox1.Text = build_string.ToString();
file_proc.Close();
} catch (Exception ex) {
MessageBox.Show(ex.Message, "Caution, Error occurs!", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
private void richTextBox1_TextChanged(object sender, EventArgs e) {}
}
}
出力:
ツールボックスから PdfViewer
を使用して C#
で PDF ファイルを開く
この方法では、C# で WinForms PDF ビューアーを使用して PDF ファイルを開く方法と、単純な PDF ビューアー C# アプリケーションを作成するために必要なアセンブリを学習します。
Patagames.pdf
は、PDF ファイルを作成、編集、およびロードするためのクラス ライブラリと、PDF レンダリング エンジンを含むプライマリ アセンブリです。
Patagames.Pdf.WinForms
アセンブリには、PdfViewer UserControl
と、PDF ビューア用のその他の UI コントロールが含まれています。この WinForms .pdf
ビューアに必要なアセンブリは、これら 2つだけです。
コードからコントロールを手動で作成することは、多くの利点を持つ複雑なプロセスです。 VS ツールボックスからコントロールをドラッグし、C# フォームのデザイナー ウィンドウにドロップするだけで、PDF ビューアーを作成できます。 Patagames Pdf.Net
SDK タブに移動し、PdfViewer
ツールボックス項目をデザイナー ウィンドウにドラッグします。
pdfViewer
にはユーザー インターフェイス要素が含まれておらず、すべての重要な機能はパブリック メソッドを通じて利用できることを思い出してください。
インスタンスをデザイナに追加した後、pdfViewer1.LoadDocument("file_name.pdf");
のようにして、pdfViewerControl
にドキュメントをロードできます。
using System;
using System.Windows.Forms;
namespace open_pdf {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
pdfViewer1.LoadDocument(@"C:\Users\DELL\Resumed.pdf");
}
private void pdfViewer1_Load(object sender, EventArgs e) {}
}
}
出力:
この SDK タブの助けを借りて使用できる別のアプローチは、Patagames Pdf.Net SDK
タブに移動し、PdfToolStripMain
ツールボックス項目をデザイナー ウィンドウにドラッグして、そのインスタンスをデザイナーに追加することにより、プロパティを使用して PDF ドキュメントを開くことです。 .cs
ファイル。
その後、プロパティ グリッドで PdfViewer
プロパティをクリックし、ドロップダウン リストから pdfViewer1
を選択します。 開く
アイコンをクリックして、PDF ドキュメントを読み込んだり追加したりできるようになりました。
ボタン クリック イベントについて説明しているので、アセンブリの名前空間参照を追加し、pdfViewer
インスタンスを作成し、PDF ファイルをロードすることで、C# コードからコントロールを手動で追加できます。 ボタンのクリック イベントで、PdfViewerControl
を初期化し、ドキュメントをロードしてフォームに追加します。
Spire
PDF ビューアは、Patagames
PDF ビューアの有効な代替手段として、C# で PDF ファイルを簡単に開くことができます。 Spire.PDFViewer
をダウンロードし、Windows フォームにツール スクリプトを追加し、Spire.PdfViewer.Forms
参照を C# プロジェクトに追加して、システムから PDF ファイルを直接ロードするか、ダイアログ ボックスから PDF ファイルを選択します。 あなたのコンピュータから。
このチュートリアルでは、パフォーマンスを維持するための最も効果的な方法を使用して、C# で PDF またはその他のファイルを開く方法を学習しました。
Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.
GitHub