web-dev-qa-db-ja.com

LPT1をPDFプリンターまたはOneNoteプリンターにリダイレクトする方法

非常に古いfoxproDOSプログラムがあり、LPT1を介してドキュメントを印刷します。現在、ユーザーはソフトコピーが必要です。そこで、ローカルマシンでPDFプリンターとOneNoteプリンターを共有し、LPT1を以下のようにマップしようとしました。

PDFプリンター:

Net Use LPT1: \\{my machine name}\pdf

プリンター「SendtoOneNote2013」:

Net Use LPT1: \\{my machine name}\one

両方のコマンドが正常に完了し、以下のコマンドでタスクをプリンターのキューに追加できることがわかりますが、実際には何も出力されません

print /d:LPT1 result.txt
=> result.txt is currently being printed

注:LPT2、LPT3も試しましたが、同じ結果が得られました

2
Jammy Lee

主な問題はリダイレクトではありません。 Windowsプリンタドライバは、DOSプログラムによって送信された印刷コードが埋め込まれたASCIIデータストリームを処理できません。DOSプリンタはデータストリームを紙にレンダリングします。他のすべての印刷タスクには、次のものが必要です。外部のDOSからWindowsへのプリントプロセッサプログラム(より多くの場合、フリーウェア)またはvDos。ただし、これは主に、最近のほとんどのWindows 10ディストリビューションと同様に、Windows64ビットでDOSアプリケーションを実行することを目的としています。

1
Jos Schaars

コンピュータに物理プリンタポ​​ートが存在する場合、LPT1のリダイレクトで問題が発生することがあります。その場合は、次のことを試すことができます。

  1. BIOSでLPT1を無効にします(サポートされている場合)
  2. 古いDOSプログラムにLPT2を使用するように指示し(そのようなパラメーターを受け入れる場合)、代わりにLPT2をリダイレクトします
  3. 古代のコマンドを使用するMODE LPT1:=LPT2:(おそらくWindows 7で動作するには古すぎます)代わりにLPT2をリダイレクトします

次のように、管理者としてコマンドプロンプト(cmd)で実行することもできます。

Net Use lpt1: /delete
Net Use lpt1: \\{my machine name}\{pdf-printer} /persistent:yes

何もうまくいかない場合は、問題を解決すると思われるシェアウェア製品をいくつか紹介します(試したことはありません): DOSプリンターPrintfil

1
harrymc

今日も同じ問題がありました。引用符なしでファイルのパスを使用している場合、_""_は_is currently being printed_メッセージを表示しますが、実際には何も出力されないことがわかりました。ファイルのディレクトリに空白スペースがある場合、コマンドラインには引用符_""_内のファイルのすべてのパスが必要です。

0
Cilas