12人参与 • 2025-10-21 • Asp.net
在日常开发中,经常需要将多张图片(如 jpg、png、bmp 等)合并为一个 pdf 文档,方便存储和分享。本文将介绍如何使用 c# 结合 spire.pdf for .net 库实现这一功能,该库提供了简洁的 api,无需依赖 adobe acrobat 即可快速操作 pdf。
spire.pdf for .net是一个专业的pdf处理类库,支持创建、编辑、转换pdf文档,同时提供了丰富的图片处理能力,可轻松将图片插入pdf页面。
安装步骤如下:
推荐通过 nuget 包管理器安装:
using spire.pdf; 和 using spire.pdf.graphics;将指定文件夹中的所有图片(支持jpg、png、bmp等格式)按顺序合并为一个pdf,每张图片占一页,且页面大小自适应图片尺寸。
using spire.pdf;
using spire.pdf.graphics;
using system.drawing;
namespace convertmultipleimagesintopdf
{
class program
{
static void main(string[] args)
{
// 创建pdfdocument对象
pdfdocument pdf = new pdfdocument();
// 将页边距设置为0
pdf.pagesettings.setmargins(0);
// 获取图片存放的文件夹
directoryinfo folder = new directoryinfo(@"c:\users\administrator\desktop\images");
// 遍历图片
foreach (fileinfo file in folder.getfiles())
{
image image = image.fromfile(file.fullname);
// 获取图片尺寸
float width = image.physicaldimension.width;
float height = image.physicaldimension.height;
// 添加与图片大小相同的pdf页面
pdfpagebase page = pdf.pages.add(new sizef(width, height));
// 将图片绘制到页面
pdfimage pdfimage = pdfimage.fromimage(image);
page.canvas.drawimage(pdfimage, 0, 0, pdfimage.width, pdfimage.height);
}
// 保存pdf文档
pdf.savetofile("combinaimagestopdf.pdf");
pdf.dispose();
}
}
}
代码解析
page.canvas.drawimage() 从页面左上角 (0,0) 开始绘制图片,尺寸与图片原始尺寸一致,最终效果是图片完全覆盖页面。dispose() 手动释放 pdfdocument 对象占用的资源。如果需要所有页面使用固定尺寸(如a4),可修改页面创建逻辑:
// 创建a4尺寸页面(210mm×297mm) pdfpagebase page = pdf.pages.add(pdfpagesize.a4);
若图片尺寸超过页面,可自动缩放:
// 计算缩放比例(确保图片完全显示在页面内) float scalex = page.canvas.clientsize.width / pdfimage.width; float scaley = page.canvas.clientsize.height / pdfimage.height; float scale = math.min(scalex, scaley); // 按比例缩放绘制 page.canvas.drawimage(pdfimage, x, y, pdfimage.width * scale, pdfimage.height * scale);
free spire.pdf for .net提供的图片转pdf的方法是将加载的图片绘制到pdf页面上实现的,主要步骤如下:
示例代码:
ing system.drawing;
using spire.pdf;
using spire.pdf.graphics;
namespace convertimagetopdfwithsamesize
{
class program
{
static void main(string[] args)
{
//创建pdfdocument对象
pdfdocument pdf = new pdfdocument();
//将页边距设为0
pdf.pagesettings.setmargins(0);
//加载图片
image image = image.fromfile(@"c:\users\administrator\desktop\work.jpg");
//获取图片尺寸
float width = image.physicaldimension.width;
float height = image.physicaldimension.height;
//创建pdfimage对象
pdfimage pdfimage = pdfimage.fromfile(@"c:\users\administrator\desktop\work.jpg");
//添加一个与图片大小相同的pdf页面
pdfpagebase page = pdf.pages.add(new sizef(width, height));
//在页面上绘制图片
page.canvas.drawimage(pdfimage, 0, 0, pdfimage.width, pdfimage.height);
//保存pdf
pdf.savetofile("图片转pdf.pdf");
}
}
}
free spire.pdf for .net也可以将一个文件夹中的多张图片绘制到一个pdf文档的不同页面上,主要步骤如下:
示例代码:
using spire.pdf;
using spire.pdf.graphics;
using system.drawing;
using system.io;
namespace convertmultipleimagesintopdf
{
class program
{
static void main(string[] args)
{
//创建pdfdocument对象
pdfdocument pdf = new pdfdocument();
//将页边距设为0
pdf.pagesettings.setmargins(0);
//获取存储图片的文件夹
directoryinfo folder = new directoryinfo(@"c:\users\administrator\desktop\图片");
//遍历文件夹中的图片
foreach (fileinfo file in folder.getfiles())
{
//加载图片
image image = image.fromfile(file.fullname);
//获取图片尺寸
float width = image.physicaldimension.width;
float height = image.physicaldimension.height;
//添加与图片大小相同的pdf页面
pdfpagebase page = pdf.pages.add(new sizef(width, height));
//创建pdfimage对象
pdfimage pdfimage = pdfimage.fromfile(file.fullname);
//在页面上绘制图片
page.canvas.drawimage(pdfimage, 0, 0, pdfimage.width, pdfimage.height);
}
//保存pdf
pdf.savetofile("多图转pdf.pdf");
pdf.dispose();
}
}
}
结语:通过 spire.pdf for .net 库,使用简单代码即可实现图片转 pdf 的功能,相比传统方案(system.drawing + gdi+)更简洁易用。该方法适用于批量处理图片、生成电子相册、归档扫描件等场景,可根据实际需求扩展更多功能(如添加页码、水印等)。
到此这篇关于c#实现将多张图片转换到一个pdf文档的文章就介绍到这了,更多相关c#多张图片转pdf内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论