彩票走势图

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

翻译|行业资讯|编辑:胡涛|2023-07-14 10:47:32.667|阅读 65 次

概述:本文介绍如何在 C# 中将多页图像转换为 PDF,欢迎查阅~

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

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

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

Spire.PDF for.net下载   Spire.PDF for java下载

对于将图像转换为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,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。


欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询  ;技术交流Q群(767755948)


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP