C#实现word和pdf格式互转

 更新时间:2024年10月30日 09:40:51   作者:昔舍  
这篇文章主要为大家详细介绍了如何通过C#实现word和pdf格式互转功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

1、word转pdf

使用nuget:

 Microsoft.Office.Interop.Word

winform页面:

后端代码:

//using Spire.Doc;
//using Spire.Pdf;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using Aspose.Words;
using Microsoft.Office.Interop.Word;
using System.Windows.Forms;
using Application = Microsoft.Office.Interop.Word.Application;
 
namespace file_operations
{
    public partial class word转PDF : Form
    {
        public word转PDF()
        {
            InitializeComponent();
            //窗体居中
            this.StartPosition = FormStartPosition.CenterScreen;
            //无边框
            this.FormBorderStyle = FormBorderStyle.None;
            //放大无效
            this.MaximizeBox = false;
            //版权
            label4.Text = "该应用由昔舍版权所有,如修改源码请联系15574296763@163.com,侵权后果自负!!!";
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            if(openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string file = openFileDialog.FileName.ToLower();
                //获取文件扩展名
                string extension = System.IO.Path.GetExtension(file);
                if(extension != ".doc" && extension != ".docx")
                {
                    MessageBox.Show("请选择word文件", "错误提示");
                }
                else {
                    textBox1.Text = file;
 
                }
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
           FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
            if(folderBrowserDialog.ShowDialog() == DialogResult.OK)
            {
                textBox2.Text = folderBrowserDialog.SelectedPath+"\\";
            }
        }
 
        //保存为PDF
        private void button3_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length == 0 && textBox2.Text.Length == 0 && textBox3.Text.Length ==0)
            {
                MessageBox.Show("请选择要转换的原文件和要保存的路径", "错误提示");
            }
            else
            {
                try
                {
                    //创建一个word实例
                    Application wordapp = new Application();
                //创建一个word文档对象,并打开word文件
                Document wordDoc = wordapp.Documents.Open(textBox1.Text);
                    //获取文件扩展名
                    string extension = System.IO.Path.GetExtension(textBox2.Text);
                    //设置保存路径,保存文件名称和文件格式
                    if (extension !=".pdf")
                    {
                        try
                        {
                            string savePath = textBox2.Text + textBox3.Text + ".pdf";
                            wordDoc.SaveAs2(savePath, WdSaveFormat.wdFormatPDF);
                        }
                        catch
                        {
                            MessageBox.Show("请检查选择的文件是否有效,保存的路径是否存在", "错误提示");
                        }
                    }
                    else
                    {
                        try
                        {
                            string savePath = textBox2.Text + textBox3.Text;
                            wordDoc.SaveAs2(savePath, WdSaveFormat.wdFormatPDF);
                        }
                        catch
                        {
                            MessageBox.Show("请检查选择的文件是否有效,保存的路径是否存在", "错误提示");
                        }
 
                    }
                    //保存以后打开文件路径
                    string openfilePath = textBox2.Text;
                    System.Diagnostics.Process.Start(openfilePath);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("请检查选择的文件是否有效,保存的路径是否存在", "错误提示");
                }
 
            }
        }
 
            private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            PDF转word pDF = new PDF转word();
            //隐藏本窗体
            this.Hide();
            //打开PDF转word
            pDF.Show();
        }
 
        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            this.Close();
            PDF转word pDF = new PDF转word();
            pDF.Close();
        }
    }
}

2、pdf转word功能实现:

使用nuget:

破解的Spire.pdf

下载地址:crack-spire/手动破解Spire.PDF,已破解下载链接在底部.md at main · zhjunbai/crack-spire · GitHub

winform页面:

后端代码:

using Spire.Pdf;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Word;
using Application = Microsoft.Office.Interop.Word.Application;
using System.Threading;
 
namespace file_operations
{
    public partial class PDF转word : Form
    {
        public PDF转word()
        {
            InitializeComponent();
            //窗体居中
            this.StartPosition = FormStartPosition.CenterScreen;
            //无边框
            this.FormBorderStyle = FormBorderStyle.None;
            //放大无效
            this.MaximizeBox = false;
            //版权
            label4.Text = "该应用由昔舍版权所有,如修改源码请联系15574296763@163.com,侵权后果自负!!!";
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //获取PDF文件
            OpenFileDialog openFileDialog = new OpenFileDialog();
            if(openFileDialog.ShowDialog() == DialogResult.OK)
            {
                //获取文件名
                string files = openFileDialog.FileName.ToLower();
                //获取文件扩展名
                string extension = System.IO.Path.GetExtension(files);
                if(extension != ".pdf")
                {
                    MessageBox.Show("请选择PDF文件", "错误提示");
                }
                else
                {
                    pdftext.Text = files;
                }
 
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog openFileDialog = new FolderBrowserDialog();
            if(openFileDialog.ShowDialog() == DialogResult.OK) {
                wordPath.Text = openFileDialog.SelectedPath + "\\";
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
 
           //初始化pdfDocument实例
           PdfDocument doc = new PdfDocument();
            try
            {
                //加载PDF文档
                doc.LoadFromFile(pdftext.Text);
                //保存为DOC格式文档
                string savePath = wordPath.Text + wordname.Text + ".DOC";
                doc.SaveToFile(savePath, FileFormat.DOC);
                Thread.Sleep(3000);
                //保存以后打开文件路径
                string openfilePath = wordPath.Text;
                System.Diagnostics.Process.Start(openfilePath);
            }
            catch
            {
                MessageBox.Show("请确定文件选择正确", "错误提示");
            }
        }
 
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            this.Close();
            word转PDF word = new word转PDF();
            word.Close();
        }
 
        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            word转PDF word = new word转PDF();
            //隐藏本窗体
            this.Hide();
            word.Show();
        }
    }
}

到此这篇关于C#实现word和pdf格式互转的文章就介绍到这了,更多相关C# word和pdf互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法

    Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法

    这篇文章主要介绍了Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法,本文在VS2008中测试通过,其它VS版本可以参考下
    2014-09-09
  • c#生成随机数示例分享

    c#生成随机数示例分享

    这篇文章主要介绍了c#生成随机数示例分享,需要的朋友可以参考下
    2014-03-03
  • 事务在c#中的使用

    事务在c#中的使用

    这篇文章介绍了事务在c#中的使用,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • LINQ排序操作符用法

    LINQ排序操作符用法

    这篇文章介绍了LINQ排序操作符的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • winform异型不规则界面设计的实现方法

    winform异型不规则界面设计的实现方法

    这篇文章主要介绍了winform异型不规则界面设计的实现方法,具有不错的实用价值,需要的朋友可以参考下
    2014-08-08
  • C#实现远程关闭和重启计算机的示例代码

    C#实现远程关闭和重启计算机的示例代码

    这篇文章主要为大家详细介绍了如何利用C#实现远程关闭和重启计算机的功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • Devexpress treelist 简介

    Devexpress treelist 简介

    本文给大家简单介绍了Devexpress treelist 知识,包括属性列表,事件及使用方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12
  • C#基础知识之GetType与typeof的区别小结

    C#基础知识之GetType与typeof的区别小结

    在比较对象时,需要了解他们的类型,才能决定他们的值是否能比较。所有的类都从System.Object中继承了GetType()方法,常常与typeo()运算符一起使用。这篇文章主要给大家介绍了关于C#基础知识之GetType与typeof区别的相关资料,需要的朋友可以参考下
    2021-06-06
  • c#设计模式 适配器模式详细介绍

    c#设计模式 适配器模式详细介绍

    结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式
    2012-10-10
  • 解析C#中断言与异常的应用方式及异常处理的流程控制

    解析C#中断言与异常的应用方式及异常处理的流程控制

    这篇文章主要介绍了C#中断言与异常的应用方式及异常处理的流程控制,一般来说断言用于修正程序员自己的错误而异常用于应对程序运行过程中可能出现的错误,需要的朋友可以参考下
    2016-01-01

最新评论