图像到 PDF 的转换对于文件处理应用程序来说是一个重要且有用的场景。在本文中,我们将学习使用 C# 或 VB.NET 将 JPG、PNG、TIFF、EMF、WMF 和 BMP 图像转换为 PDF 转换。以下是转换图像的安装步骤和一些可能的用例:
- JPG、PNG、TIFF、EMF 和 BMP 到 PDF 转换器 API - 安装
- 使用 C# 将 JPG 转换为 PDF
- 在 C# 中将图像转换为具有相同页面高度和宽度的 PDF
- 使用 C# 将 PNG 转换为 PDF
- 使用 C# 将 TIFF 转换为 PDF
- 使用 C# 将 EMF 图像转换为 PDF
- 使用 C# 将 BMP 转换为 PDF
C# Image to PDF Converter API - 安装
我们将使用 Aspose.PDF for .NET API 将这些图像格式转换为 PDF。您可以从 Releases 部分下载它,也可以使用以下命令通过 NuGet Gallery 下载它:
Install-Package Aspose.Pdf -Version 20.9.0
至此 API 已经安装成功。让我们继续探索不同的用例:
使用 C# 将 JPG 转换为 PDF
您可以通过以下步骤轻松地将 JPG 图像转换为 PDF:
- 初始化 Document 类的对象
- 将新页面添加到 PDF 文档
- 加载 JPG 图像并添加到段落
- 保存输出 PDF
下面的代码片段显示了如何使用 C# 将 JPG 图像转换为 PDF:
// 加载输入 JPG 文件
String path = dataDir + "Aspose.jpg";
// 初始化新的 PDF 文档
Document doc = new Document();
// 在空文档中添加空页面
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// 在页面上添加图像
page.Paragraphs.Add(image);
// 保存输出 PDF 文件
doc.Save(dataDir + "ImagetoPDF.pdf");
下面是JPG转PDF的截图:
但是,在此屏幕截图中,您可以注意到图像已转换为 PDF 页面,但在输出 PDF 文档中应用了默认页面尺寸和边距。 Aspose.PDF for .NET API 允许您控制页面尺寸和边距,帮助您创建与图像尺寸完全相同大小的 PDF。让我们继续探索这个功能:
将图像转换为具有相同页面高度和宽度的 PDF
从上面的用例继续这个例子,你可以在上面的屏幕截图中注意到更大的页面大小。让我们学习如何将图像转换为具有相同页面高度和宽度的 PDF。我们将通过以下步骤获取图像尺寸并相应地设置 PDF 文档的页面尺寸:
- 加载输入图像文件
- 获取图片的高度和宽度
- 设置页面的高度、宽度和边距
- 保存输出 PDF 文件
以下代码片段显示了如何使用 C# 将图像转换为具有相同页面高度和宽度的 PDF:
// 加载输入 JPG 图像文件
String path = dataDir + "Aspose.jpg";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
// 读取输入图像的高度
int h = srcImage.Height;
// 读取输入图像的高度
int w = srcImage.Width;
// 初始化一个新的 PDF 文档
Document doc = new Document();
// 添加一个空白页面
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// 设置页面尺寸和边距
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);
// 保存输出 PDF 文件
doc.Save(dataDir + "ImagetoPDF_HeightWidth.pdf");
因此,您可以注意到使用更新的代码段创建的页面尺寸的差异:
最后,您可以注意到页面大小与输入图像尺寸完全相同,并且现在不再设置默认页边距。
使用 C# 将 PNG 转换为 PDF
PNG 图像格式因其与 JPG 图像相比的特性而广受欢迎。例如,PNG 图像支持透明度。首先,让我们通过以下步骤将 PNG 转换为 PDF:
- 加载输入 PNG 图像
- 读取高度和宽度值
- 创建新文档并添加页面
- 设置页面尺寸
- 保存输出文件
此外,下面的代码片段显示了如何在 .NET 应用程序中使用 C# 将 PNG 转换为 PDF:
// 加载输入 PNG 文件
String path = dataDir + "Aspose.png";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
int h = srcImage.Height;
int w = srcImage.Width;
// 初始化新文档
Document doc = new Document();
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
// 设置页面尺寸
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);
// 保存输出 PDF
doc.Save(dataDir + "ImagetoPDF.pdf");
使用 C# 将 TIFF 转换为 PDF
TIFF 图像与传统的 JPEG、PNG 或其他格式的不同之处在于,TIFF 图像可以包含具有不同图像的多个帧。还支持 Aspose.PDF 文件格式,无论是单帧还是多帧 TIFF 图像。因此,您可以在 .NET 应用程序中将 TIFF 图像转换为 PDF。因此,我们将考虑通过以下步骤将多页 TIFF 图像转换为多页 PDF 文档的示例:
- 实例化 Document 类的实例
- 加载输入 TIFF 图像
- GetDimension 框架的框架
- 为每一帧添加新页面
- 最后,将图像保存到 PDF 页面
此外,以下代码片段显示了如何使用 C# 将多页或多帧 TIFF 图像转换为 PDF:
// 初始化新文档
Document pdf = new Document();
//将 TIFF 图像加载到流中
MemoryStream ms = new MemoryStream();
new FileStream(dataDir + @"Aspose.tiff", FileMode.Open).CopyTo(ms);
Bitmap myimage = new Bitmap(ms);
// 将多页或多帧 TIFF 转换为 PDF
FrameDimension dimension = new FrameDimension(myimage.FrameDimensionsList[0]);
int frameCount = myimage.GetFrameCount(dimension);
// 遍历每一帧
for (int frameIdx = 0; frameIdx <= frameCount - 1; frameIdx++)
{
Page sec = pdf.Pages.Add();
myimage.SelectActiveFrame(dimension, frameIdx);
MemoryStream currentImage = new MemoryStream();
myimage.Save(currentImage, ImageFormat.Tiff);
Aspose.Pdf.Image imageht = new Aspose.Pdf.Image();
imageht.ImageStream = currentImage;
sec.Paragraphs.Add(imageht);
}
// 保存输出 PDF 文件
pdf.Save(dataDir + "TifftoPDF.pdf");
使用 C# 将 EMF 图像转换为 PDF
EMF 图像,也称为增强元文件格式,实际上是与设备无关的图像。此外,您可以使用以下步骤将 EMF 转换为 PDF 图像:
- 首先,初始化Document类对象
- 加载 EMF 图像文件
- 将加载的 EMF 图像添加到页面
- 保存 PDF 文档
此外,以下代码片段显示了如何在 .NET 代码片段中使用 C# 将 EMF 转换为 PDF:
// 初始化新的 PDF 文档
var doc = new Document();
// 指定输入 EMF 图像文件的路径
var imageFile = dataDir + "drawing.emf";
var page = doc.Pages.Add();
string file = imageFile;
FileStream filestream = new FileStream(file, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(filestream);
long numBytes = new FileInfo(file).Length;
byte[] bytearray = reader.ReadBytes((int)numBytes);
Stream stream = new MemoryStream(bytearray);
var b = new Bitmap(stream);
// 指定页面尺寸属性
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
page.PageInfo.Width = b.Width;
page.PageInfo.Height = b.Height;
var image = new Aspose.Pdf.Image();
image.File = imageFile;
page.Paragraphs.Add(image);
//保存输出 PDF 文档
doc.Save(dataDir + "EMFtoPDF.pdf");
使用 C# 将 BMP 转换为 PDF
BMP 图像是位图图像,您可以使用 Aspose.PDF for .NET API 将其转换为 PDF。因此,您可以按照以下步骤转换 BMP 图像:
- 初始化一个新文档
- 加载输入 BMP 图像
- 最后,保存输出的PDF文件
因此,以下代码片段遵循这些步骤,并展示了如何使用 C# 将 BMP 转换为 PDF:
Initialize empty PDF document
using (Document pdfDocument = new Document())
{
pdfDocument.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
// 加载示例 BMP 图像文件
image.File = dataDir + @"Sample.bmp";
pdfDocument.Pages[1].Paragraphs.Add(image);
// 保存输出 PDF 文档
pdfDocument.Save(dataDir + @"BMPtoPDF.pdf");
}
结论
毕竟,我们已经使用 C# 从不同方面探索了图像到 PDF 的转换。已详细讨论了不同的转换,包括 JPG、PNG、TIFF、EMF 和 BMP 到 PDF 的转换。此外,我们还学习了如何在设置页面大小和边距的同时将图像改进为 PDF 渲染。此外,如果您仍有任何疑问或问题,请通过 免费支持论坛 与我们联系。