dotnet core 在CentOS下 使用libreoffice 把Office 转换成pdf

1.安装libreoffice,我的服务器是centos,直接使用:

         

yum install libreoffice  

  

 2.因为CentOS 里面没有中文字体,文件中有中文会出现乱码,解决方案

先把 c:\Windows\Fonts文件夹复制一份到其它盘,然后打包成Fonts.zip,通过rz Fonts.zip 将压缩包传到服务器上面。

cd /usr/share/fonts
rz
unzip Fonts.zip
mv Fonts win
cd win
chmod  -Rf 755 *
mkfontscale
mkfontdir
fc-cache –fv

3.使用命令转换成pdf文件

libreoffice  --invisible --convert-to pdf  DanaZhang.docx

4.使用dotnet core 转化

using System;
using System.Diagnostics;

namespace DanaZhang
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello DanaZhang!");

            var psi = new ProcessStartInfo("libreoffice", "--invisible --convert-to pdf  DanaZhang.docx") { RedirectStandardOutput = true };
            //启动
            var proc = Process.Start(psi);
            if (proc == null)
            {
                Console.WriteLine("不能执行.");
            }
            else
            {
                Console.WriteLine("-------------开始执行--------------");
                //开始读取
                using (var sr = proc.StandardOutput)
                {
                    while (!sr.EndOfStream)
                    {
                        Console.WriteLine(sr.ReadLine());
                    }

                    if (!proc.HasExited)
                    {
                        proc.Kill();
                    }
                }
                Console.WriteLine("---------------执行完成------------------");

                Console.WriteLine($"退出代码 : {proc.ExitCode}");
            }

        }
    }
}

  

  

posted @ 2018-05-30 16:48  Dana Zhang  阅读(1336)  评论(0编辑  收藏  举报