생성된 호환성 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.DocumentAPI을(를) 선호하십시오.
일반적인 문제
| 문제 | 원인 | 수정 |
|---|---|---|
잘못된 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_page | unsigned-content 번들에서 페이지를 추가하거나 제거합니다 |
UnsignedContent.add_form_field / remove_form_field | unsigned-content 번들에서 양식 필드를 추가하거나 제거합니다 |
UnsignedContent.add_annotation / remove_annotation | unsigned-content 번들에서 주석을 추가하거나 제거합니다 |
UnsignedContentAbsorber.extract | unsigned content를 UnsignedContent 인스턴스로 추출합니다 |
UnsignedContentAbsorber.get_extracted | 마지막으로 추출된 UnsignedContent를 반환합니다(있는 경우) |
UnsignedContentAbsorber.has_extracted | 추출이 수행되었는지 보고합니다 |
PdfAValidateOptions.add_input | 검증을 위해 입력 소스를 등록합니다 |
PdfAValidateOptions.set_option / get_options | 검증 옵션 값을 설정하거나 읽습니다 |
PdfAValidationResult.add_error | 오류 메시지를 추가하고 결과를 무효로 표시합니다 |
PdfAValidationResult.to_dict | 검증 결과의 사전 표현을 반환합니다. |