private static string[] GetArgs(string inputFile, string outputFile)
{
return new[] {
$"gs",
$"-o",
$"{outputFile}",
$"-dNoOutputFonts",
$"-sDEVICE=pdfwrite",
$"{inputFile}",
};
GhostscriptProcessor ghostscript = new GhostscriptProcessor();
string inputFile = "D:\\%1.pdf";
string outputFile = "D:\\%output.pdf";
ghostscript.Process(GetArgs(inputFile, outputFile));
there will be an error "An error occured when call to
'gsapi_init_with_args' 是:-100"
但是如果将文件路径更改为同伴
字符串 inputFile = "D:\%1.pdf"; (包含 %) 字符串 outputFile = "D:\output.pdf"; (不包含 %)
它有效,没问题
如果将文件路径更改为同伴
字符串 inputFile = "D:\你.pdf"; 字符串 outputFile = "D:\output.pdf";
inputFile="D:\你.pdf" "你" 是汉字
这也行不通
我做了更多的测试,如果文件路径包含中文字符,则不起作用。
任何人都可以提供一些建议吗?非常感谢。
我做了一些更改以将文件名转换为 UTF8 作为研究员
UTF8Encoding utf8 = new UTF8Encoding();
字符串 inputFile = "D:\你.pdf"; 字符串输出文件 = "D:\%91.pdf";
字节[] inputFileEncodedBytes = utf8.GetBytes(inputFile);
字节[] outPutFileEncodedBytes = utf8.GetBytes(outputFile);
字符串 strInput = System.Text.Encoding.UTF8.GetString(inputFileEncodedBytes);
字符串 strOutPut =System.Text.Encoding.UTF8.GetString(outPutFileEncodedBytes);
ghostscript.Process(GetArgs(strInput, strOutPut));
结果是一样的