PDF处理控件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文档,修复提取页面后,缺少内容的问题,感兴趣的朋友可点击下方按钮下载最新版。
使用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页面,但是默认页面尺寸和边距将应用到输出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");
因此,会注意到使用更新的代码段创建的页面尺寸的不同:
最后,会注意到页面大小根据输入图像的尺寸完全相似,并且现在不再设置默认页面边距。
使用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),我们很高兴为您提供查询和咨询。