C# pdf转成图片(可转成jpg、png等格式)

源码下载处

一.工具界面(支持4.0平台,建议大家用4.0,不会报错)

在这里插入图片描述

二.需要的dll文件(NuGet直接下载)【如果没找到这两个文件,我放在我的资源大家免费下,如果不是免费的大家给我说我改成不要积分就可下载的】

ImageResizer.Plugins.PdfiumRenderer.Pdfium.Dll
PdfiumViewer.Dll

在这里插入图片描述

三.代码

using PdfiumViewer;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PDFtoJPG
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// PDF的textbox后面对应的按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void butPDF_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                //FileName:显示文件路径+名字
                this.txtPDF.Text = dialog.FileName;

        }
    }

    /// <summary>
    /// 图片的textbox后面对应的按钮
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void butTUPIAN_Click(object sender, EventArgs e)
    {
        #region 测试SafeFileName,不用关
        //OpenFileDialog dialog = new OpenFileDialog();
        //if (dialog.ShowDialog() == DialogResult.OK)
        //{
        //    //SafeFileName:只显示文件名字
        //    this.txtJPG.SelectedText = dialog.SafeFileName;

        //}
        #endregion

        System.Windows.Forms.FolderBrowserDialog folder = new System.Windows.Forms.FolderBrowserDialog();
        if (folder.ShowDialog() == DialogResult.OK)
        {

            //SelectedPath:获取文件夹绝对路径,显示在textbox里面
            this.txtJPG.Text = folder.SelectedPath;

        }
    }

    /// <summary>
    /// PDF转图片格式的button按钮
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void butPDFtoTUPIAN_Click(object sender, EventArgs e)
    {
        string strpdfPath = txtPDF.Text.ToString();
        var pdf = PdfiumViewer.PdfDocument.Load(strpdfPath);
        var pdfpage = pdf.PageCount;
        var pagesizes = pdf.PageSizes;

        for (int i = 1; i <= pdfpage; i++)
        {
            Size size = new Size();
            size.Height = (int)pagesizes[(i - 1)].Height;
            size.Width = (int)pagesizes[(i - 1)].Width;
            //可以把".jpg"写成其他形式
            RenderPage(strpdfPath, i, size, txtJPG.Text.ToString() + "\\"+ txtName.Text.ToString() + @".jpg");
        }

        MessageBox.Show("转换成功!");
    }
    public void RenderPage(string pdfPath, int pageNumber, System.Drawing.Size size, string outputPath, int dpi = 300)
    {
        using (var document = PdfiumViewer.PdfDocument.Load(pdfPath))
        using (var stream = new FileStream(outputPath, FileMode.Create))
        using (var image = GetPageImage(pageNumber, size, document, dpi))
        {
            image.Save(stream, ImageFormat.Jpeg);
        }
    }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="pageNumber">pdf文件张数</param>
    /// <param name="size">pdf文件尺寸</param>
    /// <param name="document">pdf文件位置</param>
    /// <param name="dpi"></param>
    /// <returns></returns>
    private static System.Drawing.Image GetPageImage(int pageNumber, Size size, PdfiumViewer.PdfDocument document, int dpi)
    {
        return document.Render(pageNumber - 1, size.Width, size.Height, dpi, dpi, PdfRenderFlags.Annotations);
    }
  }
}
相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页

打赏作者

女盆友——ZY

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值