将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片。此外,PDF文件还具有强大的安全特性,将图片转换为PDF后,我们可以通过设置密码来文件内容不被泄露。本文将介绍如何将JPG/PNG图片转换为PDF文档。

  • C# 将单张图片转换为PDF文档
  • C# 将多张图片转换到一个PDF文档

此教程可以使用第三方免费库 Free Spire.PDF for .NET,但需要注意该免费库有一定的页数限制。开始前,我们可以通过以下链接下载产品包后手动添加引用,或者直接通过 NuGet 安装。

https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-NET.html

C# 将单张图片转换为PDF文档

Free Spire.PDF for .NET提供的图片转PDF的方法是将加载的图片绘制到PDF页面上实现的,主要步骤如下:

  1. 创建一个 PDF文档,然后将其页边距设置为0。
  2. 使用 Image.FromFile() 方法加载图片,然后获取图片的宽度和高度。
  3. 通过 PdfDocument.Pages.Add() 方法添加一个与图片大小相同的PDF页面。
  4. 根据图片创建 PdfImage 对象。
  5. 使用 PdfPageBase.Canvas.DrawImage() 方法在PDF页面上绘制 PdfImage 对象。
  6. 使用 PdfDocument.SaveToFile() 方法保存生成的 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");
}
}
}

C# 将多张图片转换到一个PDF文档

Free Spire.PDF for .NET也可以将一个文件夹中的多张图片绘制到一个PDF文档的不同页面上,主要步骤如下:

  1. 创建一个 PDF文档,然后将其页边距设置为0。
  2. 获取存储图片的文件夹。
  3. 遍历文件夹中的每个图像文件,并获取每一张图片的宽度和高度。
  4. 通过 PdfDocument.Pages.Add() 方法在PDF文档中添加与图片大小相同的PDF页面。
  5. 使用 PdfPageBase.Canvas.DrawImage() 方法在页面上绘制各个图片。
  6. 使用 PdfDocument.SaveToFile() 方法保存生成的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();
}
}
}


– 如需在.NET 程序实现其他PDF文档的操作,如创建、读取、添加图片、表格等,可以从以下链接中查看相关教程:

https://www.e-iceblue.cn/spirepdfnet/spire-pdf-for-net-program-guide-content.html

通过C#转换图片到PDF文档的更多相关文章

  1. 批量将网页转换成图片或PDF文档技巧分享

    工作中我们有时要将一些批量的网页转换成图片或者PDF文档格式,尽管多数浏览器具有滚动截屏或者打印输出PDF文档功能.可是假设有几十上百张网页须要处理,那也是要人命的.所以我一直想找一款可以批量处理该工 ...

  2. C# 添加文本、图片到PDF文档(基于Spire.Cloud.PDF.SDK)

    Spire.Cloud.PDF.SDK提供了接口PdfTextApi及PdfImagesApi用于添加文本和图片到PDF文档,添加文本时,可格式化文本样式,包括文本字体类型.字号.字体样式.文本颜色. ...

  3. iTextSharp带中文转换出来的PDF文档显示乱码

    刚才有写一个小练习<Html代码保存为Pdf文件>http://www.cnblogs.com/insus/p/4323224.html.马上有网友说,当截取块有中文时,保存的pdf文件将 ...

  4. 如何通过Java应用程序压缩PDF文档

    PDF文档是我们日常办公中使用最频繁的文档格式.但因为大多数PDF文档都包含很多页面图像或大量图片,这就导致PDF文档过大,处理起来较为麻烦.PDF文件过大,就会导致传输或者下载的速度变慢,也会增加传 ...

  5. [开源框架推荐]Icepdf:纯java的pdf文档的提取和转换库

    ICEpdf 是一个轻量级的开源 Java 语言的 PDF 类库.通过 ICEpdf 可以用来浏览.内容提取和转换 PDF 文档,而无须一些本地PDF库的支持. 可以用来做什么? 1.从pdf文件中提 ...

  6. PDF2SWF转换只有一页的PDF文档,在FlexPaper不显示解决方法

    问题:PDF2SWF转换只有一页的PDF文档,在FlexPaper不显示! FlexPaper 与 PDF2SWF 结合是解决在线阅读PDF格式文件的问题的,多页的PDF文件转换可以正常显示,只有一页 ...

  7. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

  8. Java使用wkhtmltox实现HTML代码生成PDF文档或者图片

    由于项目需要,把HTML代码转为PDF或者图片进行保存.最开始使用Flying Saucer来把HTML代码生成为PDF文档,功能已经开发出来了,也能够完成转换功能,期间也遇到了中文支持以及图片路径的 ...

  9. 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

    iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  10. Java生成PDF文档(表格、列表、添加图片等)

    需要的两个包及下载地址: (1)iText.jar:http://download.csdn.net/source/296416 (2)iTextAsian.jar(用来进行中文的转换):http:/ ...

随机推荐

  1. [转]为什么VS提示SurfFeatureDetector不是cv的成员函数

    surf和sift算法都是在头文件#include <opencv2/features2d/features2d.hpp>中,但在新的opencv版本出来后,如果仍然使用这个头文件就会出现 ...

  2. Vue整合Cesium的博文

    参考链接: 1.Vue 集成 Cesium 2.vue/cli3引入cesium 3.Vue2+Cesium.js展示地图 4.vue-cli3 引入 cesium 5.Vue Cli 4 引入 Ce ...

  3. 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'

    Navicat导出的MySQL8.0脚本在低版本MySQL导入执行报错 utf8mb4_0900_ai_ci 替换 utf8_general_ci utf8mb4 替换 utf8 完成以上两点替换再次 ...

  4. 深入LinkedBlockingQueue实现原理

    学习BlockingQueue之LinkedBlockingQueue实现原理   一:概念 LinkedBlockingQueue是一个用链表实现的有界阻塞队列.此队列的默认和最大长度为 Integ ...

  5. weixueyuan-Nginx微服务11

    https://www.weixueyuan.net/nginx/microservices/ 微服务是什么 计算机自诞生以来,极大地影响了人类的生产和社会活动,软件生产以一种生产活动的方式进入了人们 ...

  6. MySQL---事务、死锁、mvcc原理

    前言 在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别. MySQL 是支持多事务并发执行的.否则来一个事务处理一个请求,处理一个人请 ...

  7. 数字先锋 | 车企,出海!天翼云AOne擦亮车企“智慧服务”新名片!

    近年来,中国汽车市场迎来巨变,消费者的消费习惯不断变迁,价格战愈演愈烈......如何紧跟数字化转型步伐,实现稳健经营,成为车企所面临的时代命题. 作为一家科技型制造企业,某车企主营业务涉及汽车及核心 ...

  8. Q:在PostgreSQL中跟踪和分析查询日志

    在PostgreSQL中,跟踪和分析查询日志是排查性能瓶颈的重要步骤. 通过查看和分析查询日志,我们可以了解哪些查询在执行时遇到了问题,例如执行时间过长.资源消耗过大等. 以下是一些建议和步骤,帮助你 ...

  9. mac安装nodejs、npm包设置

    一.安装nodejs 1.下载自己系统的nodejs,我选择18.20版本 https://nodejs.cn/download/ 二.设置 1.设置镜像源: npm config set regis ...

  10. MAC消息认证码介绍

    此MAC是密码学概念,与计算机网络不同 为什么有了摘要算法还要有MAC 摘要算法保障的是消息的完整性 归根到底就是由H(x)来保证x的完整 那么问题来了,如果我知道你所使用的摘要算法(例如中间人攻击) ...