28

現在のディレクトリにあるすべてのpdfを印刷しようとしています。singlepdf.shcmd ( ) でこの bash スクリプトを呼び出すと、'"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"' /t Gemeinde_348_BioID_842_alt.pdfすべて正常に動作します。

この内容で電話multiplepdfs.shをかける場合:

declare -a pdfs=(*.pdf)

for pdf in ${pdfs[@]}; do
  echo -e "\nprinting **$pdf** with AcroRd32.exe...\n"
  '"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"' /t $pdf
  sleep 3
done

エコーは、ファイルがループ内で正しくアドレス指定されていることを示していますが、エラーが発生します"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe": No such file or directory

誰かがこの問題を手伝ってくれますか?

編集: ところで、msys mingwがインストールされています

4

12 に答える 12

11

この作業に Acrobat Reader を使用する際に 2 つの問題がありました。

  1. コマンドライン API は公式にサポートされていないため、予告なしに変更または削除される可能性があります。
  2. 印刷コマンドをリーダーに送信すると、GUI がロードされますが、それを防ぐ方法はないようです。プロセスがユーザーに対して透過的である必要がありました。

Foxit Readerの使用を提案しているこのブログに出くわしました。Foxit Reader は無料で、API は Acrobat Reader とほぼ同じですが、文書化されており、印刷ジョブの GUI をロードしません。

警告の言葉、注意を払わずにインストール プロセスをクリックするだけではいけません。関連のないソフトウェアもインストールしようとします。なぜソフトウェアベンダーはまだこれを行っているのですか???

于 2014-03-20T07:38:53.530 に答える
6

プリンター名、ドライバー、ポートがこの順序で欠落しているようです。最終的なコマンドは次のようになります。

AcroRd32.exe /t <file.pdf> <printer_name> <printer_driver> <printer_port>

例えば:

"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t "C:\Folder\File.pdf" "Brother MFC-7820N USB Printer" "Brother MFC-7820N USB Printer" "IP_192.168.10.110"

注: プリンター情報を見つけるには、プリンターを右クリックし、プロパティを選択します。上記の私の場合、プリンター名とドライバー名は一致しましたが、情報が異なる場合があります。

于 2013-10-30T23:31:22.207 に答える
5

エラーメッセージはあなたに言っています。

試してみてください

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "$pdf"

文字列を単一引用符で囲むと、文字を含むすべてが有効な文字列になります"。単一引用符を削除すると、シェルは dbl-quotes を文字列の「ラッパー」として処理します。

また、ファイル名変数を dbl-quotes でラップして、名前にスペースが含まれるファイルを簡単に処理できるようにします。

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "$pdf"

IHTH

于 2013-10-01T20:38:55.660 に答える
3

複数のPDFファイルを連続して印刷する際に同様の問題が発生し、2Printerソフトウェアを使用して回避策しか見つかりませんでした。PDF ファイルを印刷するコマンド ラインの例:

2Printer.exe -s "C:\In\*.PDF" -prn "HP LasetJet 1100"

http://doc2prn.com/での非営利目的の使用は無料です。

于 2014-08-14T20:34:15.380 に答える
3

最初の応答 - 最終的に役立つコミュニティに恩返しをしたかった...

まだ簡単な解決策を探している人々のために、これを回答に追加したかった. Foxit Software の無料製品 FoxItReader を使用しています。
サイレント印刷で動作するバージョンへのリンクは次のとおりです。新しいバージョンのサイレント印刷機能はまだ機能していません。 FoxitReader623.815_Setup

FOR %%f IN (*.pdf) DO ("C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe" /t %%f "SPST-SMPICK" %%f & del %%f) 

ディレクトリをループするコマンドを作成し、各pdfファイル(FOR %%f IN *.pdf)に対してリーダーをサイレントに開き(/ t)、次のPDF(%%f)を取得して印刷キューに送信します( SPST-SMPICK)、印刷キューに送信した後に各 PDF を削除します (del%%f)。Shashank は、必要な場合にファイルを別のディレクトリに移動する例を示しました

FOR %%X in ("%dir1%*.pdf") DO (move "%%~dpnX.pdf" p/)
于 2017-10-18T12:46:08.303 に答える
2

Acrobat Reader を使用することは良い解決策ではありません。特に、コマンド ライン属性は文書化されていません。さらに、印刷プロセスの後、Acrobat Reader のウィンドウが開いたままになります。PDF ファイルはプリンター ドライバーでよく知られているため、2Printer.exe や RawFilePrinter.exe などのより優れたツールを見つけることができます。私の意見では、RawFilePrinter はより優れたサポートと明確なライセンス プロセスを備えています (寄付を 1 回支払うだけで、好きな多くのプロジェクトで RawFilePrinter を再配布できます。新しいバージョンでも、以前に購入したライセンスで動作します)。

RawFilePrinter.exe -p "c:\Users\Me\Desktop\mypdffile.pdf" "Canon Printer" 
IF %ERRORLEVEL% 1(
    echo "Error!"
)

ダウンロードする最新バージョン: http://bigdotsoftware.pl/index.php/rawfileprinter

于 2016-06-15T08:10:13.897 に答える
0
@ECHO off set "dir1=C:\TicketDownload" 
FOR %%X in ("%dir1%*.pdf") DO ( "C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe" /t "%%~dpnX.pdf" "Microsoft XPS Document Writer" ) 
FOR %%X in ("%dir1%*.pdf") DO (move "%%~dpnX.pdf" p/)

これを試してみてください。別のバージョンの Reader を使用している可能性があるため、それが問題です。

于 2014-05-23T09:45:23.927 に答える