跳至頁尾內容
使用IRONPDF

如何用C#從PDF提取資料

IronPDF提供了一個簡單、免費的解決方案,透過其ImageToPdf方法在C#中將圖片轉換為PDF,允許開發者僅用幾行程式碼和可自定義的頁面設置來轉換單個或多個圖片。

許多程式庫允許C#開發者將圖片轉換為PDF。 尋找一個免費且使用者友好的程式庫同時又具備良好的性能可能是個挑戰,因為有些是付費的、複雜的或功能有限的。 在這些程式庫中,IronPDF突顯為一個免費、高效且易於實現的C#程式庫。 它附有完整的文件和專門的支援。

IronPDF 是一個 .NET 程式庫,用於在 .NET 專案中生成、讀取、編輯和儲存 PDF 文件。 IronPDF 支援 .NET 5、Core、Standard 和 Framework 的HTML-to-PDF,具備完整的 HTML-to-PDF 支援,包括 CSS3 和 JS。 該程式庫利用Chrome 渲染引擎,以確保從各種來源生成的 PDF 像素完美。

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

我如何建立一個 Visual Studio 專案?

要建立一個新專案,請打開 Microsoft Visual Studio。 建議使用最新版的 Visual Studio。 建立新專案的步驟在不同版本間可能不同,但其餘部分在每個版本中應該相同。

  1. 點擊建立新專案。
  2. 選擇專案模板,然後在此範例中選擇控制台應用程式模板。 您可以根據需求使用任何模板,包括ASP.NET CoreBlazor 應用程式
  3. 點擊下一步。 命名專案(例如"ImageToPDFConverter")。
  4. 點擊下一步並選擇 .NET 資架構版本。
  5. 點擊建立按鈕。

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

Visual Studio 新控制台應用程式專案建立螢幕顯示模板選擇和配置選項 在 Visual Studio 中建立一個新的控制台應用程式

我應該選擇哪個 .NET 資架構版本?

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

接下來,在此專案中安裝IronPDF NuGet 套件以使用其功能。 IronPDF 的優點在於,它取消了生成 PDF 文件的挫敗感,因為它不依賴於專有 API。HTML to PDF 渲染從開放標準文件型別中生成像素完美的PDF:HTML、JS、CSS、JPG、PNG、GIF,和SVG。 簡而言之,它利用了開發者已擁有的技能。

我如何安裝 IronPDF NuGet 套件?

要安裝NuGet 套件,請移至工具 > NuGet 套件管理員 > 套件管理員控制台。 以下窗口將出現:

Package Manager Console 介面在 Visual Studio 中顯示用於 NuGet 套件管理的命令行介面 套件管理器控制台使用者介面

接下來,請在套件管理員控制台中撰寫以下命令:

Install-Package IronPdf

按Enter。 安裝過程會下載IronPDF及其依賴項,包括必要的Chrome 渲染引擎組件

Package Manager Console 顯示 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
  • 美國尺寸:信紙、法律、總帳、文章、行政
  • 其他: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檢索指定文件夾中所有可用的文件。 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中
  • 程式化列印 PDF ,且具有選項

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

我可以在哪裡了解更多IronPDF的相關資訊?

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

對於特定的使用案例,探索:

IronPDF的價格是多少?

IronPDF 是 Iron Software 套件的一部分。 Iron Suite 包含其他有用的產品,如用於Excel操作的IronXL、用於條形碼生成的IronBarcode、用於文字識別的 IronOCR以及用於網頁資料擷取的IronWebScraper。 您可以透過購買完整的 Iron Suite 節省高達 250%,因為您可以以僅購買兩個產品的價格獲得所有五個產品。 請存取授權詳細資訊頁面以獲得更多資訊。

IronPDF 提供:

  • 免費開發授權以進行測試
  • 專業授權起價$999
  • 免版稅再分發選項
  • 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提供生成PDF(從URL)、對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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

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