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
    레이어를 평면화합니다: 모든 레이어가 하나로 병합되어 구조를 단순화하고 숨겨진 레이어 데이터를 제거합니다.

  • RemoveJavaScriptsAndActions: bool
    잠재적인 취약성을 제거하기 위해 JavaScript 및 관련 작업을 제거합니다.

  • RemoveMetadata: bool
    메타데이터(문서 속성 및 추가 내장 정보)를 제거합니다.

  • RemoveAttachments: bool
    모든 내장 파일을 제거합니다.

메서드

  • static All(): HiddenDataSanitizationOptions
    다음 옵션이 활성화된 사전 구성된 인스턴스를 반환합니다:
    RemoveAnnotations, RemoveJavaScriptsAndActions, RemoveMetadata, RemoveAttachments, RemoveSearchIndexAndPrivateInfo, FlattenForms, FlattenLayers;
    페이지를 이미지로 변환하는 것(ConvertPagesToImages = false) 및 이미지 처리(ImageCompressionOptions = null)가 비활성화됩니다.
    All() 호출 후 ImageCompressionOptionsConvertPagesToImages를 수동으로 구성할 수 있습니다.

HiddenDataSanitizer

HiddenDataSanitizer 클래스는 PDF 문서에서 숨겨진 데이터(메타데이터, 첨부파일, 주석, JavaScript, 개인 정보 등)를 정리하는 기능을 제공합니다.
위생 처리 프로세스를 유연하게 제어하기 위해 HiddenDataSanitizationOptions에 정의된 옵션 집합을 사용합니다.

정적 메서드 SanitizeAllToImages

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

모든 PDF 문서 페이지를 이미지로 변환한 다음 남아 있는 숨겨진 데이터를 제거합니다.
이 메서드는 문서를 래스터 이미지로 완전히 “봉인”해야 할 때 유용하며, 모든 숨겨진 요소를 제거합니다.

인스턴스 메서드 Sanitize

public void Sanitize(Document document)

생성자에서 제공된 옵션에 따라 PDF 위생 처리를 수행합니다.

사용 예