logo Aspose.PDF使用教程 我也要发布文档

演示:使用C#将JPG/PNG/TIFF/EMF/BMP图像转换为PDF


图像到PDF的转换对于文件处理应用程序是重要且有用的方案。在本文中,我们将学习使用C#或VB.NET将JPG,PNG,TIFF,EMF,WMF和BMP图像转换为PDF转换。以下是一些转换图像的可能用例:

  • 使用C#将JPG转换为PDF
  • 在C#中以相同的页面高度和宽度将图像转换为PDF
  • 使用C#将PNG转换为PDF
  • 使用C#将TIFF转换为PDF
  • 使用C#将EMF图像转换为PDF
  • 使用C#将BMP转换为PDF

目前,.NET版Aspose.PDF升级到v20.7版,添加PDF到CSV转换支持,更改XImage.Name结果损坏的PDF文档,修复提取页面后,缺少内容的问题,感兴趣的朋友可点击下方按钮下载最新版。

点击下载最新版Aspose.PDF for .NET

使用C#将JPG转换为PDF

可以按照以下步骤轻松地将JPG图像转换为PDF:

  • 初始化Document类的对象
  • 将新页面添加到PDF文档
  • 加载JPG图像并添加到段落
  • 保存输出PDF

下面的代码段显示了如何使用C#将JPG图像转换为PDF:

String path = dataDir + "Aspose.jpg";
Document doc = new Document();
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);
page.Paragraphs.Add(image);
doc.Save(dataDir + "ImagetoPDF.pdf");

以下是JPG转换为PDF的屏幕截图:

PDF处理控件Aspose.PDF功能演示:使用C#将JPG/PNG/TIFF/EMF/BMP图像转换为PDF

但是,在此屏幕截图中,会注意到图像已转换为PDF页面,但是默认页面尺寸和边距将应用到输出PDF文档中。.NET API的Aspose.PDF可控制页面尺寸和边距,从而创建与图像尺寸完全相同的PDF。

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

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

  • 加载输入图像文件
  • 获取图像的高度和宽度
  • 设置页面的高度,宽度和边距
  • 保存输出的PDF文件

以下代码段显示了如何使用C#将图像转换为具有相同页面高度和宽度的PDF:

String path = dataDir + "Aspose.jpg";
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);
doc.Save(dataDir + "ImagetoPDF_HeightWidth.pdf");

因此,会注意到使用更新的代码段创建的页面尺寸的不同:

PDF处理控件Aspose.PDF功能演示:使用C#将JPG/PNG/TIFF/EMF/BMP图像转换为PDF

最后,会注意到页面大小根据输入图像的尺寸完全相似,并且现在不再设置默认页面边距。

使用C#将PNG转换为PDF

与JPG图像相比,PNG图像格式之所以受欢迎,是因为其功能强大。例如,PNG图像支持透明度。首先,让我们通过以下步骤将PNG转换为PDF:

  • 加载输入的PNG图片
  • 读取高度和宽度值
  • 创建新文档并添加页面
  • 设定页面尺寸
  • 保存输出文件

此外,下面的代码片段显示了如何在.NET应用程序中使用C#将PNG转换为PDF:

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);
doc.Save(dataDir + "ImagetoPDF.pdf");

使用C#将TIFF转换为PDF

TIFF图像可以包含与不同的图像数帧从常规JPEG,PNG,或其他格式不同。还支持Aspose.PDF文件格式,无论是单帧还是多帧TIFF图像。因此,可以在.NET应用程序中将TIFF图像转换为PDF。因此,我们将考虑通过以下步骤将多页TIFF图像转换为多页PDF文档的示例:

  • 实例化Document类的实例
  • 加载输入的TIFF图像
  • 获取框架的FrameDimension
  • 为每个框架添加新页面
  • 将图像保存到PDF页面

此外,以下代码段显示了如何使用C#将多页或多帧TIFF图像转换为PDF:

Document pdf = new Document();
MemoryStream ms = new MemoryStream();
new FileStream(dataDir + @"Aspose.tiff", FileMode.Open).CopyTo(ms);
Bitmap myimage = new Bitmap(ms);
// Convert multi page or multi frame TIFF to 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.Save(dataDir + "TifftoPDF.pdf");

使用C#将EMF图像转换为PDF

EMF图像,也称为增强型图元文件格式,实际上是与设备无关的图像。此外,您可以按照以下步骤将EMF转换为PDF图像:

  • 初始化Document类对象
  • 加载EMF图像文件
  • 将加载的EMF图像添加到页面
  • 保存PDF文件

此外,以下代码片段显示了如何在.NET代码片段中使用C#将EMF转换为PDF:

var doc = new Document();
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);
doc.Save(dataDir + "EMFtoPDF.pdf");

使用C#将BMP转换为PDF

BMP图像是位图图像,可以使用Aspose.PDF for .NET API将其转换为PDF。因此,可以按照以下步骤转换BMP图像:

  • 初始化新文件
  • 加载输入的BMP图像
  • 保存输出的PDF文件

因此,以下代码段遵循了这些步骤,并显示了如何使用C#将BMP转换为PDF:

using (Document pdfDocument = new Document())
{
    pdfDocument.Pages.Add();
    Aspose.Pdf.Image image = new Aspose.Pdf.Image();
    image.File = dataDir + @"Sample.bmp";
    pdfDocument.Pages[1].Paragraphs.Add(image);
    pdfDocument.Save(dataDir + @"BMPtoPDF.pdf");
}

还想要更多吗?您可以点击阅读
【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询