생성된 호환성 API 작업하기

생성된 호환성 API 작업하기

생성된 호환성 API 작업

Aspose.PDF FOSS for Python 은(는) aspose_pdf.generated 서브패키지 아래에 두 번째이자 더 작은 API 인터페이스를 제공합니다: generated.document.Document, generated.forms.UnsignedContent 및 UnsignedContentAbsorber, 그리고 generated.pdfa.PdfAValidateOptions와 PdfAValidationResult. 이 클래스들 각각은 라이브러리의 기본 API (aspose_pdf.Document, aspose_pdf.UnsignedContent 등) 에 있는 클래스와 이름을 공유하지만, 별도로 독립적으로 정의된 클래스로 메서드 범위가 축소되었습니다. 이들은 독립적인 호환성 레이어로 존재합니다 — 언제나 전체 aspose_pdf.generated.* 경로로 임포트하여 어떤 클래스를 호출하는지 명확히 하세요.


생성된 Document를 통한 문서 수명 주기

generated.document.Document 은(는) 핵심 문서 수명 주기를 지원합니다: 로드, 저장, 기본 최적화, 암호화 및 검증. 대부분의 속성은 기본 Document 클래스에서 제공되는 더 풍부한 타입 대신 Any 타입으로 지정됩니다.

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.optimize(compress_images=True)
doc.optimize_resources(remove_unused=True)

if doc.validate():
    doc.save("output.pdf")

doc.dispose()

암호화 및 비밀번호 변경은 기본 Document.encrypt 의 별도 사용자/소유자 비밀번호 대신 단일 비밀번호 형식을 사용합니다:

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.encrypt("secret")
doc.change_passwords("secret", "new-secret")
doc.save("protected.pdf")

서명되지 않은 콘텐츠 추출

generated.forms.UnsignedContentAbsorber 은(는) 아직 서명되지 않은 문서의 페이지, 양식 필드 및 주석을 UnsignedContent 컨테이너에 추출합니다. 추출을 실행하려면 extract() 를 호출하고, 결과를 다시 실행하지 않고 확인하려면 get_extracted() 또는 has_extracted() 를 사용하세요.

from aspose_pdf.generated.document import Document
from aspose_pdf.generated.forms import UnsignedContentAbsorber

doc = Document()
doc.load_from("input.pdf")

absorber = UnsignedContentAbsorber()
extracted = absorber.extract()

print(len(extracted.pages), len(extracted.form_fields), extracted.annotations)

if absorber.has_extracted():
    same_result = absorber.get_extracted()

absorber.reset()

UnsignedContent은(는) 흡수기와 무관하게 직접 구축하고 채울 수도 있습니다:

from aspose_pdf.generated.forms import UnsignedContent

bundle = UnsignedContent()
bundle.add_page(some_page)
bundle.add_form_field(some_field)
bundle.add_annotation(some_annotation)

bundle.remove_page(some_page)
bundle.reset()

PDF/A 검증 옵션 및 결과

generated.pdfa.PdfAValidateOptions와 PdfAValidationResult은 PDF/A 스타일 검증 워크플로우를 위한 독립적인 옵션/결과 쌍입니다. 이들은 기본 API의 Document.validate_pdfa()가 반환하거나 PdfAValidator.process()이 소비하는 클래스가 아니며 — 해당 클래스들은 자체적으로 별도로 정의된 PdfAValidateOptions와 PdfAValidationResult 클래스를 사용하고, 더 풍부한 인터페이스(level, warnings, is_heuristic, 및 font_lookup_directory)를 제공합니다.

from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult

options = PdfAValidateOptions()
options.add_input()
options.set_option("level", "1b")

stored_options = options.get_options()

result = PdfAValidationResult()
result.add_error("Font not embedded: Arial")

summary = result.to_dict()
is_valid = result.is_valid

팁 및 모범 사례

  • 각 generated 클래스를 전체 하위 모듈 경로(from aspose_pdf.generated.document import Document 및 generated.forms와 generated.pdfa에 대해서도 동일하게)를 통해 임포트하십시오 — 순수한 Document 또는 UnsignedContent 임포트가 호환 버전을 가리킨다고 가정하지 마세요.
  • 같은 모듈에서 파일이 기본 API도 사용할 때마다, 임포트한 클래스에 구별되는 로컬 이름을 부여하여 두 인터페이스가 모든 호출 지점에서 명확히 구분되도록 하세요.
  • generated.pdfa.PdfAValidateOptions/PdfAValidationResult을 자체적인 쌍으로 취급하십시오: 옵션을 구축하고, 자체 검증 로직을 실행한 뒤, 결과를 직접 add_error()에 기록하세요 — 이는 Document.validate_pdfa()에 의해 자동으로 채워지지 않습니다.
  • extract()가 이미 실행됐는지 확실하지 않을 경우, get_extracted()을 호출하기 전에 UnsignedContentAbsorber.has_extracted()을 확인하십시오.
  • 새 코드는 특별히 축소된, 생성된 호환성 서피스가 필요하지 않은 한 기본 aspose_pdf.Document API을(를) 선호하십시오.

일반적인 문제

문제원인수정
잘못된 Document 메서드가 제공됩니다 (누락된 pages, form, xmp_metadata 등)generated.document.Document을(를) 기본 aspose_pdf.Document 대신 가져왔습니다축소된 표면이 목적이 아닌 경우 기본 클래스(import aspose_pdf; aspose_pdf.Document())를 가져오세요
generated.pdfa에서 가져온 PdfAValidateOptions/PdfAValidationResult은(는) PdfAValidator.process()와(과) 작동하지 않습니다기본 API의 PdfAValidator은(는) 자체 PdfAValidateOptions/PdfAValidationResult 클래스를 기대하며, generated.pdfa 버전은 기대하지 않습니다aspose_pdf에서 내보낸 PdfAValidateOptions/PdfAValidationResult 클래스를 PdfAValidator 워크플로에 사용하십시오
get_extracted()은(는) None을(를) 반환합니다해당 UnsignedContentAbsorber 인스턴스에서 extract()이(가) 호출된 적이 없습니다get_extracted()보다 먼저 extract()을(를) 호출하거나, 먼저 has_extracted()를 확인하십시오
generated.document.Document의 속성은 Any 타입이며 자동 완성이 제공되지 않습니다생성된 표면은 정적 타입을 포기하고 더 작고 단순한 API을(를) 사용합니다호출 위치에서 예상 타입을 캐스트하거나 문서화하고, 더 풍부한 타입을 위해 기본 Document 클래스로 전환하십시오

FAQ

aspose_pdf.generated은(는) 스텁 또는 플레이스홀더입니까?

아니요. 이것은 실제로 가져올 수 있는 서브패키지이며 작동하는 클래스들 — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions, 및 PdfAValidationResult — 를 포함합니다. 라이브러리의 기본 API보다 단순히 더 작고 독립적인 서피스일 뿐입니다.

왜 generated.document.Document가 aspose_pdf.Document와 같은 이름을 가지고 있나요?

두 클래스는 독립적으로 정의된 것이며 우연히 같은 이름을 공유하고 있습니다. aspose_pdf.generated.document에서 가져오면 호환성 버전을 얻고, aspose_pdf.Document(또는 from aspose_pdf import Document)을(를) 가져오면 기본 버전을 얻게 됩니다.

generated.pdfa.PdfAValidateOptions를 PdfAValidator.process()에 전달할 수 있나요?

아니요. PdfAValidator.process()는 기본 API의 일부이며 기본 API 자체의 PdfAValidateOptions 클래스를 기대합니다. 이 클래스는 다른 메서드 시그니처(add_input(source)는 인수가 없는 add_input() 대신)를 가지고 있습니다.

UnsignedContentAbsorber.extract()에 Document 인수가 필요합니까?

아니요. extract()는 생성된 호환성 인터페이스에서 인수를 받지 않습니다; 흡수기를 생성하고 extract()를 직접 호출하십시오.


API Reference 요약

클래스 / 메서드설명
Document.load_from파일 경로, 바이트 또는 스트림에서 문서를 로드합니다.
Document.save문서를 대상에 저장합니다.
Document.optimize일반 최적화를 수행하고, 옵션으로 이미지를 압축합니다.
Document.optimize_resources글꼴 및 이미지와 같은 공유 리소스를 최적화합니다.
Document.encrypt문서를 단일 비밀번호로 암호화합니다
Document.change_passwords문서의 비밀번호를 변경합니다
Document.validate문서가 구조적으로 유효한지 여부를 반환합니다
Document.dispose문서와 관련된 리소스를 해제합니다
UnsignedContent.add_page / remove_pageunsigned-content 번들에서 페이지를 추가하거나 제거합니다
UnsignedContent.add_form_field / remove_form_fieldunsigned-content 번들에서 양식 필드를 추가하거나 제거합니다
UnsignedContent.add_annotation / remove_annotationunsigned-content 번들에서 주석을 추가하거나 제거합니다
UnsignedContentAbsorber.extractunsigned content를 UnsignedContent 인스턴스로 추출합니다
UnsignedContentAbsorber.get_extracted마지막으로 추출된 UnsignedContent를 반환합니다(있는 경우)
UnsignedContentAbsorber.has_extracted추출이 수행되었는지 보고합니다
PdfAValidateOptions.add_input검증을 위해 입력 소스를 등록합니다
PdfAValidateOptions.set_option / get_options검증 옵션 값을 설정하거나 읽습니다
PdfAValidationResult.add_error오류 메시지를 추가하고 결과를 무효로 표시합니다
PdfAValidationResult.to_dict검증 결과의 사전 표현을 반환합니다.

참조

 한국어