画像からPDFへの変換は、ファイル処理アプリケーションにとって重要で便利なシナリオです。この記事では、JPG、PNG、TIFF、EMF、WMF、およびBMP画像をC#またはVB.NETを使用してPDF変換に変換する方法を学習します。以下は、インストール手順と、イメージを変換するためのいくつかの可能な使用例です。
- JPG、PNG、TIFF、EMF、およびBMPからPDFへのコンバーターAPI-インストール
- C#でJPGをPDFに変換する
- C#で同じページの高さと幅で画像をPDFに変換する
- C#を使用してPNGをPDFに変換する
- C#を使用してTIFFをPDFに変換する
- C#を使用してEMF画像をPDFに変換する
- C#でBMPをPDFに変換する
C#Image to PDFConverterAPI-インストール
Aspose.PDF for .NET APIを使用して、これらの画像形式からPDFへの変換を実行します。 リリースセクションからダウンロードするか、NuGetギャラリーから次のコマンドを使用してダウンロードできます。
Install-Package Aspose.Pdf -Version 20.9.0
これで、APIは正常にインストールされました。次に、さまざまなユースケースについて説明します。
C#でJPGをPDFに変換する
次の手順で、JPG画像をPDFに簡単に変換できます。
- Documentクラスのオブジェクトを初期化します
- PDFドキュメントに新しいページを追加する
- JPG画像をロードし、段落に追加します
- 出力PDFを保存
以下のコードスニペットは、C#を使用してJPG画像をPDFに変換する方法を示しています。
// 入力JPGファイルをロードします
String path = dataDir + "Aspose.jpg";
// 新しいPDFドキュメントを初期化します
Document doc = new Document();
// 空のドキュメントに空のページを追加する
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// ページに画像を追加する
page.Paragraphs.Add(image);
// 出力PDFファイルを保存
doc.Save(dataDir + "ImagetoPDF.pdf");
以下は、JPGからPDFへの変換のスクリーンショットです。
ただし、このスクリーンショットでは、画像がPDFページに変換されていることがわかりますが、デフォルトのページサイズと余白が出力PDFドキュメントに適用されています。 Aspose.PDF for .NET APIを使用すると、ページのサイズと余白を制御して、画像のサイズとまったく同じサイズのPDFを作成できます。この機能の調査に進みましょう。
同じページの高さと幅で画像をPDFに変換
上記のスクリーンショットでページサイズが大きくなっていることに気付くと、上記のユースケースからこの例を続けます。ページの高さと幅が同じである画像をPDFに変換する方法を学びましょう。画像のサイズを取得し、それに応じて次の手順でPDFドキュメントのページのサイズを設定します。
- 入力画像ファイルをロードする
- 画像の高さと幅を取得します
- ページの高さ、幅、余白を設定する
- 出力PDFファイルを保存します
次のコードスニペットは、C#を使用して同じページの高さと幅で画像をPDFに変換する方法を示しています。
// 入力JPG画像ファイルをロードします
String path = dataDir + "Aspose.jpg";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
// 入力画像の高さを読み取る
int h = srcImage.Height;
// 入力画像の高さを読み取る
int w = srcImage.Width;
// 新しいPDFドキュメントを初期化します
Document doc = new Document();
// 空のページを追加する
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// ページのサイズと余白を設定する
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);
// 出力PDFファイルを保存
doc.Save(dataDir + "ImagetoPDF_HeightWidth.pdf");
したがって、更新されたコードスニペットで作成されたページのサイズの違いに気付くことができます。
最後に、入力画像のサイズに応じてページサイズがまったく同じであり、デフォルトのページ余白が設定されていないことがわかります。
C#を使用してPNGをPDFに変換する
PNG画像形式は、JPG画像と比較してその機能のために人気があります。たとえば、PNG画像は透明度をサポートしています。まず、以下の手順でPNGをPDFに変換しましょう。
- 入力PNG画像を読み込む
- 高さと幅の値を読み取る
- 新しいドキュメントを作成し、ページを追加します
- ページサイズを設定する
- 出力ファイルを保存する
さらに、以下のコードスニペットは、.NETアプリケーションでC#を使用してPNGをPDFに変換する方法を示しています。
// 入力PNGファイルをロード
String path = dataDir + "Aspose.png";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
int h = srcImage.Height;
int w = srcImage.Width;
// 新しいドキュメントを初期化する
Document doc = new Document();
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// ページサイズを設定する
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);
// 出力PDFを保存
doc.Save(dataDir + "ImagetoPDF.pdf");
C#を使用してTIFFをPDFに変換する
TIFF画像は、TIFF画像に異なる画像の複数のフレームを含めることができるという点で、従来のJPEG、PNG、またはその他の形式とは異なります。 Aspose.PDFファイル形式もサポートされています。シングルフレームまたはマルチフレームのTIFF画像です。したがって、.NETアプリケーションでTIFF画像をPDFに変換できます。したがって、以下の手順で、複数ページのTIFF画像を複数ページのPDFドキュメントに変換する例を検討します。
- Documentクラスのインスタンスをインスタンス化します
- 入力TIFF画像を読み込む
- フレームのFrameDimensionを取得します
- フレームごとに新しいページを追加する
- 最後に、画像をPDFページに保存します
さらに、次のコードスニペットは、マルチページまたはマルチフレームのTIFF画像をC#でPDFに変換する方法を示しています。
// 新しいドキュメントを初期化する
Document pdf = new Document();
//TIFF画像をストリームにロードします
MemoryStream ms = new MemoryStream();
new FileStream(dataDir + @"Aspose.tiff", FileMode.Open).CopyTo(ms);
Bitmap myimage = new Bitmap(ms);
// マルチページまたはマルチフレームTIFFをPDFに変換
FrameDimension dimension = new FrameDimension(myimage.FrameDimensionsList[0]);
int frameCount = myimage.GetFrameCount(dimension);
// 各フレームを繰り返します
for (int frameIdx = 0; frameIdx <= frameCount - 1; frameIdx++)
{
Page sec = pdf.Pages.Add();
myimage.SelectActiveFrame(dimension, frameIdx);
MemoryStream currentImage = new MemoryStream();
myimage.Save(currentImage, ImageFormat.Tiff);
Aspose.Pdf.Image imageht = new Aspose.Pdf.Image();
imageht.ImageStream = currentImage;
sec.Paragraphs.Add(imageht);
}
// 出力PDFファイルを保存
pdf.Save(dataDir + "TifftoPDF.pdf");
C#を使用してEMF画像をPDFに変換する
EMFイメージは、拡張メタファイル形式とも呼ばれ、実際にはデバイスに依存しないイメージです。さらに、以下の手順を使用してEMFをPDF画像に変換できます。
- まず、Documentクラスオブジェクトを初期化します
- EMF画像ファイルをロードする
- ロードされたEMF画像をページに追加します
- PDFドキュメントを保存
さらに、次のコードスニペットは、.NETコードスニペットでC#を使用してEMFをPDFに変換する方法を示しています。
// 新しいPDFドキュメントを初期化します
var doc = new Document();
// 入力EMF画像ファイルのパスを指定します
var imageFile = dataDir + "drawing.emf";
var page = doc.Pages.Add();
string file = imageFile;
FileStream filestream = new FileStream(file, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(filestream);
long numBytes = new FileInfo(file).Length;
byte[] bytearray = reader.ReadBytes((int)numBytes);
Stream stream = new MemoryStream(bytearray);
var b = new Bitmap(stream);
// ページサイズのプロパティを指定する
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
page.PageInfo.Width = b.Width;
page.PageInfo.Height = b.Height;
var image = new Aspose.Pdf.Image();
image.File = imageFile;
page.Paragraphs.Add(image);
//出力PDFドキュメントを保存
doc.Save(dataDir + "EMFtoPDF.pdf");
C#でBMPをPDFに変換する
BMP画像は、Aspose.PDF for .NET APIを使用してPDFに変換できるビットマップ画像です。したがって、次の手順に従ってBMPイメージを変換できます。
- 新しいドキュメントを初期化する
- 入力BMP画像を読み込む
- 最後に、出力PDFファイルを保存します
したがって、次のコードスニペットはこれらの手順に従い、C#を使用してBMPをPDFに変換する方法を示しています。
Initialize empty PDF document
using (Document pdfDocument = new Document())
{
pdfDocument.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
// サンプルBMP画像ファイルをロードします
image.File = dataDir + @"Sample.bmp";
pdfDocument.Pages[1].Paragraphs.Add(image);
// 出力PDFドキュメントを保存
pdfDocument.Save(dataDir + @"BMPtoPDF.pdf");
}
結論
結局のところ、C#を使用してさまざまな側面から画像からPDFへの変換を検討してきました。 JPG、PNG、TIFF、EMF、BMPからPDFへの変換など、さまざまな変換について詳しく説明しました。さらに、ページサイズと余白を設定しながら、画像をPDFレンダリングに改善する方法を学びました。また、ご不明な点がございましたら、無料サポートフォーラムまでお問い合わせください。