• 締切済み

pdfbox コマンドライン

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

みんなの回答

回答No.1

使ったことないのであれですが・・・ 質問の詳細化に役立てばと思い書いときます。 書き方はあってるんじゃないでしょうか。 単にパスワードがなくても編集できるというのであれば、オプションが足りないものと考えられます。 -canModify <true|false> Set the modify permission できたPDFを見たときにパスワードがないという話だとお手上げです。 ググってみたURLをはっときます。

参考URL:
http://www.antenna.co.jp/PDF/reference/SecurityEncryption.html,http://kickjava.com/src/org/pdfbox/Encrypt.java.htm
ion_2005
質問者

補足

回答ありがとうございます。 肝心な部分が説明不足でした。すいません。質問にあるコマンドを入力すると、下記のようなメッセージが出力されました。 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 何かが足らないんでしょうか?

関連するQ&A