経緯
C#を使って、PNG形式の画像ファイルをPDF形式に変換したいと考え、
今回、簡単なWindowsフォームアプリを作成してみました。
変換処理には、PDF作成ライブラリの「iTextSharp」を使用しています。
この記事では、実際の実装手順から、使用したコードまでを丁寧に解説いたします。
使用するライブラリ:iTextSharp
まず、**NuGetパッケージマネージャーで「iTextSharp」**をインストールしてください。
Install-Package iTextSharp
PDFへの画像挿入や書き出しが非常に簡単に行える便利なライブラリです。
WindowsフォームアプリのUI構成
以下のような構成でフォームを作成します。
- テキストボックス(textBox1)
→ PNGファイルをドラッグ&ドロップするために使用します。 - 作成ボタン(button1)
→ クリックするとPDFを作成します。 - 削除ボタン(button2)
→ テキストボックスの内容をクリアします。
フォームデザインはシンプルですが、ファイルの選択・PDFの保存・処理完了まで直感的に行える構成です。
実装コード(C#)
以下が、PNGファイルをPDFに変換する完全なコードです。
using System;
using System.IO;
using System.Windows.Forms;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace pngをpdfにする
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
textBox1.AllowDrop = true;
textBox1.DragEnter += new DragEventHandler(textBox1_DragEnter);
textBox1.DragDrop += new DragEventHandler(textBox1_DragDrop);
}
private void button1_Click(object sender, EventArgs e)
{
string pngFilePath = textBox1.Text;
if (File.Exists(pngFilePath))
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "PDF files (*.pdf)|*.pdf";
saveFileDialog.Title = "PDFに保存";
saveFileDialog.FileName = "output";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string pdfFilePath = saveFileDialog.FileName;
Document doc = new Document();
PdfWriter.GetInstance(doc, new FileStream(pdfFilePath, FileMode.Create));
doc.Open();
iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(pngFilePath);
png.ScaleToFit(doc.PageSize.Width - 50, doc.PageSize.Height - 50);
png.SetAbsolutePosition(25, doc.PageSize.Height - png.ScaledHeight - 25);
doc.Add(png);
doc.Close();
MessageBox.Show("PDFが作成されました。");
}
}
else
{
MessageBox.Show("指定されたPNGファイルが存在しません。");
}
}
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
if (files.Length > 0)
{
textBox1.Text = files[0];
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
}
}
使い方の流れ
- フォームを起動
- PNGファイルをテキストボックスにドラッグ&ドロップ
- 「作成」ボタンをクリック
- 保存先とファイル名を指定して「保存」
- 完了メッセージが表示され、PDFが出力されます
まとめ
今回は、C#とiTextSharpを使ってPNGをPDFに変換するWindowsフォームアプリを作成しました。
画像の位置調整やスケーリングも対応しており、使い勝手の良い変換アプリになります。
ドラッグ&ドロップ対応で操作も簡単なので、日常業務での画像PDF化などにも活用できると思います。
最後までお読みいただき、ありがとうございました。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!