問題タブ [cups]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHPサーバー側の印刷Ubuntuサーバー
私はこれを行うために何が必要かを調べて、少し混乱してしまいました。
これはローカルベースのイントラネットであり、PHPがサーバー側であることを理解しています。
私はWebベースのPHP、JAVA、JqueryIdeaで会社の管理ソリューションを実行しています。「LINUX」サーバーや領収書などから直接レポートを印刷したいと思います。
サーバーにカップをインストールしましたが、サーバーは正常に印刷されていますが、PHPコードから直接生成しているPDFファイルをサーバーに印刷させることが実際に可能かどうかに固執しています。
実行してディレクトリをチェックするbashスクリプトがあり、pdfを印刷してから削除しても、当面は回避策と見なすことができれば幸いです。
私が言ったように、これがWWWで行われた場合、使用できる特定のエクスプロイトがあることを理解しています。このシステムをwwwで実行すると、印刷が許可されていないまったく別のサイトになり、この機能は必要なくなります。
前もって感謝します
アレックス
cocoa - 任意の Mac OS X アプリケーションから CUPS を使用して「PDF に印刷」するフィルター/バックエンドをプログラミングする
さて、ここで私がやりたいことです。ユーザーのドキュメントを PDF に印刷し、デバイスに送信する前にいくつかのヘッダーを追加する印刷オプションを追加したいと考えています。
私の質問は次のとおりだと思います:PDFを作成する開発中のアプリケーションを起動するユーザー用の仮想「プリンター」ドライバーを追加するにはどうすればよいですか(またはPDFを作成し、新しく生成されたPDFへの参照を使用してアプリケーションを起動します)? CUPS と連携して PDF を生成するにはどうすればよいですか? 私は明確であるかどうかわからないので、より多くの情報が役立つかどうかを教えてください.
CUPS チュートリアルを使用してこの印刷を行ったところ、すべてが正常にセットアップされたように見えますが、ファイルが適切な一時的な場所に表示されないようです。そして、誰かがユーザーエンドの PDF プリンターを探している場合、この cups-pdf-for-mac-os-xはインストーラーを介して動作するものですが、指定されたディレクトリにファイルが表示されないという同じ問題があります。ソースをダウンロードし、readme の指示に従います。ターミナルを介してこれらのいずれかをMacで動作させることができる場合は、どのように行ったかを順を追って教えてください。
c - cups API を使用して System V フィルターを追加するにはどうすればよいですか?
System V フィルターがインストールされているカップにプリンターをプログラムで追加する必要があります。現在、次のコードを使用して、プリンターを追加する要求を作成しています。
会話のために:
次のコマンドを使用してプリンターに印刷を送信できるため、これはプリンターを cups システムに正しく追加しているように見えます。
私が最初に考えたのは、フィルターとして使用したいファイルをディレクトリにコピーして、/etc/cups/interfaces
それを呼び出すことでしたmyptr
。私はこれを行い、正しいユーザー、グループ、およびアクセス許可を与えましたが、機能していないようです。sleep 60
スクリプトの先頭にa を貼り付けてみましたが、 には表示されませんでしたps
。
次のように使用してプリンターを追加しようとしましたが、lpadmin
正しく動作します。
私は電話をしなければcupsaccept
なりませんcupsenable
が、プリンターは動作し、フィルターを通して印刷物を送ります。 私のプログラムで行ったのと同じように、からファイルをlpadmin
正しくコピーして名前を付けます。私の人生では、カップ構成ファイルのいずれにもフィルターへの参照が見つからないため、欠落していると思われます。ステップ。それにもかかわらず、私が追加したプリンターは正しく動作し、API を使用して追加したプリンターは印刷されますが、フィルターを介して印刷されません。my.serial.filter
/tmp
/etc/cups/interfaces
myptr2
myptr2
lpadmin
myptr
私が行ったさまざまな Google 検索の中で、CUPS の実装とHTTP および IPP API のドキュメントを読みましたが、最も近いものは、前者にCUPS-Add-Modifyのコメントがあることでした。 - 読み取るプリンター操作:
CUPS-Add-Modify-Printer 要求の後には、必要に応じて、プリンターに使用される PPD ファイルまたは System V インターフェイス スクリプトを続けることができます。「ppd-name」属性は、リクエストの最後に添付されたファイルをローカル CUPS PPD ファイルで上書きします。
これにより、使用してみました
szFilter を と の両方"/tmp/my.serial.filter"
に設定して"/etc/cups/interfaces/myptr"
(もちろん別々のテストで)、しかし役に立ちません。
どこが間違っているのか誰か教えてもらえますか?
macos - CUPS 印刷キューに送信されたファイルに対してスクリプトを実行しますか?
Mac OS X 印刷キューを構成して、スクリプトが印刷された各ファイルに対して何らかの処理を行ってから、別の CUPS プリンター (同じホスト上) に転送できるようにしようとしています。
CUPS について調べていて、lpadmin を使用して「System V スタイルのインターフェース スクリプト」でキューを構成する方法を説明している記事を見つけましたが、そのようなキューは「汎用プリンター」と見なされることに注意してください。これは、[印刷] ダイアログからジョブを送信するときに、ユーザーが用紙トレイなどを選択するすべての機能を失っていることを意味すると思います。あれは正しいですか?
[これにより、このアプローチは私の目的には望ましくありません。最終的な目的地は、非標準の用紙サイズと、ロール紙をカットしたり、キャッシュ ドロワーを開いたりするための印刷ジョブ オプションを備えた POS レシート プリンターであるためです。]
特定の CUPS 印刷キューを介して印刷された各レシートに対してスクリプトを実行するという私の目標を達成するためのより良い方法はありますか?
linux - CUPS バイパス インターフェイス
いくつかのシリアル プリンターがカップの raw キューとして設定されているサーバーがあります。これらのそれぞれに、単純な出力操作を実行し、サーバー上で実行され、プリンターに直接接続してプリンターに書き込むのが好きなアプリケーションで IPC を処理するためのインターフェイス スクリプトをインストールしました。彼は印刷装置のみを制御しています。そこにあるものはすべて機能しているようです。
(独自の印刷スプーラを介してスプールした後) カップを通過している間に、印刷するファイルにプリンタ固有のエスケープ コードを挿入しているように見える別のアプリケーションをサーバーに入力します。つまり、このアプリケーションによって作成される印刷物は、単なるプレーン テキスト文字列ではなく、プリンターが解釈するためのバイナリ制御コードを含んでいます。
私が直面している問題は、この 2 番目のアプリケーションからそのようなファイルを受信したときに、カップが私のインターフェイスをバイパスしているように見えることです。2 つのほぼ同一の印刷ファイルを設定して、これをテストしました。1 つ目は、「Hello, world!」というプレーン テキストを含んでいました。改行文字が続きます。2 つ目は、プリンターの 1 つのエスケープ コードが含まれており、その後に「Hello, world!」が続きます。そして改行。次に、プリンターのインターフェイスに「sleep 5」行を追加して、印刷時に顕著な遅延が発生するようにしました。
lp を使用して最初のファイルを印刷すると、5 秒間何も起こりませんでした。その後、プリンターが起動し、「Hello, world!」と出力されました。ただし、まったく同じlp
コマンドを使用して 2 番目のファイルを印刷すると、すぐに「Hello, world!」と印刷されました。眠らずに。-o raw
また、「 」オプションを使用して、最初のファイルと同じ動作を強制できることにも注意しlp
ました (5 秒の遅延なしですぐに出力します)。
私の推測では、cups は印刷される実際のデータを見て、そのタイプを判別しようとしています。データ内にプリンターのエスケープ コードがあると、これが「生の」印刷であると判断し、インターフェイスをバイパスします。そもそもプリンターを「生の」キューとして設定し、これはカップがインターフェースを介して送信されたものをそのまま渡すことを意味すると想定したため、これは私が期待した動作ではありません。それにもかかわらず、これは私が見ている動作です。
私の質問は次のとおりです。カップにオプションを送信する方法はありますか(インターフェースもバイパスしているように見える 以外-o raw
)、受信した印刷データのタイプを検出せず、先に進んでインターフェーススクリプトに送信するように指示します? あるいは、カップがそれを見ずに単純にインターフェース?
epson - CUPS とサーマル プリンターで Postscript 文書を印刷する
公式ドライバーを使用して、Ubuntu 12.04 に epson TM-T20 をインストールしました。これはサーマルプリンターで、80mmの用紙を使用しています。
私の問題: 画像を (Postscript ドキュメントを使用して) 印刷すると、画像が 25cm の白い紙を送信する前に画像が約 5cm とプリンターを使用するため、大量の紙が無駄になります。
次のコマンドを使用して、ドキュメントをプリンターに送信します。
プリンターはイメージ (200x200 のイメージ) を印刷しますが、最初に大量の印刷されていない用紙を送り出します。
プリンタが CUPS によって認識されませんでした (localhost:631 の Web インターフェイスを使用)。次に、次の手順を使用してインストールしました。
次に、プリンタが CUPS Web インターフェイスに表示され、設定しました (ボー レート、ビット パリティなど)。
テキストを送信すると、プリンターは正常に動作します。
以下は、プリンター ppd の一部です。
この紙の無駄遣いは、ppdファイルに出てくる長さ297mmのせいだと思います。次に、297mm の代わりに 100mm の別の構成を追加しようとしましたが、問題は解決しません。
また、タグ %%DocumentMedia を ps ファイルに追加しようとしましたが、同じ問題が発生しました:
何か案が?
local - CUPS @LOCAL 値
2台のマシンを手に入れました。1 つは CUPS 1.5.0 で、もう 1 つは CUPS 1.6.1 です。2 台のマシンは同じローカル ネットワーク上にあります。ネットワーク上のプリンタを完全に検出したい。次のコマンドを実行すると:
両方のマシンで異なる結果が得られます。CUPS 1.5.0 を搭載したものは、CUPS 1.6.1 を搭載した他のマシンからも得たい結果です。
私は問題を理解しました!@LOCAL
CUPSという変数があります。上のコマンドは次のようになります。
問題は、2 番目のケース (CUPS 1.6.1) の値が@LOCAL
ブロードキャスト (192.168.3.255) ではなく、マシンのローカル IP (192.168.3.69) であることです。
マシン 2 で次のコマンドを実行すると、すべてが完全に機能します。
@LOCAL
変数の値を設定する方法を教えてください。または、CUPS 1.5.0 はインストール時に適切に構成され、1.6.1 では構成されないのはなぜですか? (インストール後に何もしませんでしたが、完全に機能しました)
java - java から cups フィルターにデータを渡す
私は印刷システムに取り組んでおり、印刷された各ドキュメントに任意のテキストを追加する必要があります (作成者、ドキュメント ハッシュ、いくつかの sysvar など)。Java 印刷サービス (javax.print) を印刷クライアントとして使用し、Cups をサーバーとして使用します。
Cups には、「フィルター」と呼ばれるドキュメントの後処理の手順がいくつかあります。
Filter - Cups によって起動されるプログラムです。カップパスは、いくつかのパラメーターをフィルター処理します - それらの中の「ジョブ属性」。
そこで、カスタム属性を Java から cups に渡し、属性をテキストとしてフィルター内のドキュメントに追加することにしました。すべてが例外なく機能し、ドキュメントは印刷されますが、フィルターで属性を取得できません。それらは Cups にさえ渡されません (パケット スニファで見ました)。
すでに getSupportedAttributeCategories() を使用して、サポートされている (プリンターで?) 属性のリストを確認しました。どうにかしてそのリストに追加する必要があるかもしれませんが、方法がわかりません。
私は「属性」に限定されていません。Java から Cups フィルターに任意のデータを渡す必要があるだけです。どうすればいいですか?
私のJavaコードは次のようなものです:
Filter は単純な bash スクリプトで、渡されたすべてのものを出力します。
/tmp/f1.log は次のようになります。
MyAttr:
printing - Postscript と生データをライン プリンターに印刷すると、余分な上部余白が発生する
Unix で印刷する場合、Adobe の acroread Unix コマンドを介して PDF ファイルをパイプ処理し、PostScript ファイルを生成してから、lp コマンドを使用してプリンターに送信するカスタム アプリケーションがあります。私はしばらくの間、顧客の 1 人が連続小切手フォームを印刷するために使用している古い Epson LX-300+ ライン プリンターを扱ってきました -- プリンターはフォームの上部に余分な余白を生成します事前に印刷されたフォームの主要な場所に印刷できなくなります。
手に入るものは何でも試しました。カスタム PPD を使用しているので、これらの連続フォームに必要なカスタム ページ サイズを設定できます。lp -o raw を使用して未加工のテキストをプリンターに印刷しようとしましたが、それでも上部に空白が生成されます。
これは、カスタム ページ サイズを設定するために PPD に追加した行です。
HWMargins 設定を次のように変更しようとさえしました。
に
無駄に。
私を制限しているものはありますか?ある種の ESC/PCL/PJL コマンドを追加して、プリンターのハードウェア制限のように見えるものを上書きすることはできますか? このプリンターモデルは現在、小切手を印刷するために使用されており、生データを使用していますが、Windows経由で実行しているため、使用しているメソッドにアクセスできません.
前もって感謝します。
java - OS間で異なるJava印刷実装?
次のコードを使用して、RAW データ (エスケープ コード) をプリンターに送信しています。
これはWindowsで正しく機能し、プリンターはエスケープコードを解釈して、期待どおりに印刷します。
Linux (ドライバーの CUPS バージョンをインストールしました) では、生データを送信すると、空のページが印刷され、印刷エラーが報告されます。奇妙なことに、システムlprコマンドを使用してデータを送信すると、すべてが正しく機能します。
何がうまくいかないのかについての手がかりはありますか?
[注] 自由にタイトルを編集してください。より良いタイトルが思いつきませんでした
[編集] これは私が得るエラーログです: LOGS
[edit2]私があまり好きではない解決策を持つ同様のスレッド: JavaでのLinux印刷
[編集 3] さまざまな DocFlavors を試してみると、新しいエラーが発生しました。
これは CUPS 構成エラーを示している可能性がありますか?