web-dev-qa-db-ja.com

Windows 7コマンドラインからの印刷

私はWindows 7で一部の印刷を自動化したいと考えています。理想的にはコマンドラインからです。右クリックして[印刷]を選択したかのように。

コマンドを試してみました:

C:\>print /D:"CutePDF Writer" test.txt

そのプリンターは、PDFファイル(XPSプリンターのような)を作成することになっていますが、プリンターキューに何も表示されませんでした。アイデア?

8
mizipzor

print コマンドは、/d:スイッチに次のsynatxを使用します。

ジョブを印刷するプリンターを指定します。プリンターが接続されているコンピューターのポートを指定することにより、ローカルプリンターを指定できます。パラレルポートの有効な値は、LPT1、LPT2、およびLPT3です。シリアルポートの有効な値は、COM1、COM2、COM3、およびCOM4です。キュー名(\ ServerName\ShareName)でネットワークプリンターを指定することもできます。プリンターを指定しない場合、印刷ジョブはLPT1に送信されます。

つまり、"CutePDF Writer"を引数として使用することはできません。

機能する方法は2つあります。

  • プリンターにCOMポートを割り当てます。

    1. スタート→コントロールパネル→デバイスとプリンターを開きます。
    2. CutePDF Writerを右クリックし、Printer Propertiesを選択します。
    3. Portsタブで、COM1:からCOM4:までの未使用のポートをプリンターに割り当てます。
    4. COM3などを選択した場合は、次のコマンドを使用して印刷します。

      print /d:COM3 test.txt
      
  • プリンターを共有します。

    1. スタート→コントロールパネル→デバイスとプリンターを開きます。
    2. CutePDF Writerを右クリックし、Printer Propertiesを選択します。
    3. Sharingタブで、プリンターを共有し、共有名を割り当てることを決定します。
    4. CutePDFなどを選択した場合は、次のコマンドを使用して印刷します。

      print /d:\\%COMPUTERNAME%\CutePDF test.txt
      
15
Dennis

こんにちはDOSを知っていれば、CutePDFをデフォルトのプリンターとして設定する方が簡単です。プリンターをデフォルトとして設定しても問題はないので、デフォルトのプリンター設定に再度リセットします。

テキストファイル、htmファイル、batファイル、またはテキストファイルを印刷するには、次のように入力します。

  notepad /p test.txt

他のプログラムの場合は、印刷用のコマンドライン形式を見つけます(regeditまたはドキュメント内)。

5
ansel

登録されているファイルタイプの印刷Windows(95/98/NT/2000)でファイルタイプが関連付けられているファイルは、マウスの右ボタンを使用して印刷できます。

この関連付けは、たとえば、の.rtfファイル

"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rtffile\Shell\printto\command"

コマンドは次のようになります。

"%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /pt "%1" "%2" "%3" "%4"

つまり:

"wordpad.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]"

(角括弧はオプションを意味します)。 VistaからWindowsに同梱されているpowershellを使用してcmdから呼び出すことができます。

powershell -command "start -verb printto AnyFile.rtf PrinterName [ DriverName [ PortName ] ]"

厳密に:

"%windir%\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "& {Start-Process -FilePath  'test.txt'  -ArgumentList '\"CutePDF Writer\"' -Verb 'printto' }"

それはそのような登録された動詞(printto)でほとんどすべての登録されたファイルタイプのために働きます!ただし、プリンタードライバーは通常、ユーザーダイアログを表示します。 Bullzip Pdfプリンターで表示されるユーザーダイアログを無効にすることができます。

4
Кое Кто

@mizipzor:

  1. Dennisの回答に従うと、jobファイルが正常にprintqueueに入れられます。

  2. しかしジョブ処理はスタックしますそのプリンターは[〜#〜] text [ 〜#〜]入力ファイル!理由:

    • Windowsの印刷キューは、この点ではるかに馬鹿げています(CUPS Linux/Unix/OSXキューとは対照的です-CUPS Linux/Unix/OSXキュー-着信データを自動入力して、それぞれの印刷キューがダイジェスト可能なデータとしてレポートするものに自動的に変換できます)。
    • プリンターは、PDFを作成するために、入力としてPostScriptデータを予期している可能性があります。

したがって、コマンドを実行しても、機能しません:PDFを作成する「プリンター」にテキストファイルを送信します。そしてそれを機能させることは不可能です他の「単純な」方法でも...

1
Kurt Pfeifle

コントロールパネルの[デバイスとプリンター]プリンターを右クリックして、プリンターのプロパティを選択します。プリンターが共有されており、[共有名]が8文字以下であることを確認します。 DOSプロンプトで> net Use lpt1:\ 127.0.0.1 \これで、DOSプログラムが印刷されます!

0
user809460