跳過到頁腳內容
使用IRONPDF

如何使用C#將圖像轉換為PDF【代碼示例教程】

IronPDF 透過其 ImageToPdf 方法,為 C# 中的映像轉換為 PDF 提供了一個簡單、免費的解決方案,讓開發人員只需幾行程式碼和可自訂的頁面設定即可轉換單一或多個影像。

許多庫允許 C# 開發人員將圖像轉換為 PDF。 找到一個免費、易於使用且性能良好的庫可能很有挑戰性,因為有些庫是付費的、複雜的,或者功能有限。 在這些庫中, IronPDF脫穎而出,成為一個免費、有效率且易於實現的 C# 庫。 它附帶全面的文件和專門的支援服務。

IronPDF 是一個 .NET 函式庫,用於在 .NET 專案中產生、讀取、編輯和儲存 PDF 檔案。 IronPDF 為 .NET 5、Core、Standard 和 Framework 提供HTML 轉 PDF功能,並完全支援 HTML 轉 PDF,包括 CSS3 和 JS。 該庫利用Chrome 渲染引擎,確保從各種來源產生像素級完美的 PDF 檔案。

讓我們來看看如何建立一個範例專案來學習如何將影像轉換為 PDF。 本教學將引導您完成安裝過程、基本圖像轉換以及處理多個圖像和不同格式的高級功能。

如何建立 Visual Studio 專案?

若要建立新項目,請開啟 Microsoft Visual Studio。 建議使用最新版本的 Visual Studio。 建立新專案的步驟在不同版本之間可能有所不同,但其餘部分在每個版本中都應該相同。

  1. 點選建立新項目。
  2. 選擇專案模板,然後選擇控制台應用程式模板進行本次示範。 您可以根據需要使用任何模板,包括ASP.NET CoreBlazor 應用程式
  3. 點選"下一步"。 為項目命名(例如,"ImageToPDFConverter")。
  4. 按一下"下一步",然後選擇 .NET Framework 版本。
  5. 點選"創建"按鈕。

新項目將按如下所示建立。 專案結構將包含一個 Program.cs 文件,我們將在其中編寫圖像轉換程式碼。

Visual Studio 新控制台應用程式專案螢幕,顯示範本選擇和設定選項 在 Visual Studio 中建立一個新的控制台應用程式

我該選擇哪個 .NET Framework 版本?

IronPDF 支援多種 .NET 版本,包括 .NET Framework 4.6.2+、.NET Core 3.1+ 和 .NET 5/6/7/8+。 對於新項目,建議使用最新的 .NET LTS(長期支援)版本,以獲得最佳效能和安全性更新。 該程式庫在WindowsLinuxmacOS平台上也能無縫運作。

接下來,在此專案中安裝IronPDF NuGet 套件以使用它的功能。 IronPDF 的最大優點在於它無需依賴專有 API,從而消除了產生 PDF 文件的繁瑣步驟。它支援將 HTML、JS、CSS、JPG、PNG、GIF 和 SVG 等開放標準文件類型渲染成像素級完美的 PDF檔案。 簡而言之,它利用了開發人員已經掌握的技能。

如何安裝 IronPDF NuGet 套件?

若要安裝NuGet 套件,請前往"工具" > "NuGet 套件管理員" > "套件管理器控制台" 。 將出現以下視窗:

Visual Studio 中的套件管理器控制台介面顯示了 NuGet 套件管理的命令列介面軟體包管理器控制台使用者介面

接下來,在軟體套件管理器控制台中輸入以下命令:

Install-Package IronPdf

按回車鍵。 安裝過程將下載 IronPDF 及其相依項,包括必要的Chrome 渲染引擎元件

! 軟體包管理器控制台顯示 IronPDF 軟體包已成功安裝,並包含版本資訊和相依性。 在軟體包管理器控制台中安裝 IronPDF 軟體包

有哪些替代安裝方法?

您也可以透過以下方式安裝 IronPDF:

  • NuGet 套件管理器介面:右鍵點擊您的項目,選擇"管理 NuGet 套件",搜尋"IronPdf",然後按一下"安裝"。 -套件引用:將 <PackageReference Include="IronPdf" Version="*" /> 加入您的 .csproj 檔案中 -直接下載:從IronPDF 網站下載 DLL 檔案並手動引用。 -命令列:在終端機中使用 dotnet add package IronPdf

對於Azure 部署,您可能需要額外的設定。 同樣, Docker 環境也需要特定的設定步驟。

如何將影像檔案轉換為PDF文件?

下一步將展示如何將以下圖像轉換為 PDF。 IronPDF 的ImageToPdf 轉換器功能讓這個過程變得簡單。

支援哪些圖片格式?

IronPDF支援多種影像格式的PDF轉換:

  • JPEG/JPG :最常見的照片格式
  • PNG :非常適合用於帶有透明度的圖像。
  • GIF :包含動畫 GIF(使用第一幀)
  • BMP :Windows 點陣圖格式
  • TIFF :包括多頁 TIFF 文件
  • SVG :可縮放向量圖形 WebP :現代網頁圖像格式

範例鳥類圖片,展示了一隻色彩斑斕的小鳥棲息在樹枝上,用於演示 PDF 轉換的圖像質量 範例影像

若要使用該庫,請在 program.cs 文件中引用 IronPDF 庫。在文件頂部寫入以下程式碼片段:

using IronPdf;
using IronPdf.Imaging;
using System.Linq;
using IronPdf;
using IronPdf.Imaging;
using System.Linq;
Imports IronPdf
Imports IronPdf.Imaging
Imports System.Linq
$vbLabelText   $csharpLabel

接下來,在主函數中編寫以下程式碼。 這將把 JPG 檔案轉換為 PDF 檔案:

public static void Main(string[] args)
{
    // Convert a single image to the PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(@"D:\Iron Software\ImageToPDF\bird.jpg", IronPdf.Imaging.ImageBehavior.CropPage);

    // Optional: Set document properties
    doc.MetaData.Author = "IronPDF Tutorial";
    doc.MetaData.Title = "Image to PDF Conversion";
    doc.MetaData.Subject = "Converting JPG to PDF";

    // Save the resulting PDF to the specified path
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\bird.pdf");

    Console.WriteLine("PDF created successfully!");
}
public static void Main(string[] args)
{
    // Convert a single image to the PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(@"D:\Iron Software\ImageToPDF\bird.jpg", IronPdf.Imaging.ImageBehavior.CropPage);

    // Optional: Set document properties
    doc.MetaData.Author = "IronPDF Tutorial";
    doc.MetaData.Title = "Image to PDF Conversion";
    doc.MetaData.Subject = "Converting JPG to PDF";

    // Save the resulting PDF to the specified path
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\bird.pdf");

    Console.WriteLine("PDF created successfully!");
}
Public Shared Sub Main(args As String())
    ' Convert a single image to the PDF document
    Dim doc As PdfDocument = ImageToPdfConverter.ImageToPdf("D:\Iron Software\ImageToPDF\bird.jpg", IronPdf.Imaging.ImageBehavior.CropPage)

    ' Optional: Set document properties
    doc.MetaData.Author = "IronPDF Tutorial"
    doc.MetaData.Title = "Image to PDF Conversion"
    doc.MetaData.Subject = "Converting JPG to PDF"

    ' Save the resulting PDF to the specified path
    doc.SaveAs("D:\Iron Software\ImageToPDF\bird.pdf")

    Console.WriteLine("PDF created successfully!")
End Sub
$vbLabelText   $csharpLabel

ImageBehavior 如何影響輸出?

在上面的程式碼範例中,使用了 IronPDF 提供的 ImageToPdfConverter 類別進行影像轉換。 可使用 ImageToPdf 方法從影像建立 PDF 文件。 它接受圖像檔案和 System.Drawing 物件作為輸入。

靜態方法 ImageToPdf 將單一影像檔案轉換為尺寸匹配的相同 PDF 文件。 它需要兩個參數:影像路徑和影像行為(影像在紙上的顯示方式)。 ImageBehavior 枚舉提供了幾個選項:

  • CropPage :設定 PDF 頁面大小以符合圖片尺寸
  • CenteredOnPage :將影像置中顯示在頁面上,不調整其大小
  • FitToPage : 縮放影像以適應頁邊距
  • FitToPageAndMaintainAspectRatio :縮放時保持寬高比

Imaging.ImageBehavior.CropPage 會將紙張尺寸設定為與影像尺寸相同。預設頁面尺寸為 A4。您可以透過以下程式碼行進行設定:

ImageToPdfConverter.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
ImageToPdfConverter.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
ImageToPdfConverter.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter
$vbLabelText   $csharpLabel

您也可以根據特定需求設定自訂頁面尺寸

// Set custom page size in millimeters
ImageToPdfConverter.PaperSize = new IronPdf.Rendering.PdfPaperSize(210, 297);
// Set custom page size in millimeters
ImageToPdfConverter.PaperSize = new IronPdf.Rendering.PdfPaperSize(210, 297);
' Set custom page size in millimeters
ImageToPdfConverter.PaperSize = New IronPdf.Rendering.PdfPaperSize(210, 297)
$vbLabelText   $csharpLabel

有哪些紙張尺寸可供選擇?

我們提供了多種頁面尺寸選項,您可以根據需要進行設定。 IronPDF 支援所有標準紙張尺寸:

  • A 系列:A0、A1、A2、A3、A4(預設)、A5、A6、A7、A8、A9、A10
  • B系列:B0至B10 -美國尺寸:Letter、Legal、Ledger、Tabloid、Executive 其他:Foolscap、Crown、Demy、Royal 等

您也可以為 PDF 設定頁面方向(縱向或橫向)和自訂邊距

如何將多張圖片轉換為PDF檔案?

以下範例會將 JPG 影像轉換為新文件。 這對於建立相簿、目錄或合併掃描文件尤其有用:

public static void Main(string[] args)
{
    // Enumerate and filter JPG files from the specified directory
    var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
                                        .Where(f => f.EndsWith(".jpg") || f.EndsWith(".jpeg"));

    // Sort files alphabetically (optional)
    var sortedImageFiles = imageFiles.OrderBy(f => f);

    // Convert the images to a PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(sortedImageFiles);

    // Add page numbers to each page
    for (int i = 0; i < doc.PageCount; i++)
    {
        doc.AddTextFooter($"Page {i + 1} of {doc.PageCount}", 
                         FontFamily.Arial, 
                         fontSize: 10,
                         y: 25);
    }

    // Save the combined PDF
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\JpgToPDF.pdf");

    Console.WriteLine($"Combined {doc.PageCount} images into a single PDF!");
}
public static void Main(string[] args)
{
    // Enumerate and filter JPG files from the specified directory
    var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
                                        .Where(f => f.EndsWith(".jpg") || f.EndsWith(".jpeg"));

    // Sort files alphabetically (optional)
    var sortedImageFiles = imageFiles.OrderBy(f => f);

    // Convert the images to a PDF document
    PdfDocument doc = ImageToPdfConverter.ImageToPdf(sortedImageFiles);

    // Add page numbers to each page
    for (int i = 0; i < doc.PageCount; i++)
    {
        doc.AddTextFooter($"Page {i + 1} of {doc.PageCount}", 
                         FontFamily.Arial, 
                         fontSize: 10,
                         y: 25);
    }

    // Save the combined PDF
    doc.SaveAs(@"D:\Iron Software\ImageToPDF\JpgToPDF.pdf");

    Console.WriteLine($"Combined {doc.PageCount} images into a single PDF!");
}
Imports System
Imports System.IO
Imports System.Linq

Public Module Program
    Public Sub Main(args As String())
        ' Enumerate and filter JPG files from the specified directory
        Dim imageFiles = Directory.EnumerateFiles("D:\Iron Software\ImageToPDF\") _
                            .Where(Function(f) f.EndsWith(".jpg") OrElse f.EndsWith(".jpeg"))

        ' Sort files alphabetically (optional)
        Dim sortedImageFiles = imageFiles.OrderBy(Function(f) f)

        ' Convert the images to a PDF document
        Dim doc As PdfDocument = ImageToPdfConverter.ImageToPdf(sortedImageFiles)

        ' Add page numbers to each page
        For i As Integer = 0 To doc.PageCount - 1
            doc.AddTextFooter($"Page {i + 1} of {doc.PageCount}", 
                              FontFamily.Arial, 
                              fontSize:=10, 
                              y:=25)
        Next

        ' Save the combined PDF
        doc.SaveAs("D:\Iron Software\ImageToPDF\JpgToPDF.pdf")

        Console.WriteLine($"Combined {doc.PageCount} images into a single PDF!")
    End Sub
End Module
$vbLabelText   $csharpLabel

如何篩選不同格式的影像?

在上面的程式碼中,System.IO.Directory.EnumerateFiles 檢索指定資料夾中所有可用的檔案。 Where 子句過濾該資料夾中的所有 JPG 影像,並將它們儲存在 imageFiles 集合中。 如果您有 PNG 或任何其他圖片格式,只需將其新增至 Where 查詢即可:

// Filter multiple image formats
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => f.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) || 
                f.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".tiff", StringComparison.OrdinalIgnoreCase));
// Filter multiple image formats
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => f.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) || 
                f.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) ||
                f.EndsWith(".tiff", StringComparison.OrdinalIgnoreCase));
' Filter multiple image formats
Dim imageFiles = System.IO.Directory.EnumerateFiles("D:\Iron Software\ImageToPDF\") _
    .Where(Function(f) f.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) OrElse _
                      f.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase) OrElse _
                      f.EndsWith(".png", StringComparison.OrdinalIgnoreCase) OrElse _
                      f.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase) OrElse _
                      f.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) OrElse _
                      f.EndsWith(".tiff", StringComparison.OrdinalIgnoreCase))
$vbLabelText   $csharpLabel

您還可以使用更簡潔的方法,並提供一系列擴充功能:

string[] imageExtensions = { ".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tiff" };
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => imageExtensions.Any(ext => f.EndsWith(ext, StringComparison.OrdinalIgnoreCase)));
string[] imageExtensions = { ".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tiff" };
var imageFiles = System.IO.Directory.EnumerateFiles(@"D:\Iron Software\ImageToPDF\")
    .Where(f => imageExtensions.Any(ext => f.EndsWith(ext, StringComparison.OrdinalIgnoreCase)));
Dim imageExtensions As String() = {".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tiff"}
Dim imageFiles = System.IO.Directory.EnumerateFiles("D:\Iron Software\ImageToPDF\") _
    .Where(Function(f) imageExtensions.Any(Function(ext) f.EndsWith(ext, StringComparison.OrdinalIgnoreCase)))
$vbLabelText   $csharpLabel

PDF 檔案中圖片的排列順序是什麼?

預設情況下,影像會依照檔案系統傳回的順序顯示,該順序可能不是按字母順序排列的。 為了控制順序,您可以對文件進行排序:

-按字母順序排列imageFiles.OrderBy(f => f) -建立日期imageFiles.OrderBy(f => new FileInfo(f).CreationTime) -依檔案大小imageFiles.OrderBy(f => new FileInfo(f).Length) -自訂排序:使用自訂比較函數

下一行程式碼會將所有影像合併到一個 PDF 文件中。 在PDF檔案中,每張圖片都會單獨佔一頁。

如何列印PDF文件?

以下程式碼片段將使用 IronPDF 的列印功能列印文件:

// Print using default printer
doc.Print();

// Print silently (without print dialog)
doc.Print(showPreview: false);

// Print to a specific printer
var printerName = "Microsoft Print to PDF";
doc.Print(printerName);
// Print using default printer
doc.Print();

// Print silently (without print dialog)
doc.Print(showPreview: false);

// Print to a specific printer
var printerName = "Microsoft Print to PDF";
doc.Print(printerName);
' Print using default printer
doc.Print()

' Print silently (without print dialog)
doc.Print(showPreview:=False)

' Print to a specific printer
Dim printerName As String = "Microsoft Print to PDF"
doc.Print(printerName)
$vbLabelText   $csharpLabel

我可以指定印表機設定嗎?

Print 類別提供的方法將使用預設印表機列印文件。 它還提供了更改印表機名稱和其他設定的選項。 進階列印選項:

// Advanced printing with settings
using System.Drawing.Printing;

var printDocument = doc.GetPrintDocument();
printDocument.PrinterSettings.PrinterName = "Your Printer Name";
printDocument.PrinterSettings.Copies = 2;
printDocument.PrinterSettings.Collate = true;
printDocument.PrinterSettings.PrintRange = PrintRange.SomePages;
printDocument.PrinterSettings.FromPage = 1;
printDocument.PrinterSettings.ToPage = 3;

printDocument.Print();
// Advanced printing with settings
using System.Drawing.Printing;

var printDocument = doc.GetPrintDocument();
printDocument.PrinterSettings.PrinterName = "Your Printer Name";
printDocument.PrinterSettings.Copies = 2;
printDocument.PrinterSettings.Collate = true;
printDocument.PrinterSettings.PrintRange = PrintRange.SomePages;
printDocument.PrinterSettings.FromPage = 1;
printDocument.PrinterSettings.ToPage = 3;

printDocument.Print();
' Advanced printing with settings
Imports System.Drawing.Printing

Dim printDocument = doc.GetPrintDocument()
printDocument.PrinterSettings.PrinterName = "Your Printer Name"
printDocument.PrinterSettings.Copies = 2
printDocument.PrinterSettings.Collate = True
printDocument.PrinterSettings.PrintRange = PrintRange.SomePages
printDocument.PrinterSettings.FromPage = 1
printDocument.PrinterSettings.ToPage = 3

printDocument.Print()
$vbLabelText   $csharpLabel

有關列印文件的更多詳細信息,請訪問此PDF 列印範例。 您也可以探索適用於企業環境的網路列印方案

關鍵要點是什麼?

本教學展示了一種將影像轉換為 PDF 檔案的簡單方法,並提供了程式碼範例,既可以將單一影像轉換為 PDF,也可以將多個影像合併到一個 PDF 檔案中。此外,它還解釋瞭如何使用一行程式碼列印文件。

主要內容:

  • 透過 NuGet 套件管理器安裝 IronPDF
  • 將單一影像轉換為具有自訂行為的 PDF
  • 大量將多張圖片轉換為一個PDF文件
  • 控制頁面大小、方向和邊距
  • 新增元資料和頁碼
  • 以程式方式列印帶有選項的 PDF 文件

此外,IronPDF 的一些重要功能還包括:

-從網頁 URL 產生 PDF 文件 -對 PDF 文件進行加密和解密,以確保安全 -合併現有 PDF 文件以進行文件管理

哪裡可以了解更多關於IronPDF的資訊?

IronPDF提供了多種實用功能。 探索以下資源:

具體使用案例,請參閱:

IronPDF 的價格是多少?

IronPDF是Iron軟體套件的一部分。 Iron Suite 套件包含其他實用產品,例如用於 Excel 操作的IronXL 、用於條碼生成的IronBarcode 、用於文字識別的IronOCR以及用於網路資料擷取的IronWebscraper 。 購買全套 Iron Suite 產品,最高可節省 250%,因為現在只需支付兩件產品的價格,即可獲得全部五件產品。 請造訪許可詳情頁面以了解更多資訊。

IronPDF 提供: -免費開發許可,可用於測試 專業許可證起價 749 美元 -免版稅再分送選項 提供SaaS 和 OEM 許可

  • 30 天退款保證
  • 一年免費支援和更新

使用試用許可證即可免費試用 IronPDF 30 天,或了解適合您團隊的授權選項

常見問題解答

如何在 C# 中將圖像轉換為 PDF?

您可以使用 IronPDF 的 ImageToPdf 方法在 C# 中將圖像轉換為 PDF。此方法允許您指定圖像路徑和所需的 PDF 輸出設置。

可以將多個圖像轉換為單個 PDF 文件嗎?

是的,IronPDF 可以使用 ImageToPdf 方法將多個圖像轉換為單個 PDF 文件,您需要提供一組圖像文件。

哪些圖像格式與轉換為 PDF 兼容?

IronPDF 支持將各種圖像格式(如 JPG、PNG、GIF 和 SVG)轉換為 PDF 文檔。

如何在將圖像轉換為 PDF 時設置頁面大小?

要在轉換過程中設置頁面大小,請使用 ImageToPdfConverter 類中的 PaperSize 屬性選擇標準尺寸,如信紙或 A4。

可以打印使用 IronPDF 創建的 PDF 文檔嗎?

是的,IronPDF 包括 PdfDocument 類中的 Print 方法,允許您使用默認或指定的打印機設置打印 PDF 文檔。

IronPDF 提供哪些附加功能?

IronPDF 提供了其他功能,如從 URL 生成 PDF、加密和解密 PDF、合併 PDF 文件,以及創建和編輯 PDF 表單。

如何在 Visual Studio 項目中安裝 IronPDF?

要在 Visual Studio 項目中安裝 IronPDF,請打開包管理器控制台並運行命令 Install-Package IronPDF

使用 IronPDF 進行 PDF 生成有什麼優勢?

IronPDF 提供簡單、高效的 API 生成 PDF,無需專有 API,同時提供專業支持以處理各類 PDF 任務。

IronPDF 是否兼容 .NET 10,我如何在 .NET 10 項目中將其用於圖片到 PDF 的轉換?

是的 — IronPDF 完全兼容 .NET 10 並支援在 .NET 10 項目中將圖像轉換為 PDF 開箱即用。要使用它,在您的 .NET 10 項目中安裝 IronPdf NuGet 套件,然後調用類似 ImageToPdfConverter.ImageToPdf("path/to/image.png") 的方法來轉換單個圖像,或者傳入圖像路徑的 IEnumerable 以轉換多個圖像。您還可以透過 ChromePdfRenderOptions 指定選項,如 ImageBehavior 或渲染選項進行自定義。這與以前的 .NET 版本相同。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我