Office文档转pdf格式(三)

这篇具有很好参考价值的文章主要介绍了Office文档转pdf格式(三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  上面两篇介绍的Office文档转pdf格式的方式都只能在Windows系统下使用,存在一定的局限性,本文介绍一个在Windows和Linux下都可以使用的,而且是开源且免费的软件:LibreOffice,下载地址为:https://www.libreoffice.org/download/download-libreoffice/,使用这个软件,可以通过命令或者代码的方式来实现将Office文档转为pdf格式。具体方法如下:

1. 前提条件

    安装LibreOffice软件,选择Windows(64位),点击下载,然后进行安装。

Office文档转pdf格式(三)

2. 通过命令方式转换

    打开cmd命令行窗口,切换到目录C:\Program Files\LibreOffice\program\下面(或者可将其添加到环境变量中),输入命令:

    soffice.exe --convert-to pdf --nologo 源文件全路径 --outdir 目标目录

   Office文档转pdf格式(三)

3. 通过代码方式转换

    实际上就是用代码的方式来运行LibreOffice,并执行转换命令(需要将C:\Program Files\LibreOffice整个目录拷到转换项目的运行目录下),示例代码如下:

Office文档转pdf格式(三)Office文档转pdf格式(三)
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "文档|*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                txtFilePath.Text = dialog.FileName;
            }
        }

        private void btnConvert_Click(object sender, EventArgs e)
        {
            string sourceFileFullName = txtFilePath.Text.Trim();
            if (string.IsNullOrEmpty(sourceFileFullName))
            {
                MessageBox.Show("请先选择要转换的文件!");
                return;
            }
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            dialog.Description = "选择一个目录";
            dialog.SelectedPath = Path.GetDirectoryName(sourceFileFullName);
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string targetFilePath = dialog.SelectedPath;
                try
                {
                    string libreOfficePath = GetLibreOfficePath();
                    ProcessStartInfo procStartInfo = new ProcessStartInfo(libreOfficePath, string.Format("--convert-to pdf --nologo {0} --outdir {1}", sourceFileFullName, targetFilePath));
                    procStartInfo.RedirectStandardOutput = true;
                    procStartInfo.UseShellExecute = false;
                    procStartInfo.CreateNoWindow = true;
                    procStartInfo.WorkingDirectory = Environment.CurrentDirectory;

                    //开启线程
                    Process process = new Process() { StartInfo = procStartInfo, };
                    process.Start();
                    process.WaitForExit();

                    if (process.ExitCode != 0)
                    {
                        throw new LibreOfficeFailedException(process.ExitCode);
                    }
                    MessageBox.Show("转换成功!");
                }
                catch(Exception ex)
                {
                    MessageBox.Show("转换失败!");
                }
            }            
        }

        private string GetLibreOfficePath()
        {
            switch (Environment.OSVersion.Platform)
            {
                case PlatformID.Unix:
                    return "/usr/bin/soffice";
                case PlatformID.Win32NT:
                    string binaryDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                    return binaryDirectory + "\\LibreOffice\\program\\soffice.exe";
                default:
                    throw new PlatformNotSupportedException("你的系统暂不支持!");
            }
        }
    }

    public class LibreOfficeFailedException : Exception
    {
        public LibreOfficeFailedException(int exitCode)
            : base(string.Format("LibreOffice错误 {0}", exitCode))
        { }
    }
View Code

 文章来源地址https://www.toymoban.com/news/detail-746178.html

到了这里,关于Office文档转pdf格式(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何通过Java代码将 PDF文档转为 HTML格式

    虽然PDF文件适合用于打印和发布,但不适合所有类型的文档。例如,包含复杂图表和图形的文档可能无法在PDF中呈现得很好。但是HTML文件可以在任何可运行浏览器的计算机上进行阅读并显示。并且HTML还具有占用服务器资源较小,便于搜索引擎收录的特点。那么今天这篇文章就

    2024年02月05日
    浏览(50)
  • 如何在电脑上免费更改 PDF 格式文档的字体大小?

    对于需要编辑或修改的 PDF 文件来说,更改其字体大小是一个非常常见且必要的工作。虽然 Adobe Acrobat Pro DC 等专业的 PDF 编辑软件可以帮助您完成此任务,但他们通常都需要昂贵的恢复。幸运的是,有许多免费的 PDF 编辑工具可供选择。在本文中,我们将介绍如何在电脑上免费

    2024年01月18日
    浏览(59)
  • 三种方法将Word文档转换为PDF文件格式

    如何将Word文档转换为PDF文件格式呢?大家在传输文件时,很多人喜欢使用PDF文件格式,因为它非常稳定,不会出现格式混乱的问题。但有些人可能不知道如何进行转换,今天我将介绍三种转换方法,让我们一起来学习一下吧。 方法一:记灵在线工具转换 ① 首先,进入记灵在

    2024年02月09日
    浏览(96)
  • Springboot + Vue 上传Word、PDF文档并保留内部格式

    因为业务需求,上传Word文件需要编辑,但如果使用Blob方式,在数据库里存文件,就会造成格式消失。所以修改思路:上传文件到服务器本地,保证数据存储的完整性。 就是常规的传文件 这此采用的思路就是 把文件读取后,写入相对路径,考虑到文件业务误传,服务器源文

    2024年02月17日
    浏览(144)
  • 前端小程序,h5,浏览器,app, doc,.docx,.ofd,.PDF,.WPS以及Office文档的在线解析预览方式

    在线预览是将Word、PPT、Excel、PDF、OFD、音视频等文件在浏览器中解析查看。       我使用的是usdoc,也有用office online进行在线预览,不过注意的是使用usdoc的时候,我们先需要注册和添加预览的地址域名 usdoc的地址:http://www.usdoc.cn 进入用户中心,我们进行注册 注册好之后,先

    2024年02月11日
    浏览(51)
  • Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理

    感谢小伙伴儿的分享: ● 不羁 ● 郭中天 整合调整后的工具类Gitee地址:https://gitee.com/yuanzhengme/java_application_aspose_demo ● WordToPdfUtil用于将word文档转换为pdf格式的工具类 ● ExcelToPdfUtil用于将excel文档转换为pdf格式的工具类 ● PdfToImageUtil用于将pdf文档转换为image格式的工具类

    2024年01月24日
    浏览(60)
  • 100天精通Python丨办公效率篇 —— 12、Python自动化操作 office-word(word转pdf、转docx、段落、表格、标题、页面、格式)

    本文收录于 《100天精通Python专栏 - 快速入门到黑科技》专栏 ,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识篇以理论知识为主 ,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框架; 黑科技应用篇

    2023年04月18日
    浏览(41)
  • java超简单实现文档在线预览功能,支持word\excel\text\pdf\图片等格式转pdf,aspost 转pdf部署linux中文乱码解决方案

    一、背景         在工作中需要对上传到服务器的各种类型包括但不限于word、pdf、excel等文件进行在线预览,前端比较菜搞不定,只能本人亲自上。         网上的经验比较多也比较乱, 有的只有预览,没有文件格式转换,有的也不说linux存在字体问题, 本文会直白的给

    2024年04月10日
    浏览(53)
  • Microsoft Office Word导出高清PDF步骤

    写论文后经常需要导出PDF,但若插进Word中的不是矢量图,会导致图片受损不高清。 常用的办法有: 方法1、word内直接另存为PDF 方法2、word内导出-创建PDF/XPS文档 方法3、word内打印,可以选择打印机为Microsoft Print to PDF等,选择打印的方法会失去超链接,目录标签。 方法4、Mi

    2024年02月04日
    浏览(37)
  • aws lambda 转换 office/txt/html 为 pdf

    简洁的写作需要勇气。让事物变小是一种深思熟虑的、困难的和有价值的行为。大多数书籍本应是一篇博客文章。大多数博客文章本应是一条微博。大多数微博本应不写。 aws lambda AWS Lambda 是一项无服务器事件驱动型计算服务,该服务使您可以运行几乎任何类型的应用程序或

    2023年04月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包