プロが教える店舗&オフィスのセキュリティ対策術

JAVA初心者です。
わけあって、pdfboxなるライブラリを使って既存のpdfファイルにパスワードをかけて編集できないようにする、ということをやることになりました。
とりあえずコマンドラインからEncryptクラスにアクセスすることまではできていると思います。しかし、引数の書き方が悪いのかパスワードをかけることができません。
↓入力
C:\java>java -classpath C:\java\PDFBox-0.7.3.jar org.pdfbox.Encrypt -O aaa C:\jjj\aaa.pdf

どのように書けばパスワードをかけることができるのでしょうか?
よろしくお願いします。

A 回答 (1件)

使ったことないのであれですが・・・


質問の詳細化に役立てばと思い書いときます。

書き方はあってるんじゃないでしょうか。

単にパスワードがなくても編集できるというのであれば、オプションが足りないものと考えられます。

-canModify <true|false> Set the modify permission

できたPDFを見たときにパスワードがないという話だとお手上げです。

ググってみたURLをはっときます。

参考URL:http://www.antenna.co.jp/PDF/reference/SecurityE …

この回答への補足

回答ありがとうございます。
肝心な部分が説明不足でした。すいません。質問にあるコマンドを入力すると、下記のようなメッセージが出力されました。

Exception in thread "main" java.lang.RuntimeException: Invalid key length
at org.pdfbox.pdmodel.encryption.ProtectionPolicy.setEncryptionKeyLength(ProtectionPolicy.java:64)
at org.pdfbox.Encrypt.encrypt(Encrypt.java:197)
at org.pdfbox.Encrypt.main(Encrypt.java:64)

オプション-keyLengthの指定がないのがまずいのかなと思い、-keyLength 128を加えたところ、今度は下記のメッセージが出力されました。

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
at org.pdfbox.pdmodel.PDDocument.protect(PDDocument.java:883)
at org.pdfbox.Encrypt.encrypt(Encrypt.java:198)
at org.pdfbox.Encrypt.main(Encrypt.java:64)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 3 more

何かが足らないんでしょうか?

補足日時:2009/01/13 17:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!