0

教えてください、私はすでに頭全体を壊しています...私はJava Mavenプロジェクトを持っています。既存のPDFファイルのRGBカラーをグレーに変更する必要があります。Ghostscript に出くわし、インストールして、コマンド ラインでテストしたところ、動作しました。pom ファイルの ghost4j に含まれています。私の方法:

private void ColorConversion(String newFileName, String directory) throws GhostscriptException {

//get Ghostscript instance
Ghostscript gs = Ghostscript.getInstance();

//prepare Ghostscript interpreter parameters
//refer to Ghostscript documentation for parameter usage
List<String> gsArgs = new ArrayList<String>();
gsArgs.add("-sDEVICE=pdfwrite");
gsArgs.add("-sProcessColorModel=DeviceGray");
gsArgs.add("-sColorConversionStrategy=Gray");
gsArgs.add("-dEncodeColorImages=false");
gsArgs.add("-sColorConversionStrategyForImages=Gray");
gsArgs.add("-o " + directory + File.separator + "output_cmyk.pdf");
gsArgs.add(newFileName);

//execute and exit interpreter
gs.initialize(gsArgs.toArray(new String[0]));
gs.exit();

java.lang.UnsatisfiedLinkError: ライブラリ 'gsdll64' を読み込めません: ネイティブ ライブラリ (win32-x86-64/gsdll64.dll) がリソース パス (D:\Education\javafx-maven-color\) に見つかりませんターゲット\クラス...など。

このライブラリの場所を知るにはどうすればよいですか? ライブラリをターゲットに追加するだけでは終了せず、maven で clean を実行するとフォルダーが削除されます。

私もこのコマンドで実行しようとしました:

gsArgs.add("-I c:\\Program Files\\gs\\fonts\\;c:\\Program Files\\gs\\lib\\;C:\\Program Files\\gs\\bin\\;");

ゼロ反応。

UPD:テストのために、この文字列を書きました

Runtime.getRuntime().load(this.getClass().getResource("/org/example/gsdll64.dll").toString().replace("file:/", ""));

JavaFX 上の私のアプリケーションで、クラスに Task インターフェイスを使用しています。次のコードを書きました。

try {
        //execute and exit interpreter
        synchronized (gs) {
            gs.initialize(gsArgs.toArray(new String[0]));
            gs.exit();
        }
    } catch (GhostscriptException e) {
        throw e;
    } finally {
        //delete interpreter instance (safer)
        try {
            Ghostscript.deleteInstance();
        } catch (GhostscriptException e) {
            //nothing
        }
    }

しかし、コードを実行すると、エラーがスローされます。

「不正なメモリアクセス」

ログ:

0 [Thread-3] INFO org.ghost4j.Ghostscript  - GPL Ghostscript 9.54.0 (2021-03-30)
2 [Thread-3] INFO org.ghost4j.Ghostscript  - Copyright (C) 2021 Artifex Software, Inc.  All rights reserved.
2 [Thread-3] INFO org.ghost4j.Ghostscript  - This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
2 [Thread-3] INFO org.ghost4j.Ghostscript  - see the file COPYING for details.
61 [Thread-3] INFO org.ghost4j.Ghostscript  - Processing pages 1 through 2.
61 [Thread-3] INFO org.ghost4j.Ghostscript  - Page 1
4

0 に答える 0