2012-04-23 9 views
4

参照されたフォントを持つPDFがあります.Ghost4Jを使用して埋め込みフォントを含むPDFを出力したいと思います。Ghost4J/Ghostscript - フォントをPDFに埋め込む際にエラー100を取得する

ERROR: Cannot initialize Ghostscript interpreter. Error code is -100 

引数が正常に動作し、コマンドラインで実行します。

public void execute() { 
    Ghostscript gs = Ghostscript.getInstance(); 
    String[] cmdStr={ 
     "-dNOPAUSE","-dBATCH","-dCompatibilityLevel=1.4", 
     "-dPDFSETTINGS=/prepress","-dSAFER","-dNOPLATFONTS", 
     "-sDEVICE=display","-sPAPERSIZE=letter", 
     "-I","C:\\WINNT\\Fonts\\;C:\\Program Files\\gs\\gs9.05\\lib\\;C:\\Program Files\\gs\\gs9.05\\bin\\;", 
     "-dSubsetFonts=true","-dEmbedAllFonts=true", 
     "-sFONTPATH=C:\\WINNT\\Fonts", "-sOutputFile=", 
     outputPath,"-c",".setpdfwrite", "-f",inputPath 
    };  
    try { 

     gs.initialize(cmdStr); 
     gs.exit(); 

    } catch (GhostscriptException e) {   
     System.out.println("ERROR: " + e.getMessage()); 
     e.printStackTrace(); 
    } 

私は次のエラーを取得する任意のPDFファイルを実行している

gswin32c.exe -dNOPAUSE -dBATCH -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress -dSafer -NOPLATFONTS -sDEVICE=pdfwrite -sPAPERSIZE=letter -dSubsetFonts=true -dEmbedAllFonts=true -sFONTPATH=C:\\WINNT\\Fonts -sOutputFile=c:\out.pdf -f c:\test.pdf 

フォローアップ:

  • GhostscriptがCへの書き込み権限を持っています:。
  • 私はinputPathは、outputPath、 "-f" を除くすべてのスイッチを削除し、私はまだinputPath
  • 後CMDSTRの最後でエラー
  • 削除カンマを得る

注意している:

  • 私はコールバックの取得に取り組んでいます
+0

私は、これらのパラメータ '-ps2pdf'と' -psconv'はGhostscriptのコマンドラインのために私に見覚えはありません.... Ghost4Jについて何も知りません。また、あなたのコード例のcmdStr内で、Windows上で動作する 'gswin32c.exe'(Unix上で動作する' gs'のみ)を呼び出すことはありません。 –

+0

Ghost4JはC++ Ghostscriptの単なるJavaラッパーですコード。 http://ghost4j.sourceforge.net/ – eabraham

+0

私はそんなに推測しました...しかし、JavaコードからGhostscriptを呼び出す方法は正しいですか? –

答えて

1

inputPath変数の後にコンマがあります。これは無効なJava構文です。

私は、プロダクションJavaアプリケーションでghostscriptを使用して、PDFからPCLファイルを生成します。 java.lang.Runtimeクラスを使用してGhostscript実行可能ファイルを実行したので、Ghost4Jのアドバイスを直接行うことはできません。

私は、apiがサポートファイルの場所を知らないことが問題であると思われます。次のように、フォント、lib、およびbinの場所の完全なパスを渡してみてください。

"-Ic:\Program Files (x86)\gs\fonts\;c:\Program Files (x86)\gs\lib\;c:\Program Files (x86)\gs\bin\;" 
+0

あなたはカンマについて正しいですが、私はまだエラーメッセージを受け取ります。 – eabraham

関連する問題