9

PHP で Ghostscript を使用して PDF ファイルにパスワード保護を設定する必要があります。

これらのファイルは単純な形式を使用してサーバーにアップロードされますが (これについては助けは必要ありません)、最初は保護されません。そのため、exec 関数とその中に Ghostscript を使用してパスワード保護を適用したいと考えています。しかし、ghostscript クエリがどのようなものであるべきかをどこにも見つけることができませんでした。

たとえば、File.pdf という PDF ファイルがあります。私はそれをアップロードし、それを保護して File_protected.pdf という名前にする必要があります。

私はこのようにしようとしていましたが、「.ps」ファイルの重みが大きすぎて、最終的な File_protected.pdf にパスワードがありません:

exec("gs -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=File.ps File.pdf");
exec("gs -dNOPAUSE -dBATCH -sPDFPassword=password -sDEVICE=pdfwrite -sOutputFile=File_protected.pdf File.ps");
4

3 に答える 3

14

まず、ファイルを PostScript に変換する必要はありません。Ghostscript は、PDF ファイルを入力として受け取り、PDF ファイルを出力として生成することができます。多くの人がさまざまな理由でこれを行っています。

ただし、これを行う場合、Ghostscript は PDF ファイルなどに「スタンプ」するだけでなく、マーキング操作まで完全に解釈し、それらのマークを組み込んだ完全に新しい PDF ファイルを作成することに注意する必要があります。しかし、PostScript に変換してから PDF に戻すことに満足している場合は、これで満足できるはずです。実際には、その 2 段階の変換を行うよりも優れています。

次に、pdfwrite デバイス用の「PDFPassword」スイッチがないため、効果がありません。との2 つのスイッチがあります。また、スイッチを提供することもできます。-sOwnerPassword-sUserPassword-dPermissions

詳細を調べるには PDF リファレンス マニュアルを読む必要がありますが、要するに、所有者はファイルに対して何でも実行でき、ユーザーはアクセス許可 (ビット フィールド) に限定されます。ユーザー パスワードを指定しない場合、誰でもファイルを開くことができます (パーミッションに限定されます) が、パーミッションで許可されていないことを行うには所有者パスワードを指定する必要があります。これはあなたがやりたいことだと思いますが、それはあなた次第です。

于 2012-10-17T07:24:24.510 に答える