C#で画像をPDFに変換する

画像（JPG、PNG）をPDFファイルに変換することで、画像をよりよく保存し、共有することができます。また、PDFファイルには強力なセキュリティ機能があり、画像をPDFに変換した後、ファイルの内容が漏れないようにパスワードを設定することができます。この記事では、無料のライブラリを使用してC＃でJPG/PNG画像をPDF文書に変換する方法を紹介します。
* [C#で単一の画像をPDF文書に変換する](#cで単一の画像をpdf文書に変換する)
* [C#で複数の画像をPDF文書に変換]()

## 画像からPDFへの変換のための無料の.NETライブラリ
サードパーティライブラリ[**Free Spire.PDF for .NET**](https://www.e-iceblue.com/Introduce/free-pdf-component.html)を使用して変換を完了することができますが、無料のライブラリには特定のページ制限があることに注意してください。
開始する前に、以下のリンクから製品パッケージをダウンロードし、手動で参照を追加するか、[NuGet](http://www.nuget.org/packages/FreeSpire.PDF/)経由で直接インストールすることができます。

https://www.e-iceblue.com/Download/download-pdf-for-net-free.html

## C#で単一の画像をPDF文書に変換する
画像をPDFに変換するためにFree Spire.PDF for .NETが提供する方法は、読み込んだ画像をPDFページ上に描画することです。主な手順は以下の通りです：

1. PDFドキュメントを作成し、その余白を0に設定します。
1. **`Image.FromFile()`** メソッドを使用して画像を読み込み、その幅と高さを取得します。
1. **`PdfDocument.Pages.Add()`** メ ソ ッ ド を使っ て、 画像 と 同 じ サ イ ズの PDF ページ を追加 し ます。
1. 画像に基づいて **`PdfImage`** オブジェクトを作成します。
1. **`PdfPageBase.Canvas.DrawImage()`** メソッドを使用して、PDFページ上にPdfImageオブジェクトを描画します。
1. **`PdfDocument.SaveToFile()`** メソッドを使用して、生成されたPDF文書を保存します。


>C#コード:
```csharp
uing System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace ConvertImageToPdfWithSameSize
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成する
            PdfDocument pdf = new PdfDocument();

            // ページマージンを0に設定
            pdf.PageSettings.SetMargins(0);

            // 画像を読み込む
            Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\work.jpg");

            // 画像の幅と高さを取得する
            float width = image.PhysicalDimension.Width;
            float height = image.PhysicalDimension.Height;

            // PdfImageオブジェクトの作成
            PdfImage pdfImage = PdfImage.FromFile(@"C:\Users\Administrator\Desktop\work.jpg");

            // 画像と同じサイズのPDFページを追加する
            PdfPageBase page = pdf.Pages.Add(new SizeF(width, height));

            // ページに画像を描く
            page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height);

            // PDFを保存
            pdf.SaveToFile("ImageToPdf.pdf");
        }
    }
}
```
![ConvertImageToPDF.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/dacfe7bb-097b-3493-a5af-bc870b20f823.png)

 
## C#で複数の画像をPDF文書に変換
Free Spire.PDF for .NET はフォルダから PDF 文書の異なるページに複数の画像を描画することもできます。主な手順は以下の通りです：

1. PDF文書を作成し、その余白を0に設定する。
1. 画像が格納されているフォルダを取得します。
1. フ ォルダ内の各画像フ ァ イ ルを イ テ レー ト し て、 各画像の幅 と 高 さ を取得 し ます。
1. **`PdfDocument.Pages.Add()`** メ ソ ッ ド を使っ て、 画像 と 同 じ サ イ ズの PDF ページ を PDF 文書内に追加 し ます。
1. **`PdfPageBase.Canvas.DrawImage()`** メ ソ ッ ド を使っ て、 各画像をページ上に描 き ます。
1. **`PdfDocument.SaveToFile()`** メソッドを使用して、生成された PDF 文書を保存します。

>C#コード:
```csharp
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.IO;

namespace ConvertMultipleImagesIntoPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成する
            PdfDocument pdf = new PdfDocument();

            //ページマージンを0に設定
            pdf.PageSettings.SetMargins(0);

            //画像が保存されているフォルダを取得
            DirectoryInfo folder = new DirectoryInfo(@"C:\Users\Administrator\Desktop\Img");

            // フォルダ内の画像を反復処理する
            foreach (FileInfo file in folder.GetFiles())
            {
                // 画像を読み込む
                Image image = Image.FromFile(file.FullName);

                // 画像の幅と高さを取得する
                float width = image.PhysicalDimension.Width;
                float height = image.PhysicalDimension.Height;

                // 画像と同じサイズのPDFページを追加する
                PdfPageBase page = pdf.Pages.Add(new SizeF(width, height));

                // PdfImageオブジェクトの作成
                PdfImage pdfImage = PdfImage.FromFile(file.FullName);

                // ページに画像を描く
                page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height);
            }

            // PDFを保存
            pdf.SaveToFile("MultiImagesToPdf.pdf");
            pdf.Dispose();
        }
    }
}
```
![ConvertMultipleImagesToPDF.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/94863022-a42d-d181-9259-16a2ec4ab5b8.png)


その他のPDF文書操作を.NETプログラムで実装する必要がある場合、例えば、作成、読み込み、画像追加、表追加など、以下のリンクから関連するチュートリアルを見ることができます：

https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Spire.PDF-Program-Guide-Content.html