web-dev-qa-db-ja.com

PDF

開発中のアプリケーションには非常に特殊なユースケースがあり、ユーザーにはPDFドキュメントが表示され、印刷することができます。ただし、制限できる必要があります。 PDFなので、1回しか印刷できません。aPDFを印刷できる回数を制限する方法があるかどうか、誰か知っていますか。

PDF仕様には多くのセキュリティ機能があることは知っていますが、これまでにこのようなものへの参照は見つかりませんでした。

7
pauldunlop

Adobeは Adobe Content Server を使用してeBooksとPDFを保護します Adobe Digital Editions (無料のeBookとPDFリーダー))これにより、通常のスタンドアロンPDFで許可されるよりも柔軟なセキュリティオプションを使用してPDFを配布できます。たとえば、ドキュメントに時間制限を設けたり、特定のページ数のみを印刷したりできます。

アドビのこの製品の価格や、少数のドキュメントで実用的かどうかはわからないので、これはあなたの問題に対する大ハンマーの解決策かもしれません。大英図書館などで(とにかく最近まで)2週間後に期限切れになり、記事の印刷が1回しか許可されない電子図書館間相互貸借に使用されます。

6
pelms

これは技術的には不可能であるだけでなく、非現実的でもあると思います。

印刷した直後にユーザーがドキュメントをコピーできないのはなぜですか?

いくつかの斬新な提案を集める以外に、これによって達成しようとしていることは何ですか?

5
Rook

これができたとしても、ユーザーがスクリーンショットを作成してから画像などを印刷するのを止めることはできません。ユーザーがデータを見ることができれば、コピーの作成を止めることはできないので、私のアドバイスは「試さないでください」です。 pdfは1回だけ印刷する必要があることを警告し、そのままにしておきます。ユーザーが2回印刷したい場合は、道を見つけるからです。

4
del-boy

一度印刷できれば、何度でも印刷できます。

ネットワークプリンタについて考えてみましょう。印刷する生データはリモートの組み込みデバイスに送信する必要があります。これは、ユーザーのマシン全体の所有権を何らかの形で想定している場合でも、プログラムが制限する方法はありません(すでに非常に不快と見なされています)。 ;予想される反応の種類については、 Sony rootkit scandal を参照してください)。

ユーザーのマシンが話しているデバイスが、1つになりすましている(または、さらに単純に、リモートスプーラーになりすましている)ものではなく、実際のHP LaserJetであることがどのようにわかりますか?印刷する代わりに?ジョブを印刷するために必要なのはそのデータだけなので、実際のプリンターで数回再生するだけで、複数のコピーを取得できます。 (@dlamblinが述べたように)スニファーを使用して、プリンターをエミュレートする手間を省くこともできます。

ネットワークプリンタを禁止することも考えられますが、オフィスにネットワークプリンタしかない(汎用PCに接続された単純なプリンタではなく、イーサネットスイッチに直接接続された大型プリンタ)ことは珍しくありません。そのため、何人かのユーザー(何人がターゲットの人口統計に大きく依存するか)は印刷できず、これは良いPRではありません。

そして、USBでさえ免疫がありません(ただし、より多くの技術的知識とおそらく特別なハードウェアが必要になります)。 USBスニファが存在します。そして、それらがなくても、組み込みLinuxデバイス上のUSBプリンター「ガジェットドライバー」で十分である可能性があります(ただし、この記事の執筆時点では、Linux用のUSBプリンターガジェットドライバーはありません)。

これはすべて、プログラムがなんとかしてユーザーのマシンを完全に制御できることを前提としています。コピー防止の試みが何度か失敗したことが示すように、これは口で言うほど簡単ではありません。使用しているプリンタードライバーが、人気のあるブランドのプリンターのプリンタードライバーの珍しいバージョンであり、ストリームをディスクに保存するためのハッキングされたバージョンではないことをどうやって知ることができますか?すべてのUSBトランザクションをディスクに記録するドライバが印刷スタックのどこかにないことをどうやって知ることができますか?また、仮想マシンの通常のユーザーと、仮想マシンを使用してUSBデバイスとの通信を傍受するユーザーをどのように区別できますか?


とはいえ、それほど遠くまで行く必要はありません。ほとんどの人は、技術的なノウハウを持っていても、あなたが行う重複印刷を防ぐための最も弱い試みでさえも回避しようとはしません。実際、ファイルを1回だけ印刷する必要があると言われた場合、ほとんどのユーザーが自発的に2回以上印刷しない場合でも、驚くことではありません(ただし、誤って2回印刷する場合が多くなります)。したがって、一度印刷してから元のデータを消去する簡単なプログラムを作成します。一度印刷するとデータが消去されることをユーザーに警告します。また、許可した回数よりも多く印刷する人もいれば、許可した回数よりも少ない印刷する人もいることを受け入れます(電源の不具合、プリンターの欠陥、構成の誤り)システム、または恐ろしい PC LOAD LETTER すべてが印刷の失敗を引き起こす可能性があります)。そのための準備をしてください。

許可されている回数よりも多く印刷する人は、損失を受け入れるだけです。これは、実店舗が在庫の一部が誤って損傷したり、何らかの方法で失われたりすることを受け入れる必要があるのと同じ方法です。最大の虐待者を見つけて対処する方法があります(法制度が一般的な選択のようです)。

許可されている時間よりも短い時間印刷する人にとっては、ユーザーが新しいコピーを要求できる電話サポートのようなものがオプションになります(Microsoftで機能しますよね?)。もちろん、これを悪用する人もいますが、前の段落を参照してください。

3
CesarB

ソフトウェアプログラムがユーザーが何かを一度だけ印刷することを制御できるという考えは欠陥のある考えです。紙詰まりについて考えてみてください。一部のアプリケーションまたはオペレーティングシステムが印刷ジョブをプリンターに正常に送信したからといって、ユーザーがコピーを取得することを保証するものではありません。では、ユーザーは次に何をすべきでしょうか?

または、各シートのX部を印刷するように構成されているプリンターはどうですか?スキャナーやコピー機はどうですか?

そして最後に、そのような anti-feature については、ユーザーの観点からは明らかにメリットはありませんが、あなたの会社にとってどのようなメリットがあるのか​​まったくわかりません。そのようなことをすることの利点が何であるかを正確に説明していただけますか?

2
hlovdal

PDFとして配信される多くのイベントチケットは、これについてあまり心配する必要はありません。代わりに、会場がバーコードをスキャンし、最初のコピーのみをスキャンすることを強く主張します。与えられたチケットはドアから許可されます。また、チケットに購入者の名前を印刷する傾向があるため、ドアでIDを要求することもできます。

基本的に、一度だけ印刷することはできないと思います-PDFファイル。たとえそうだったとしても、印刷の問題や悪い言葉から顧客関係にコストがかかるのではないかと思います-口の中でその価値よりも多くの費用がかかります。

TurboTax(米国以外の読者のための米国連邦および州の所得税準備ツール)は、数年前に同様のことを試みました。彼らは、印刷を有効にした状態でプログラムをインストールできるのは1回だけである必要があると判断しました。これは、サーバーからのアクティベーションコードによって強制されました。かなりの数の顧客が自宅で税金を払う習慣がありましたが、利用可能なオフィスプリンターを利用するために、オフィスに一時的なコピーをインストールしていることがわかりました。また、監査で問題が明らかになった場合に、その年のソフトウェアを後で再インストールして返品を修正できることについて、関係者から大きな苦情がありました。

苦情は十分に大きかったので、後続のバージョンにはこれらの制限がありませんでした。

2
RBerteig

ドキュメントの印刷回数をカウントするAdobe PDF機能が見つかりません。すべての印刷を無効にしているだけです。これは、次の点を考慮して行うと意味があります。

もし私がPDFあなたが恐れている海賊であり、あなたがこのとらえどころのない印刷物を作成したなら、一度PDFを作成したら、私はそれを一度だけ私のプリンターに送るでしょう。

すると:

Macでは、「印刷」をクリックする前に印刷物をプレビューし、生成されたPDFプレビューを保存することを選択します。

PCでは、プリンタードライバーにジョブをファイルにスプールするように依頼します。

または、どちらの場合も、ファイルへの印刷ドライバーを選択します。その多くは無料です。

上記のオプションのいずれも利用できない場合は、多くのモデルのプリンタードライバーに、最初にPostScriptをディスクにスプールするように依頼するか、悲惨な場合には、ネットワークからプリンターへのネットワークトラフィックをスニッフィングすることができます。通常、認証も暗号化もされていません。 PostScriptは、必要に応じてPDFに戻すこともできます。

編集:
Pitney-Bowesが郵便料金の印刷に使用するJava印刷アプレットを使用しても、プレビューオプションが無効になっているようです。結果の印刷ジョブを再印刷用に保存しましたが、このオプションは、どの種類の用紙サイズでも正しく印刷できないように見えるため、これ以上使用しないでください。一度印刷する目的でまっすぐに再生した場合でも、常にページの余白からバーコードが印刷されます。

1
dlamblin

私たちが持っているシナリオは、バウチャー/クーポンの印刷に関連しています。基本的に、クライアントは、ユーザーがバウチャーのコピーを1つだけ持っていることを確認する必要があります。 (店舗での)引き換え時に検証を行うことはオプションではないため、バウチャーの印刷時に行う必要があります。

店舗でプリントを使用するときにID(および場合によっては署名)を要求してプリントをパーソナライズすることを検討し、1部のみを使用することを販売契約に任せましたか?次に、(後で)最終処理を行って、複数回使用されたバウチャーを登録し、(脅迫して)顧客にその料金を請求する必要があります...(これは、試してみるのに加えて、追加のことになる可能性もあります)プリントの数を制限します。)

誰もが高品質のプリンタを持っているわけではないことに注意してください。一部のスキャンまたはコピーは、一部の元の印刷物よりも見栄えがよい場合があります。

また、すでに述べた@RBerteigのように、一部のお客様はプリンターをまったく持っていないか、インクが不足している可能性があります。ソリューションにAdobeDigital Editions(私の意見では恐ろしい)のような追加のソフトウェアが必要な場合、近所の人や職場でどのように印刷しますか?それを拡張すると、電子バウチャーはどのようになりますか?次のリリースでは、紙のバウチャーではなくスマートフォンにバーコードを表示するために、償還時にオンライン検証を実装する予定です。

コンセプト全体に根本的な欠陥があることは承知していますが、基本的には、平均的なジョーが1つ以上を印刷するのをできるだけ難しくしたいと考えています。
[..]
問題は、競合他社がActiveXコントロールと、これらすべてを処理するためにインストールする必要のある専用アプリを介して、多くのソリューションを作成していることです。私たちは、よりエレガントなソリューションを見つけようとしています。

わかりました。最終的には、あまり安全ではないソリューションを実装することは明らかです。私はあなたがリスクについてクライアントのためにいくつかの書面による声明を持っていると思います。その書面による声明では、あなたもshow顧客に、競合他社のソリューションを使用して複数のコピーを印刷するのがいかに簡単かを提案します。

1
Arjan

私は技術者ではありませんが、「Globe andMail」(カナダ)のWebサイトをチェックする価値があるかもしれません。これは、1部から100部までの印刷部数を請求する新聞です。あなたは彼らがしたことは何でもあなた自身の問題に適応することができるかもしれません。私がこのサイトを見ている理由は、私がウェブサイトを立ち上げようとしていて、私のコンテンツを保護したいからです。幸運を

0
Bruce Lynn

透かしを使ってこのようなことをしました。 PDFには、ユーザーが印刷できる特定の「イベント」を除いて、常に透かしがあります(この状況での支払いなど)。次に、PDF透かしなし。

正確にはあなたが求めているものではありませんが、おそらく透かしの概念が役立つ可能性がありますか?

0
Chris_K

試してください this Adob​​eのチュートリアル:

ユーザーがPDFフォームを印刷できないようにすることができます。フォームを印刷できるか、最小解像度で印刷できるか、または高解像度出力で印刷できるかを指定できます。

1. [ファイル]> [フォームのプロパティ]を選択します。

2. PDFセキュリティ]タブをクリックします。

3. [アクセス許可]領域で、[パスワードを使用してドキュメントとそのセキュリティ設定の印刷と編集を制限する]を選択します。

4. [印刷許可]リストで、次のいずれかのオプションを選択します。

•無し

•低解像度(150 dpi)

•高解像度

0
alex

「うーん」(深い考えが言ったように)、「トリッキー」

バウチャーを含む簡単なログイン要件でWebサイトへのアクセスを分散するのはどうですか。 Webページからバウチャーを印刷します。

ユーザーが一度だけログインできるようにサイトを設定します。

バウチャーがWebページに表示されないようにサイトを設定できる場合がありますが、その方法はわかりません。これができる場合は、ユーザーが複数の印刷物をダウンロードして作成することを防ぎます。

ログインで問題が発生した場合は、別のログインを取得するための正当な方法を提供してください。

もちろん、いつでも物理的なバウチャーを受取人に郵送することができます。

コピーが心配な場合は、それを防ぐ方法があります。例として、「安全な紙」を使用した処方箋を見てください。

0
Kije