1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaでPDF文書を暗号化、復号化

Posted at

秘密情報や機密情報を含むPDF文書では、パスワードで暗号化することで、指定された人だけが内容にアクセスできるようにすることができます。 暗号化されたPDF文書の復号化は、誰でも自由にコンテンツにアクセスできるように、文書の一般公開を容易にします。 この記事では、無料のFree Spire.PDF for Javaを使用してPDFドキュメントを暗号化または復号化する方法を説明します。

【依存関係の追加】

この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。

1. Maven

Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

2. 公式サイトよりJarファイルをダウンロード

まず、Free Spire.PDF for Javaの公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Pdf.jarファイルを依存関係としてプロジェクトにインポートしてください。

PDFファイルをパスワードで暗号化

PDFファイルを暗号化するためのパスワードには、開くパスワードと権限パスワードの2種類があります。 開くパスワードは、他人がPDFファイルを開くことを制限するもので、開くパスワードでPDFファイルを見るには入力が必要です。 権限パスワードは、印刷、コピー、コメントなど、文書へのアクセスを制限することができます。 PDFファイルが両方のパスワードで暗号化されている場合、どちらか一方のパスワードでPDFファイルを開くことができます。
Free Spire.PDF for Javaでは、PdfDocument.getSecurity().encrypt() メソッドを使用すると、オープンパスワードと許可パスワードを同時に設定することができます。 以下、詳しい手順を説明します。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して、PDFファイルを読み込みます。
  • 開くパスワード、権限パスワード、キーサイズ、権限を設定します。
  • PdfDocument.getSecurity().encrypt() メソッドを使用して、ファイルを暗号化します。
  • PdfDocument.saveToFile() メソッドを使用して、PDFファイルを保存します。

Java

import java.util.EnumSet;

import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

public class encryptPDF {
    public static void main(String[] args) {

        //PdfDocumentのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("C:/休暇.pdf");

        //ドキュメントを暗号化する
        PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;
        String openPassword = "password";
        String permissionPassword = "permission";
        EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);
        pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize);

        //ドキュメントを保存する
        pdf.saveToFile("暗号化.pdf");
        pdf.close();
    }
}

PDFファイルをパスワードで暗号化

PDFファイルからパスワードの解除

PDFファイルを復号化するには、PdfDocument.getSecurity().encrypt() メソッドを使用して、開くパスワードと権限パスワードを空白値に設定し、パスワードを削除することができます。 以下、操作手順の詳細を説明します。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して、暗号化されたPDFファイルを読み込みます。
  • PdfDocument.getSecurity().encrypt() メソッドを使用して、オープンパスワードと許可パスワードを空白値に設定し、ドキュメントを復号化します。
  • PdfDocument.saveToFile() メソッドを使用して、PDFファイルを保存します。

Java

import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

public class decryptPDF {
    public static void main(String[] args) throws Exception {

        //PdfDocumentのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //パスワードを使って暗号化されたPDFファイルを読み込む
        pdf.loadFromFile("暗号化.pdf", "password");

        //ドキュメントを復号化する
        pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "permission");

        //ファイルを保存する
        pdf.saveToFile("復号化.pdf");
        pdf.close();
    }
}

PDFファイルからパスワードの解除

Free Spire.PDF for Javaを使用したPDFファイルの暗号化と復号化の紹介は以上です。このツールはまた、PDFファイルの他の多くの操作を行うために使用することができます。あなたがより多くを知りたい場合は、Spire.PDF for Javaのチュートリアルサイトに移動してください。また、問題を報告するためにSpire.PDF Forumに行くことができます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?