是否有任何免费的库可以在不使用c#environment

时间:2017-08-28 08:02:28

标签: c# pdf itext

我遇到了一个关于如何使用c#而不使用Microsoft.Office.Interop.Word将doc转换为pdf的问题。我尝试了一些第三方解决方案,比如spire.Doc,但它们不是免费的,而且我在nuget中找到了DocX_Doc,但似乎没有关于那个的教程。有谁知道这个问题或任何指令的免费解决方案关于DocX_Doc。非常感谢。

3 个答案:

答案 0 :(得分:4)

您可以使用libreOffice是Apache 2.0 https://www.libreoffice.org/下的免费许可证 我已经对其进行了测试,并且它可以正常工作,只是您需要下载soffice.exe文件以将其转换为pdf,还可以将docx转换为图像和其他类型。

这是我测试过的示例代码:

    static string getLibreOfficePath()
    {
        switch (Environment.OSVersion.Platform)
        {
            case PlatformID.Unix:
                return "/usr/bin/soffice";
            case PlatformID.Win32NT:
                string binaryDirectory = 
          System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                return @"C:\Program Files\LibreOffice\program\soffice.exe";
            default:
                throw new PlatformNotSupportedException("Your OS is not supported");
        }
    }

    static void Main(string[] args)
    {
        string libreOfficePath = getLibreOfficePath();

        ProcessStartInfo procStartInfo = new ProcessStartInfo(libreOfficePath, 
        string.Format("--convert-to pdf C:\\test.docx")); //test.docx => input path
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;
        procStartInfo.CreateNoWindow = true;
        procStartInfo.WorkingDirectory = Environment.CurrentDirectory;

        Process process = new Process() { StartInfo = procStartInfo, };
        process.Start();
        process.WaitForExit();

        // Check for failed exit code.
        if (process.ExitCode != 0)
        {
            throw new LibreOfficeFailedException(process.ExitCode);
        }
    }

我希望它对您有帮助。 谢谢。

答案 1 :(得分:1)

Convert DOC (DOCX) file to PDF file in C# - Step by Step "不免费"

答案 2 :(得分:-1)

我使用了 OfficeConvert 并且非常适合我...

只需从 NuGet 下载。

https://github.com/Sicos1977/OfficeConverter

using (var converter = new Converter())
{
    converter.Convert(<inputfile>, <outputfile>);
}