目的
Laravelで生成したPDFを編集不可にしたい。
現状のPDF生成
LaravelでPDFを生成する時にSnappyを利用しております。
PDFを生成すると編集可能状態のPDFが出来上がります。
こちらにもあるようにwkhtmltopdfではパスワード付きのPDFなどは作成できません。
生成されたPDFのセキュリティ情報
qpdfを使ってみる
qpdfを利用すればパスワード保護などのPDFが生成できるようなので試してみます。
インストールは割愛、各自の環境に合わせインストールして下さい。
ドキュメントを見ると encrypt
オプションでパスワード付き編集不可のPDFにできそうです。
--encrypt user-password owner-password key-length [options] --
--encrypt
で始まり --
までが encrypt
オプションのようです。
コマンドを試してみます。
$ qpdf --encrypt "" "hogehoge" 256 --modify=none -- --replace-input /tmp/test.pdf
再度、PDFのセキュリティ情報を確認してみると以下のようになりました。
無事、文章変更不可のPDFが生成できました。
Laravelで生成したPDFにqpdfコマンドを実行してあげれば編集不可のPDFが出来上がります。