次のコマンドは、pdf ファイルに対して Ghostscript を実行します。(pdf_file
変数にはそのpdfへのパスが含まれています)
bbox <- system(paste( "C:/gs/gs8.64/bin/gswin32c.exe -sDEVICE=bbox -dNOPAUSE -dBATCH -f", pdf_file, "2>&1" ), intern=TRUE)
実行後bbox
は以下の文字列が含まれます。
GPL Ghostscript 8.64 (2009-02-03)
Copyright (C) 2009 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
%%BoundingBox: 36 2544 248 2825
%%HiResBoundingBox: 36.395015 2544.659922 247.070032 2824.685914
Error: /undefinedfilename in (2>&1)
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push
Dictionary stack:
--dict:1147/1684(ro)(G)-- --dict:1/20(G)-- --dict:69/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 8.64: Unrecoverable error, exit code 1
次に、この文字列を操作して、BoundingBox の寸法 (36 2544 248 2825) を分離し、pdf ファイルのトリミングに使用します。これまでのところ、すべて正常に動作しています。
ただし、このスクリプトをタスク マネージャー (Rscript.exe または Rcmd.exe BATCH を使用) でスケジュールするか、スクリプトが R チャンク内にあるときに を押すknit HTML
と、bbox は BoundingBox 情報が欠落している次の文字列を取得し、それを作成します。使用不可:
GPL Ghostscript 8.64 (2009-02-03)
Copyright (C) 2009 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Error: /undefinedfilename in (2>&1)
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push
Dictionary stack:
--dict:1147/1684(ro)(G)-- --dict:1/20(G)-- --dict:69/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
この問題を解決し、スクリプトを自動で実行するにはどうすればよいですか?
(スクリプトは、その質問に対する受け入れられた回答から来ています)