跳至頁尾內容
使用 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. 點選"下一步"。 為項目命名(例如," ImageTo ")。
  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;
$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!");
}
$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;
$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);
$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!");
}
$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));
$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)));
$vbLabelText   $csharpLabel

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

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

-按字母順序imageFiles.OrderBy(f =&gt; f) -依建立日期排序imageFiles.OrderBy(f =&gt; new FileInfo(f).CreationTime) -依檔案大小排序imageFiles.OrderBy(f =&gt; 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);
$vbLabelText   $csharpLabel

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

PdfDocument類別提供的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();
$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屬性選擇標準大小,例如 Letter 或 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 提供了一個簡單、高效且文件齊全的 PDF 生成 API,無需依賴任何專有 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擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。