如何将GhostScript的路径传递给iText7 CompareTool功能?

时间:2019-06-11 19:14:46

标签: c# itext7

我正在尝试使用C#中的iText7在视觉上比较pdf文件。我无法弄清楚如何告诉iText7 GhostScript的安装位置。

在我的机器上设置了环境变量。 在代码中,我还尝试了environment.setenvironmentvariable

  

消息:iText.Kernel.Utils.CompareTool + CompareToolExecutionException:未指定GhostScript的路径。请使用-DgsExec =(例如-DgsExec =“ C:/ Program Files / gs / gs9.14 / bin / gswin32c.exe”)

1 个答案:

答案 0 :(得分:1)

该消息是iText的Java版本的文字端口,实际上并不适用于C#。

如果您查看the source code of CompareTool.cs,那么您会看到从第144行开始:

/// <summary>Creates an instance of the CompareTool.</summary>
public CompareTool() {
    gsExec = SystemUtil.GetEnvironmentVariable("gsExec");
    compareExec = SystemUtil.GetEnvironmentVariable("compareExec");
}

因此,您需要创建的确切环境变量不是 -DgsExec -DcompareExec ,而是 {{1} } gsExec compareExec 前缀只是在命令行上设置系统属性的Maven(Java世界中的构建自动化工具)方式。

如果需要,可以submit a pull request to iText 7 .NET来修复文档。要更改的文件是-D,要更改的行是7294。在开始之前,请先阅读Contribution Guidelines