如何在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。 本教程将指导您完成安装过程、基本图像转换以及处理多个图像和不同格式的高级功能。
如何在C#中将图像转换为PDF
- 安装图像到 PDF 的 C# 库。
- Utilize
`ImageToPdf`method to convert image to PDF - 指定页面上图像的可选行为
- 输入可选的PDF页面设置
- 将PDF保存到所需位置
如何创建 Visual Studio 项目?
要创建一个新项目,请打开 Microsoft Visual Studio。 建议使用最新版本的 Visual Studio。 创建新项目的步骤可能会因版本而异,但其余步骤应适用于每个版本。
- 点击创建新项目。
- 选择项目模板,然后在此演示中选择控制台应用程序模板。 您可以根据需要使用任何模板,包括ASP.NET Core或Blazor 应用程序。
- 点击下一步。 给项目命名(例如,"
ImageToPDFConverter")。 - 点击下一步并选择 .NET Framework 版本。
- 点击创建按钮。
将创建如下所示的新项目。 项目结构将包含一个 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(长期支持)版本,以获得最佳性能和安全更新。 该库在Windows 、 Linux和macOS平台上也能无缝运行。
接下来,在此项目中安装 IronPDF NuGet 包以使用它的功能。 IronPDF 的最大优点在于它无需依赖专有 API,从而消除了生成 PDF 文档的繁琐步骤。它支持将 HTML、JS、CSS、JPG、PNG、GIF 和 SVG 等开放标准文档类型渲染成像素级完美的 PDF文件。 简而言之,它利用了开发人员已经具备的技能。
如何安装 IronPDF NuGet 包?
要安装 NuGet 包,请转到工具 > NuGet 包管理器 > 包管理器控制台。 以下窗口将出现:
Visual Studio 中的包管理器控制台界面显示了 NuGet 包管理的命令行界面。 包管理器控制台UI
接下来,在包管理器控制台中编写以下命令:
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
接下来,在主函数内编写以下代码。 这将把 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
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
您还可以根据特定需求设置自定义页面尺寸:
// 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)
有哪些纸张尺寸可供选择?
提供了多种页面尺寸选项,您可以根据需要设置它们。 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文件?
以下示例将 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
如何筛选不同格式的图像?
在上面的代码中,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))
您还可以使用更简洁的方法,并提供一系列扩展:
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)))
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)
我可以指定打印机设置吗?
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()
有关打印文档的更多详细信息,请访问此PDF 打印示例。 您还可以探索适用于企业环境的网络打印方案。
主要收获是什么?
本教程展示了一种非常简单的方式,通过代码示例将图像转换为 PDF 文件,无论是将单个图像转换为 PDF 还是将多个图像组合成一个 PDF 文件。此外,还讲解了如何通过单行代码打印文档。
主要内容:
- 通过 NuGet 包管理器安装 IronPDF
- 将单个图像转换为具有自定义行为的 PDF
- 批量将多张图片转换为一个PDF文件
- 控制页面大小、方向和边距
- 向PDF文件添加元数据和页码
- 通过编程方式打印带有选项的 PDF 文件
此外,IronPDF 的一些重要功能还包括:
-从网页 URL 生成 PDF 文件 -对 PDF 文件进行加密和解密,以确保安全 -合并现有 PDF 文件以进行文档管理
哪里可以了解更多关于IronPDF的信息?
IronPDF提供了多种实用功能。 探索以下资源:
- 访问IronPDF 主页查看产品概述
- 浏览完整文档,获取详细指南 查看代码示例以了解实际应用。
- 阅读教程,逐步学习
- 请参阅API 参考文档了解技术详情 加入IronPDF 社区获取支持
具体使用案例,请参阅:
- 将网页内容的HTML 转换为 PDF
- 用于保护的PDF 安全功能
- 针对大型作业的性能优化
- Azure 和 AWS云部署指南
IronPDF 的价格是多少?
IronPDF是Iron软件套件的一部分。 Iron Suite 套件包含其他实用产品,例如用于 Excel 操作的IronXL 、用于条形码生成的IronBarcode 、用于文本识别的IronOCR以及用于网络数据提取的IronWebscraper 。 您可以通过购买完整的Iron Suite节省高达250%的费用,因为您目前可以用两个的价格购买全部五个产品。 请访问许可详情页面了解更多信息。
IronPDF 提供: -免费开发许可,可用于测试 专业许可证起价 749 美元 -免版税再分发选项 提供SaaS 和 OEM 许可
- 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 版本的工作方式完全相同。



