web-dev-qa-db-ja.com

Mac(および/またはLinux)用の手動両面印刷

私のプリンタは自動両面印刷をサポートしていません。ほとんどのWindowsプリンタードライバーで見たMacおよびLinuxコンピューター用のソリューションを探しています。

  • プリンタ画面で「手動両面印刷」を確認してください
  • プリンタが片面の印刷を開始します
  • ページをめくるように求めるダイアログが表示されます
  • プリンターは反対側を印刷します。

私にできることの1つは、print odd pages、ダイアログを再度開き、print even pagesですが、これは非常に不便です特に、Macダイアログが毎回前のページ範囲を忘れてしまうため、ドキュメントの特定のページ範囲のみを印刷したい場合。両面両面印刷の場合、またはこの1つの印刷出力の追加設定を変更する場合は、さらに不便になります。

これを行うことができるツールはありますか?または、ダイアログと実際のプリンタードライバーの間のどこかに配置できる「仮想プリンタードライバー」で、これらの手順を管理しますか? (Windowsツール http://en.wikipedia.org/wiki/FinePrint はそのようなことを行うことができますが、私はそのすべての機能を必要とせず、Mac/Linuxで必要です。 )

または、誰かがトリックを知っているかもしれません。印刷ダイアログを開いたままにする方法、つまり「印刷するが閉じない」という方法です。

更新

そのようなツールがまだ存在しているようには見えません。そのようなものを実装するのはどれほど難しいでしょうか?どこに統合する必要がありますか?CUPSプリンタードライバーとして、またはダイアログの印刷アクションのフックとして?クロスプラットフォームで動作するのでしょうか、それともMac/Linux固有である必要がありますか?

Mac/Linux /ドライバープログラミングの経験を持つ誰かがこれに光を当てることができますか?

解決

現在の解決策:

Apple Automatorスクリプトを作成します:


アクション:奇数ページと偶数ページを抽出[すべてのページを別々のファイルに]


アクション:シェルスクリプトを実行する[入力を引数として渡す]

mv "$1" /tmp/odd.pdf
mv "$2" /tmp/even.pdf
lpr /tmp/odd.pdf

アクション:確認を求める["ページをめくってください"]


アクション:シェルスクリプトを実行する[入力を引数として渡す]

lpr /tmp/even.pdf

まだ完璧ではありません。 改善や代替案の提案は大歓迎です!

8
Chris Lercher

ALMOST、しかし葉巻はまだありません:4番目のステップは最初のステップから奇数ページのみを取得し、次にそのセットから偶数ページを取得します...それはよくないね。何か賢いことを考えない限り、これは後で削除します。 (最初のステップで2つのファイルをすぐに作成することもできますが、確認ダイアログが必要です。Automatorで「再起動」または並列処理が行われている可能性があります。


Macの場合、Automatorはあなたの友達です。

  • Automatorを開く

  • [印刷プラグイン]を選択します(印刷プラグインは、印刷ダイアログで使用できるワークフローです。印刷されるドキュメントのPDFバージョンを受け入れます。10.6SnowLeopardより前は、この選択肢は、空のワークフローを作成するときではなく、ワークフローを保存しようとしています。同じように機能するはずです。)

  • 次のアイテムをワークフローの右側にドラッグします。

    1. 「奇数ページと偶数ページを抽出」、「奇数」を選択

    2. 「ファインダーアイテムの印刷」

    3. 「確認を求める」、いくつかの指示を書く

    4. 「奇数ページと偶数ページを抽出」、「偶数」を選択

    5. 「ファインダーアイテムの印刷」

  • それを保存。最終的には~/Library/PDF Services/したがって、[印刷]ダイアログのPDFメニューの一部になります。

enter image description here
Automatorが救助に

enter image description here
印刷ダイアログのPDFメニュー

ページの合計が奇数の場合、最初の実行の最初または最後のページを少しいじる必要があります。 (スタック全体をプリンターに戻すと、完了時に最後のページが用紙トレイに残る場合があります。手順3の手順を調整してみてください。)

5
Arjan

あなたが望むことをするかもしれないduplexprと呼ばれるsourceforgeのプロジェクトがあります。

http://sourceforge.net/projects/duplexpr/

ずっと前に書いたのですが、興味がわからなかったので更新していません。 0を超えるアクティブなユーザーベースを取得できる場合、または開発やテストの支援に関心のある人がいる場合は、もう一度作業します。いくつかの追加機能を備えた新しい開発コードもあります。また、コマンドラインに移動せずにデスクトップから使用できるように、GUIを有効にすることも試しています。

これは、非両面プリンターの両面印刷をエミュレートする一連のbashスクリプトです。私はそれを毎日使ってきました-何年もの間。

ユニークな機能の1つは、両面印刷をバッチ処理できるため、一度に複数のジョブを印刷でき、ジョブごとに1回ではなく、用紙のスタック全体を1回だけ裏返して再挿入する必要があることです。

現在のバージョン(sourceforge上)にはいくつかの問題があります。 1つ目は、bashを変更したことです。現在のスクリプトを(ダウンロードした後)機能させるには、各スクリプトの最初の行を#!/ bin/shから#!/ bin/bashに変更する必要があります。

もう1つの問題は設計上の問題です。プリンタは、用紙の処理方法が異なります。印刷面を上にしてページを出すものもあれば、印刷面を下にしてページを出すものもあります。これは、複数の両面印刷アルゴリズムが必要であることを意味します。現在、duplexprは1つのアルゴリズムのみをサポートしています。 HP Deskjet 720および895(旧)やHP C4480(新)などのプリンターで完全に機能します。 HP Laserjet(1006および1020)でほぼ動作します。これらでは、印刷されるすべてのページが正しく、正しい順序になっていますが、ジョブの印刷が終了した後、各ページを手動でめくる必要があります(1/2ではなく2/1、4/3 ... 、3/4)。

それをチェックして、あなたがそれを使うことに興味があるならば、私に戻ってください。 sourceforgeプロジェクトページ(上記のURL)からメールを送ってください。

さらにいくつかの考え:

duplexprは、実際にはページの印刷範囲に対応していません。これは、ほとんどのアプリケーションの印刷ダイアログで使用できる「ファイルに印刷」および「ページ範囲」オプションを使用して行うことができます。

出力をファイル(デフォルト(少なくともLinuxの場合)のポストスクリプト形式)にすると、いくつかのオプションがあります。次に、duplexprを介して実行できます(ちなみに、他のポスターで言及されている奇数ページの問題を処理します)。

コマンドラインインターフェイス(cli)を使用して処理できる場合は、lpコマンド(またはlpr)のどちらをインストールしても、奇数ページのみ、偶数ページのみに指定できるオプションがあり、必要に応じてページ範囲を指定することもできます。それがあなたの好みに合わない場合は、xppと呼ばれる驚くべき小さなGUIユーティリティがあります。偶数ページまたは奇数ページのみを印刷する既存のプリンターのエイリアスを作成することもできます。両面印刷の2回目のパス(両面)で紙詰まりや複数ページのフィードから回復するために常に使用しているので、片面のページを最初からやり直すことなくゴミ箱に入れずに印刷を完了することができます。

これらの手動の方法のいずれかを使用すると、ページ数が奇数の場合、フォームフィードをプリンターに送信して最後のページを取り出すことができます。

エコー-n $ '\ f' | lp

それを行うか、フォームフィードだけを含むファイルを作成してlpに送信できます。これは、これまでに試したすべてのプリンターで機能します。

いずれにせよ、最後のページなどを再挿入しないことを覚えておくよりもはるかに簡単です。

HTH

ジョー

3
Joe

HP両面印刷ソフトウェア を見てください。

2
LoB

ここでのコメントや他のフォーラムに基づいて、AutomatorShell Scriptsの機能をマージして、ある種のマージされたソリューションを作成しました。私が見てきたように、そのような解決策はまだ投稿されていないので、これは便利かもしれません。

入手しなければならない唯一のパッケージはpdftk serverで、これは pdftkの公式ウェブサイト からダウンロードできます。 pdftkサーバーをインストールすることにより、あなたはあなたに能力を与える単一のパッケージをインストールするだけです編集PDFファイル。公式ウェブサイトからのいくつかのテキストを引用させてください。 pdftkサーバー:

インストール後、ターミナルを開き、pdftkと入力してReturnキーを押します。 Pdftkは簡単な使用法情報を表示することで応答します。 man pdftkを実行して、pdftkドキュメントにアクセスします。

このインストーラーは、Mac上に/ opt/pdflabs/pdftk /というディレクトリを作成します。これには、pdftkプログラムを保持するbinディレクトリと完全なPDFtkマニュアルを保持するdocsディレクトリが含まれます。

Pdftkを使用すると、pdfの奇数ページと偶数ページを抽出し(Automatorの組み込みエクストラクターと比較して非常に高速です)、ページを並べ替えて回転させることができます。並べ替えと回転は、使用しているプリンタに基づいて便利です。奇数ページと偶数ページの印刷の間に手動でページを並べ替える必要はありません。参考:私の例では、Samsung ML-2165Wプリンターを使用しました(プリンター内の紙の流れを理解したい場合)。

ベースはArjan'sトップアンサーから来ています:

  • Automatorを開く
  • Select "Print Plugin"(AsArjanwritten before: "... print plugins accept PDF印刷されているドキュメントのバージョン... "これは、最初のアイテムの(ワークフローにドラッグした)入力がそのPDFになることを意味します)
  • 次のアイテムをドラッグします。

    1. 変数の値を設定。ドロップダウンメニューからパスを選択します。
    2. シェルスクリプトの実行:これはpdftkを実装している部分です。

      source ~/.bash_profile
      
      while read -r p; do
          pdftk A="$p" cat Aodd output /tmp/odd.pdf
      done
      
      lpr /tmp/odd.pdf
      

      説明:.bash_profileをソーシングする必要があります。そうしないと、pdftkコマンドにアクセスできないためです。 whileサイクルは、pdftkのマニュアルページに基づいて記述されています。知っておく必要があるのは、入力pdfの奇数ページをodd.pdfに抽出し、/ tmpに配置することだけです。 odd.pdfが生成されたら、lpr Shellコマンドを使用して、デフォルト設定で印刷します。

    3. 確認を求める:指示文を入力してください。 重要:このワークフローを使用する場合、奇数ページの印刷プロセスが完了するまで待ってから、ページを入力トレイに戻す必要があります。その後、[OK]を押すことができます。それ以外の場合は、ペーパーを元に戻す前に、次のシェルスクリプト(明らかに印刷も含まれます)が実行されます。

    4. 変数の値を取得。変数をパスに設定します。これは注意が必要な部分です。オプションのドロップダウンメニューから、このアクションの入力を無視するを選択します。これにより、元のPDFのパスが返されるため、抽出したばかりの奇数ページをさらに抽出することはありません(これは上記のコメント内の問題でした)。

    5. シェルスクリプトの実行:偶数ページを印刷します(逆順および回転方向)。

      source ~/.bash_profile
      
      while read -r p; do
          pdftk A="$p" cat Aeven output /tmp/even.pdf
          pdftk /tmp/even.pdf cat end-1 output /tmp/even_backwards.pdf
          lpr -o orientation-requested=6 /tmp/even_backwards.pdf
      done
      

      説明:ソースPDFファイルから偶数ページを抽出した後、pdftkでend-1パラメーターを使用すると後方PDFが得られます。回転はlprコマンドのパラメーターを使用して行われます(私は試しました) pdftkで回転させると、スムーズに進みましたが、初期パラメーターを指定してlprコマンドを使用すると、pdfが元に戻ります。プリンターの設定が原因だと思います)。-oorientation-requested = 6を使用すると、180度回転します(詳細については、を参照してください)。 man lpr)。

このスクリーンショットは、ワークフロー全体をまとめたものです。

enter image description here

1
borosdenes

まず、プリンタを開いて、レターヘッド紙のセット方法を示すアイコンを見つけます。フェイスアップでロードされている場合は、次のスクリプトを使用します。

#!/bin/sh

if [ "$1" = "--help" ]; then
  echo '
twosidedu - print a PDF document two-sided, using a single-sided printer 
that needs letterhead paper loaded face up.

USAGE:   twosidedu foo.pdf

The even numbered pages will be printed in reverse order.  When
prompted, re-insert the pages with printed side down and the top Edge
according to the icon, and type <enter>.  Then, the odd-numbered pages
will be printed in normal order.'
  exit 0
fi

pdftk "$1" cat end-1even output - | lp
read -p "please re-insert the pages into the printer then hit <enter>" junk
pdftk "$1" cat 1-endodd output - | lp 

それ以外の場合は、次のスクリプトを使用してください。

#!/bin/sh

if [ "$1" = "--help" ]; then
  echo '
twosidedd - print a PDF document two-sided, using a single-sided printer
that needs letterhead paper loaded face down.

USAGE:   twosidedd foo.pdf

The even numbered pages will be printed in normal order.  When
prompted, re-insert the pages with printed side up and the top Edge
according to the icon, and type <enter>.  Then, the odd-numbered pages
will be printed in normal order.'
  exit 0
fi

pdftk "$1" cat 1-endeven output - | lp
read -p "please re-insert the pages into the printer then hit <enter>" junk
pdftk "$1" cat 1-endodd output - | lp 
1
Jim Van Zandt

Gnome Manual Duplex はあなたの友達です。 GUI化、仮想プリンター、CUPS互換...

免責事項:私はその作者です。

1
Rick Richardson

「仮想プリンタードライバー」の流れでは、アプリケーションからPostscriptまたはPDF)に印刷してみてください。これは、特定の範囲または複雑な2アップページを印刷する場合に特に役立ちます。

一般的な考え方は、必要な設定(ページ範囲、シートあたりのページ数など)を使用してアプリケーションから「印刷」することですが、出力をPS/PDFに送信します。 その後実際の二重化を処理するには、OSの標準のPS/PDF印刷機能を使用します。

または、アプリケーションからtwo印刷ジョブを実行します。最初の設定で上向きのページのPS/PDFを生成し、2番目の設定で下向きのページの2番目のPS/PDFを生成します。その後、二重化はすでに完了しており、最初のファイルを印刷し、ページをめくってプリンタトレイに戻し、2番目のファイルを印刷するだけです。

これは確かに最も美しく、最も便利な方法ではありませんが、ワークフローを調整することで実行できるはずです。追加のソフトウェアは必要ありません。 (OSXにはPDFへの印刷機能が組み込まれていると思います。ディストリビューションですぐに使用できない場合は、Linuxで構成するのはかなり簡単です。)

1
quack quixote

上記の投稿のJimVan Zandtには、ここで重要なトリックがあります。最初に偶数ページを印刷してください。これにより、最後のページが空白のフィドルがなくなります。

通常のプリンタードライバーのプリンタープリセットを使用するだけです(はい、印刷ダイアログを2回開きますが、おそらくこれは前述のオートマタースクリプトで適用できます)。

デュプレックス-偶数-1:

  • 紙の取り扱い->印刷するページ:偶数のみ
  • 用紙処理->ページ順序:逆
  • レイアウト->ページの向きを逆にするためのチェックボックス

デュプレックス-奇数-2:

  • 用紙の取り扱い->印刷するページ:奇数のみ

最初にduplex-even-1プリセットを使用して印刷し、用紙を出力からフィーダーにシフトして、duplex-odd-2プリセットを使用して印刷します。

出力用のプリンターと印刷プリセットを指定するためのオートマターシーケンスがあるかどうかを知って幸せですか?

0
robm