我遇到了一个关于如何使用c#而不使用Microsoft.Office.Interop.Word将doc转换为pdf的问题。我尝试了一些第三方解决方案,比如spire.Doc,但它们不是免费的,而且我在nuget中找到了DocX_Doc,但似乎没有关于那个的教程。有谁知道这个问题或任何指令的免费解决方案关于DocX_Doc。非常感谢。
答案 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)
对于DocX资料库DocX,以下是有关如何将字词转换为PDF Converting .docx into (.doc, .pdf, .html) "免费"
您也可以检查此DLL enter link description here
我使用SautinSoft.UseOffice来做到这一点,它简单易用,但成本约为350美元。以下是完整教程的链接:
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>);
}