头图

前言

PDF的实际应用虽然广泛,但考虑到接收设备不一定有支持的阅读器, 将PDF导出为图片格式可能会更方便发送和查阅。另外,图片格式也更易于我们进行二次编辑。下面我所要介绍的这个将PDF转换为图像的方法可以确保转换后的图片与原始PDF文件的外观一致,包括内容的位置和样式等。只需要简单几行代码就可以将PDF快速导出成你想要的图片格式。

准备工作

这个方法将用到的是Free Spire.PDF for .NET组件,支持在多种.NET应用程序中处理PDF。
具体安装方法如下(Visual Studio 2022为例):

方法一

通过NuGet安装Free Spire.PDF for .NET。
1.打开 Visual Studio创建新项目。
2.依次选择工具>NuGet包管理器>程序包管理器控制台。
3.执行命令:PM> Install-Package FreeSpire.PDF

方法二

在程序中手动导入Spire.pdf.dll文件。
1.将Free Spire.PDF for .NET 下载到本地,解压并安装。
2.打开 Visual Studio创建一个新项目。
3.在“解决方案资源管理器”中右键点击“引用”,再依次选择“添加引用”> “浏览”。
4.找到安装路径下BIN文件夹中的dll文件,点击“OK”。

这里个人更推荐第二种方法,更方便查找各种demo。

还有一点需要注意的是,这个免费的组件在转换时有一定页数的限制。如果你的文档比较大,也可以直接下载商业版,申请一个临时许可证来试用一段时间。
下载链接:Spire.PDF for .NET

PDF文档转图片

代码逻辑

整个代码的逻辑很简单,首先导入所需要的外部库和命名空间。然后创建一个文档实例并加载需要转换的PDF文档。然后循环遍历文档的每一页,调用PdfDocument下的SaveAsImage()方法将每一页都转换为图片。图片格式根据自身需要指定即可。

示例代码

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System;
using System.Drawing;
using System.Drawing.Imaging;

namespace PDFtoImage
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个PdfDocument实例
            PdfDocument pdf = new PdfDocument();

            //加载需要转换的PDF文档
            pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pdf");

            //循环遍历每个页面
            for (int i = 0; i < pdf.Pages.Count; i++)
            {
                //将所有页面转换为图像并设置图像Dpi
                Image image = pdf.SaveAsImage(i, PdfImageType.Bitmap, 500, 500);

                //设置图像格式
                String file = String.Format("C:\\Users\\Administrator\\Desktop\\Images\\Image-{0}.png", i);
                image.Save(file, ImageFormat.Png);
              
            }
        }
    }
}

效果图

image

PDF的某一页转图片

代码逻辑

与上述代码类似,只是转换某一页时,不再需要遍历整个文档,只需要通过索引获取页面就可以。唯一需要注意的是,这里的索引是从0开始计算的。最后指定图片格式即可。

示例代码

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.Drawing.Imaging;

namespace PDFtoImage
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个PdfDocument实例
            PdfDocument pdf = new PdfDocument();

            //加载需要转换的PDF文档
            pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pdf");

            //将第一页转换为图像并设置图像Dpi
            Image image = pdf.SaveAsImage(0, PdfImageType.Bitmap, 500, 500);

            //设置图像格式
            image.Save("C:\\Users\\Administrator\\Desktop\\Images\\Image.png ", ImageFormat.Png);
        }
    }
}

效果图

image

其他

以上代码演示的是将PDF转换为PNG格式,如果想要转换为其他图片格式的话,如JPG,BMP或者EMF等,只需在更改代码最后的格式即可。例如:

image.Save("Image.jpg", ImageFormat.Jpeg);

PPPika
1 声望0 粉丝