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

 更新时间:2024年12月28日 08:32:37   作者:Eiceblue  
将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下

介绍

将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片。此外,PDF文件还具有强大的安全特性,将图片转换为PDF后,我们可以通过设置密码来文件内容不被泄露。本文将介绍如何将JPG/PNG图片转换为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页面上实现的,主要步骤如下:

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

创建一个 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);

            //获取存储图片的文件夹
            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#/VB.NET 给Excel添加、删除数字签名的方法

    C#/VB.NET 给Excel添加、删除数字签名的方法

    这篇文章主要介绍了C#/VB.NET 给Excel添加、删除数字签名的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • C#实现简单的计算器功能完整实例

    C#实现简单的计算器功能完整实例

    这篇文章主要介绍了C#实现简单的计算器功能,结合完整实例形式分析了C#实现常见的数学运算、进制转换等相关操作技巧与界面布局方法,需要的朋友可以参考下
    2017-08-08
  • c#自定义Attribute获取接口实现示例代码

    c#自定义Attribute获取接口实现示例代码

    这篇文章主要给大家介绍了关于c#自定义Attribute获取接口实现的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 详解C# winform ListView的基本操作

    详解C# winform ListView的基本操作

    本文主要介绍了C# winform ListView的基本操作,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C#身份证验证小例子

    C#身份证验证小例子

    C#身份证验证小例子,需要的朋友可以参考一下
    2013-04-04
  • 深入解析C#编程中泛型委托的使用

    深入解析C#编程中泛型委托的使用

    这篇文章主要介绍了C#编程中泛型委托的使用,引用泛型委托的代码可以指定类型参数以创建已关闭的构造类型,需要的朋友可以参考下
    2016-02-02
  • C#中backgroundworker的使用教程

    C#中backgroundworker的使用教程

    这篇文章主要介绍了C#中backgroundworker的使用教程,在文中有两点需要注意的,大家可以看下
    2018-04-04
  • C#实现一个Word保护性模板文件

    C#实现一个Word保护性模板文件

    这篇文章主要为大家详细介绍了C#如何实现一个Word保护性模板文件,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考一下
    2024-01-01
  • C#使用动态规划解决0-1背包问题实例分析

    C#使用动态规划解决0-1背包问题实例分析

    这篇文章主要介绍了C#使用动态规划解决0-1背包问题,实例分析了C#动态规划算法的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C#实现销售管理系统

    C#实现销售管理系统

    这篇文章主要为大家详细介绍了C#实现销售管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06

最新评论