首页 > 解决方案 > 如何解决“调用'gsapi_init_with_args'时发生错误:-100”将PDF转换为PDF/A时的问题-Ghostscript

问题描述

当我尝试使用 GhostScript.NET 将 PDF 转换为 PDF/A 并开始调试项目时,会出现以下异常:

“附加信息:调用‘gsapi_init_with_args’时出错:-100”

我的代码是:

Public Sub Start()
    Dim gv As GhostscriptVersionInfo = New GhostscriptVersionInfo("C:\Program Files\gs\gs9.18\bin\gsdll64.dll")
    Dim proc As GhostscriptProcessor = New GhostscriptProcessor(gv)
    Dim switches As List(Of String) = New List(Of String)()

    switches.Add("-dPDFA=1")
    switches.Add("-dNoCancel")
    switches.Add("-dNOPAUSE")
    switches.Add("-dNOOUTERSAVE")
    switches.Add("-sProcessColorModel=DeviceRGB")
    switches.Add("-sDEVICE=pdfwrite")
    switches.Add("-sOutputFile=pdfa.pdf")
    switches.Add("C:\Program Files\gs\gs9.18\bin\PDFA_def.ps")
    switches.Add("-dPDFACompatibilityPolicy=1")
    switches.Add("C:\Program Files\gs\gs9.18\bin\teste.pdf")
    proc.StartProcessing(switches.ToArray, Nothing)
    MsgBox("ok")

End Sub

如果我运行代码通过 CMD 将 PDF 转换为 PDF/A,它就可以完美运行。

gswin64 -q -dPDFA=1 -dNoCancel -dNOPAUSE -dNOOUTERSAVE -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -sOutputFile=pdfa.pdf PDFA_def.ps -dPDFACompatibilityPolicy=1 teste.pdf

但是,使用上述代码运行会带来此错误。

如果我更改参数以将 PDF 转换为图像,它适用于下面的代码。

switches.Add("-dSAFER")
switches.Add("-dBATCH")
switches.Add("-dNOPAUSE")
switches.Add("-sDEVICE=jpeg")
switches.Add("-sOutputFile=figure.jpg")
switches.Add("teste.pdf")

所以看起来参数有问题,同时通过CMD这些参数工作正常。

使代码工作的任何建议?

直接运行 CMD 的问题是它会打开一个 GhostScript 弹出窗口。

标签: c#vb.netpdfghostscript.net

解决方案


推荐阅读