图像到 PDF 的转换对于文件处理应用程序来说是一个重要且有用的场景。在本文中,我们将学习使用 C# 或 VB.NET 将 JPG、PNG、TIFF、EMF、WMF 和 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:

  1. 初始化 Document 类的对象
  2. 将新页面添加到 PDF 文档
  3. 加载 JPG 图像并添加到段落
  4. 保存输出 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 页面,但在输出 PDF 文档中应用了默认页面尺寸和边距。 Aspose.PDF for .NET API 允许您控制页面尺寸和边距,帮助您创建与图像尺寸完全相同大小的 PDF。让我们继续探索这个功能:

将图像转换为具有相同页面高度和宽度的 PDF

从上面的用例继续这个例子,你可以在上面的屏幕截图中注意到更大的页面大小。让我们学习如何将图像转换为具有相同页面高度和宽度的 PDF。我们将通过以下步骤获取图像尺寸并相应地设置 PDF 文档的页面尺寸:

  1. 加载输入图像文件
  2. 获取图片的高度和宽度
  3. 设置页面的高度、宽度和边距
  4. 保存输出 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:

  1. 加载输入 PNG 图像
  2. 读取高度和宽度值
  3. 创建新文档并添加页面
  4. 设置页面尺寸
  5. 保存输出文件

此外,下面的代码片段显示了如何在 .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 文档的示例:

  1. 实例化 Document 类的实例
  2. 加载输入 TIFF 图像
  3. GetDimension 框架的框架
  4. 为每一帧添加新页面
  5. 最后,将图像保存到 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 图像:

  1. 首先,初始化Document类对象
  2. 加载 EMF 图像文件
  3. 将加载的 EMF 图像添加到页面
  4. 保存 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 图像:

  1. 初始化一个新文档
  2. 加载输入 BMP 图像
  3. 最后,保存输出的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 渲染。此外,如果您仍有任何疑问或问题,请通过 免费支持论坛 与我们联系。

也可以看看

[使用 C# .NET 将 AI 转换为 PNG、JPG、PSD 和 PDF 文件](https://blog.aspose.com/zh/2020/07/01/convert-ai-to-png-jpg-psd-and-pdf- csharp/)在 C# 中将图像转换为 DOC在 C# 中将图像转换为 DOCX
在 C# .NET 中将 JPG 转换为 DOC在 C# .NET 中将 JPG 转换为 DOCX在 C# .NET 中将 PNG 转换为 DOC
在 C# .NET 中将 PNG 转换为 DOCX【用Python将PPT转为JPG】(https://blog.aspose.com/zh/2021/12/03/convert-ppt-to-jpg-in-python/)在 Python 中将 SVG 转换为 PNG
用Python为PPT幻灯片创建缩略图在 Java 中调整图像对比度、亮度和 Gamma在 C# 中调整图像对比度、亮度和 Gamma
在 C# 中将 JPG 图像转换为 PNG在Java中将JPG图像转换为PNG在C#中将PNG图像转换为JPG
在Java中将PNG图像转换为JPG在 Python 中将 Word 转换为图像用C#从Word文档中提取图像
用Java从Word文档中提取图像用Python从Word文档中提取图像在 C# 中调整图像大小
用 Java 调整图像大小在 C# 中旋转和翻转图像在 Java 中旋转和翻转图像