C#を使用してPDFレイヤーを操作する

PDFドキュメントには、機密性を損なったり、ファイルが共有されたときに潜在的な脅威を引き起こす可能性のあるさまざまな隠れたデータが含まれている場合があります。
HiddenDataSanitizerクラスを使用することで、選択した隠れたデータを削除できます。
HiddenDataSanitizerOptionsクラスを使用して、サニタイズプロセスを柔軟に構成できます。

HiddenDataSanitizationOptions

このクラスは、PDFドキュメント内の隠れたデータのサニタイズプロセスを構成します。
潜在的に敏感な、目に見えない、または不要な情報(注釈、スクリプト、メタデータ、添付ファイル、インデックスなど)の削除を集中管理して構成でき、
ページのラスタライズや画像圧縮パラメータを制御することもできます。

次のようなシナリオに適しています:

  • 配布用のドキュメントの準備;
  • セキュリティとプライバシーの強化;
  • PDF構造の簡素化(フォームやレイヤーのフラット化);
  • 通常の表示中に見えない可能性のある隠れたコンテンツの削除。

オプション

  • ImageCompressionOptions: ImageCompressionOptions
    最適化のための画像圧縮設定。ページのラスタライズが有効な場合は無視されます。All()メソッドによって自動的に有効化されることはありません — 必要に応じて手動で構成してください。

  • ConvertPagesToImages: bool
    ページをラスタ画像に変換します。有効にすると、ImageCompressionOptionsは無視されます。他のオプションによって主要な隠れたコンテンツをクリーンアップした後に実行されます。All()メソッドによって自動的に有効化されることはありません。

  • ImageDpi: int(デフォルト150)
    ページを画像に変換する際に使用される解像度(DPI)。

  • RemoveAnnotations: bool
    ドキュメントのすべての注釈を削除します。注釈の修正が適用されます。

  • RemoveSearchIndexAndPrivateInfo: bool
    埋め込まれた検索インデックスとプライベート情報を削除します。

  • FlattenForms: bool
    フォームをフラット化します:インタラクティブなフィールドが静的で編集不可のコンテンツになります。

  • FlattenLayers: bool
    レイヤーをフラット化します:すべてのレイヤーが1つに統合され、構造が簡素化され、隠れたレイヤーデータが削除されます。

  • RemoveJavaScriptsAndActions: bool
    潜在的な脆弱性を排除するためにJavaScriptと関連するアクションを削除します。

  • RemoveMetadata: bool
    メタデータ(ドキュメントプロパティおよび追加の埋め込まれた情報)を削除します。

  • RemoveAttachments: bool
    すべての埋め込まれたファイルを削除します。

メソッド

  • static All(): HiddenDataSanitizationOptions
    次のオプションが有効な事前構成されたインスタンスを返します:
    RemoveAnnotationsRemoveJavaScriptsAndActionsRemoveMetadataRemoveAttachmentsRemoveSearchIndexAndPrivateInfoFlattenFormsFlattenLayers
    画像へのページ変換(ConvertPagesToImages = false)および画像処理(ImageCompressionOptions = null)が無効になっています。
    All()を呼び出した後に手動でImageCompressionOptionsConvertPagesToImagesを構成できます。

HiddenDataSanitizer

HiddenDataSanitizerクラスは、隠れたデータ(メタデータ、添付ファイル、注釈、JavaScript、プライベート情報など)をPDFドキュメントからクリーンアップするための機能を提供します。
HiddenDataSanitizationOptionsで定義されたオプションのセットを使用して、サニタイズプロセスを柔軟に制御します。

静的メソッド SanitizeAllToImages

public static void SanitizeAllToImages(Document document, int dpi = 150)

すべてのPDFドキュメントページを画像に変換し、その後に残っている隠れたデータを削除します。
このメソッドは、ドキュメントをラスタ画像として完全に「封印」する必要がある場合に便利で、すべての隠れた要素を排除します。

インスタンスメソッド Sanitize

public void Sanitize(Document document)

コンストラクタで提供されたオプションに従ってPDFのサニタイズを実行します。

使用例