PDF控件Spire.PDF for .NET【转换】演示:在 C# 中将多页图像转换为 PDF

Spire.Doc 是一款专门对 Word 文档进行操作的 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。 

E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式

对于将图像转换为PDF的功能,Spire.PDF可以快速有效地处理。这个.NET PDF库不仅可以将常用格式的图像转换为PDF文档,例如jpg、bmp、png,还可以将gif、tif和ico图像转换为PDF。只需在这里下载即可。

要使用 Spire.PDF 将多页图像转换为 PDF 文件,只需将以下代码复制到您的应用程序并调用 ConvertImagetoPDF 方法即可完成。

步骤1:分割多页图像的方法

Spire.Pdf 有一个名为 DrawImage 的方法来将图像转换为 PDF。但它不能直接处理多页图像。因此在转换之前,需要将多页图像分割成多个一页图像。

[C#]

Guid guid = image.FrameDimensionsList[0];
FrameDimension dimension = new FrameDimension(guid);
int pageCount = image.GetFrameCount(dimension);

这一步是获取多页图像的总帧数(页数)。

[C#]

image.SelectActiveFrame(dimension, i);

这一步是选择该图像对象内的一帧帧。

[C#]

image.Save(buffer, format);

将选定的帧保存到缓冲区。

第 2 步:将图像转换为 PDF

分割多页图像后,Spire.Pdf 可以使用方法 DrawImage 将这些分割图像直接绘制为 PDF。

[C#]

PdfImage pdfImg = PdfImage.FromImage(img[i])

加载图像文件为 PdfImage。

[C#]

page.Canvas.DrawImage(pdfImg, x, 0, width, height);

将 PdfImage 绘制为 PDF。唯一要做的就是指定 PDF 上图像的位置。宽度和高度是绘制图像的区域的大小。有时我们需要放大或缩小图像的原始尺寸,直到它适合PDF页面。x 和 0 定位坐标。

检查原始 TIF 文件的有效屏幕截图。

多图像

目标PDF文件:

多图像转pdf

完整演示

[C#]

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace ConvertMultipageImagetoPDF
{
class Program
{
static void Main(string[] args)
{
{
ConvertImagetoPDF(@"..\..\Chapter1.tif");
}
}

public static void ConvertImagetoPDF(String ImageFilename)
{
using (PdfDocument pdfDoc = new PdfDocument())
{
Image image = Image.FromFile(ImageFilename);

Image[] img = SplitImages(image, ImageFormat.Png);

for (int i = 0; i < img.Length; i++)
{
PdfImage pdfImg = PdfImage.FromImage(img[i]);
PdfPageBase page = pdfDoc.Pages.Add();
float width = pdfImg.Width * 0.3f;
float height = pdfImg.Height * 0.3f;
float x = (page.Canvas.ClientSize.Width - width) / 2;

page.Canvas.DrawImage(pdfImg, x, 0, width, height);
}

string PdfFilename = "result.pdf";
pdfDoc.SaveToFile(PdfFilename);
System.Diagnostics.Process.Start(PdfFilename);
}
}

public static Image[] SplitImages(Image image, ImageFormat format)
{
Guid guid = image.FrameDimensionsList[0];
FrameDimension dimension = new FrameDimension(guid);
int pageCount = image.GetFrameCount(dimension);

Image[] frames = new Image[pageCount];

for (int i = 0; i < pageCount; i++)
{
using (MemoryStream buffer = new MemoryStream())
{
image.SelectActiveFrame(dimension, i);
image.Save(buffer, format);
frames[i] = Image.FromStream(buffer);
}
}
return frames;
}
}
}

以上便是如何在 C# 中将多页图像转换为 PDF,如果您有其他问题也可以继续浏览本系列文章,获取相关教程~

猜你喜欢

转载自blog.csdn.net/m0_67129275/article/details/131780548