簡體   English   中英

GhostScript-合並來自不同目錄的pdf

[英]GhostScript - Merge pdfs from different directories

我必須合並許多pdf文件,並且正在使用此處詳述的解決方案來構建Ghostscript的命令:

// $output_file_name = 'test_file_complete.pdf'
// $original_file = 'test_file.pdf'
// $append_files = array('../toappend/1.pdf', '../toappend/2.pdf', '../toappend/3.pdf', '../toappend/4.pdf')
public function merge_documents($output_file_name, $original_file, $append_files) 
{
    $cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$output_file_name ";

    $cmd .= $original_file . " ";

    foreach($append_files as $file) {
        $cmd .= $file . " ";
    }

    $result = shell_exec($cmd);
 }

我構建的$ cmd字符串是:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=test_file_complete.pdf test_file.pdf ../toappend/1.pdf ../toappend/2.pdf ../toappend/3.pdf ../toappend/4.pdf

請注意,要合並的第一個文件位於當前目錄中,其他文件位於另一個目錄中。

在命令行中,當我導航到原始文件的目錄並運行它時,它可以完美運行。 但是,在我的函數中,它失敗並顯示以下消息:

(字符串)錯誤:(TEMP_quote_2014_09_05_13_16_04.pdf)操作數堆棧中的/ undefinedfilename:

執行堆棧:%interp_exit .runexec2 --nostringval--
--nostringval-- --nostringval-- 2%stopped_push --nostringval-- --nostringval-- --nostringval-- false 1%stopped_push字典堆棧:--dict:1162/1684(ro)(G)-
--dict:0/20(G)---dict:77/200(L)-當前分配模式是本地上次操作系統錯誤:2

如果我僅使用“ toappend”目錄中的文件運行該代碼,它將很好地合並。

如果我使用絕對路徑,那么這將不再是一個問題。 對於我來說,這樣做沒問題,但是有關ghostscript如何查找文件的信息對於遇到類似問題的人可能會派上用場。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM