PDFファイルを暗号化/パスワードとアクセス許可を追加する方法

チャクニット・ビン
チャクニット・ビン
2024年10月20日
更新済み 2024年12月17日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

PDFファイルをパスワードと特定の権限で保護することは、機密文書を不正アクセスや不正操作から守るために不可欠です。 IronSecure Docの[POST] 暗号化/パスワードおよび権限追加APIは、印刷、フォーム入力、注釈などの権限を設定しながら、ユーザーおよび所有者のパスワードでPDFファイルを効率的に暗号化する方法を提供します。 このAPIは、PDFが完全に保護され、アクセスが制御されることを保証するため、法律、金融、または個人的な文書に最適です。

IronSecureDocをプルして開始する

IronSecureDocをまだお使いでない場合は、以下のリンクからセットアップしてください:

ローカルでホスト クラウドにデプロイ

POST]暗号化/パスワードとアクセス許可の追加API

[POST] 暗号化/パスワードと権限の追加 API は、パスワードでそれらを暗号化し、さまざまな操作に特定の権限を設定することによって、PDFドキュメントにセキュリティレイヤーを追加することを可能にします。 読み取りアクセスの許可、フォーム入力の許可、印刷の無効化など、このAPIはPDFファイルへのアクセスや変更方法を制御することができます。

スワッガー

Swaggerは、このAPIをインタラクティブにテストするためのユーザーフレンドリーなインターフェイスを提供します。 コードを書かずにテストリクエストを送信し、応答を受信するために使用することができ、開発者にとって最適なツールです。

Swaggerでテキストを再編集する手順

  1. Swagger UIにアクセスする:

    APIサーバーがローカルで実行されている場合、Webブラウザでhttp://localhost:8080/swagger/index.html にナビゲートすることでSwaggerにアクセスできます。

    Swagger ドキュメント

  2. APIを見つける:

    [POST] /v1/document-services/pdfs/encrypt API を見つけると、暗号化/パスワードと権限の追加に対応しています。

    テキストを編集する

  3. 入力パラメーター:

    APIに必要なパラメータを提供してください。 サンプルPDFファイルをアップロードし、必要なパーミッションを指定することができます。

  4. PDFファイルをアップロード:

    リクエスト本文では、PDFファイルをpdf_fileとしてアップロードし、印刷、フォーム入力、コンテンツ抽出の許可または制限など、必要なパーミッションを定義してください。

  5. リクエストを実行する:

    すべてのパラメータを設定したら、"Execute "をクリックしてリクエストを送信します。応答は、指定されたセキュリティ設定で暗号化されたPDFを返します。

  6. 出力PDFを確認する:

    PDFコンテンツを表示するには、「password」と入力してください。


入力パラメータの理解

APIは、PDFを暗号化し、権限を割り当てるために特定のパラメータを必要とします。 以下は、必須パラメータとオプションパラメータの内訳です:

必須パラメーター

Name Data Type Description
pdf_file application/pdf The PDF file you want to encrypt.
allow_extracting_content boolean Indicate whether content extraction is allowed.
allow_form_filling boolean Indicate whether form filling is allowed.
allow_annotations boolean Indicate whether annotations are allowed.
allow_printing boolean Indicate whether printing is allowed.
allow_modifications boolean Indicate whether modifications are allowed.
new_owner_password string The new owner password for the PDF, which grants full access and the ability to change permissions.

オプションのパラメータ

Name Data Type Description
user_password string The current user password, required if the PDF has a user password to grant read access.
owner_password string The current owner password, required if the PDF has an owner password to grant full access.
new_user_password The new user password for read access.
save_as_pdfa boolean Save the PDF as PDF/A-3 compliant.
save_as_pdfua boolean Save the PDF as PDF/UA compliant.
author string Set the PDF metadata Author property.
title string Set the PDF metadata Title property.
subject string Set the PDF metadata Subject property.

APIの統合:Pythonの例

入力パラメータに慣れれば、Pythonやその他の言語を使用してAPIを呼び出すことができます。 以下は、Pythonを使用してこのAPIを統合する方法の例です。

import requests

url = 'http://localhost:8080/v1/document-services/pdfs/encrypt'
headers = {
    'accept': '*/*',
    'author': 'IronSoftware',
    'title': 'ENCRYPTION DEMO 2024',
    'subject': 'DEMO EXAMPLE'
}

files = {
    'pdf_file': ('sample.pdf', open('sample.pdf', 'rb'), 'application/pdf')
}

data = {
    'allow_extracting_content': 'true',
    'allow_form_filling': 'true',
    'allow_annotations': 'false',
    'allow_printing': 'false',
    'allow_modifications': 'true',
    'new_owner_password': 'password',
    'new_user_password': 'password',
    'save_as_pdfa': 'false',
    'save_as_pdfua': 'false'
}

response = requests.post(url, headers=headers, files=files, data=data)

# Save the encrypted PDF
with open('sample.pdf', 'wb') as f:
    f.write(response.content)

print('PDF encrypted successfully.')
PYTHON

手順の説明:

  • PDFを読み込む: 暗号化するPDFファイルはローカルファイルシステムから読み込まれます。
  • 暗号化パラメーターの設定: 印刷の許可、フォーム入力、コンテンツ抽出の許可、さらに新しいパスワードの設定などの権限を定義します。
  • API を呼び出す: 必要なパラメーターを渡しながら、[POST] Encrypt/Add Password & Permissions API が呼び出されます。
  • 結果を保存: 暗号化されたPDFは新しいファイルとして保存されます。

    PDFファイルは以下のように暗号化されています。 PDFコンテンツを表示するには、「password」と入力してください。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。