基于C#实现将图片转换为PDF文档

2024-12-28 22:50

本文主要是介绍基于C#实现将图片转换为PDF文档,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下...

介绍

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

此教程可以使用第js三方免费库 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页面上实现的,主要步骤如下:

  • 创建一个 PDF文档,然后将其页边距设置为0。
  • 使用 Image.FromFile() 方法加载图片,然后python获取图片的宽度和高度。
  • 通过 PdfDocument.Pages.Addjs() 方法添加一个与图片大小相同的PDF页面。
  • 根据图片创建 PdfImage 对象。
  • 使用 PdfPageBase.Canvas.DrawImage() 方法在PDF页面上绘制PdfImage对象。
  • 使js用 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文档

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

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

创建一个 PDF文档,然后将其页边距设置为0。

获取存储图片的文件夹。

遍历文件夹中的每个图像文件,并获取每一张图片的宽度和高度。

通过 PdfDocument.Pages.Add() 方法在PDF文档中添加与图片大小相同的PDF页面。

使用 PdfPageBase.Canvas.DrawImage() 方法在页面上绘制各个图片。

使用 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);

            //获取存储图片的文件夹
         China编程   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();
        }
    }
}

基于C#实现将图片转换为PDF文档

到此这篇关于基于C#实现将图片转换为PDF文档的文章就介绍到这了,更多相关C#图片转PDF内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于基于C#实现将图片转换为PDF文档的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1152816

相关文章

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被