Aspose.PDF FOSS for Python 기능

Aspose.PDF FOSS for Python 기능

Aspose.PDF Python용 FOSS 기능

Aspose.PDF FOSS for Python은 순수-Python 라이브러리로, PDF 문서를 생성, 열기, 수정 및 저장할 수 있습니다. 이 페이지에서는 주요 기능 영역과 해당 영역의 진입점 역할을 하는 클래스들을 살펴봅니다. 각 영역은 별도의 개발자 가이드 페이지에서 자세히 다룹니다.


문서 및 페이지 관리

Document은 모든 작업의 루트 객체입니다. 인자를 전달하지 않고 생성하여 새 빈 문서를 시작하거나, load_from()을 호출하여 경로, 바이트 또는 스트림에서 기존 문서를 읽습니다. document.pages는 가변적인 PageCollection을 노출하고, Page.add_text는 페이지에 위치 지정된 텍스트를 배치합니다.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

텍스트 추출 및 검색

PdfExtractor은 문서에 바인딩되어 페이지별로 텍스트를 추출합니다. bind_pdf()은 소스를 열고, extract_text()는 추출을 수행하며, get_text()은 누적된 결과를 반환합니다.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

위치 지정된 개별 프래그먼트 검색 및 교체를 위해, TextFragmentAbsorber은 매치된 TextFragment 객체를 노출하고, text_search_options는 대소문자 구분 및 정규식 매칭을 제어합니다.


페이지 렌더링을 이미지로 변환

Document.save_page_as_image은(는) 단일 페이지를 구성 가능한 DPI로 PNG 또는 TIFF 파일에 직접 렌더링합니다. 더 낮은 수준의 접근을 위해, Page.render은(는) get_pixel() 및 pixels를 통해 원시 픽셀 데이터를 포함하는 RasterizedPage를 반환합니다.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

폼 및 인터랙티브 필드

AcroForm 필드는 Document.form을(를) 통해 관리되며, 이는 Form 파사드입니다. Form.add_text_field()(및 체크박스, 라디오, 리스트, 콤보 박스에 해당하는 것)는 페이지와 위젯 사각형에 연결된 새 필드를 생성하고 Field을(를) 반환합니다. Form.fields은(는) 현재 문서에 존재하는 모든 필드를 나열합니다.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

보안, 암호화 및 서명

Document.encrypt은(는) 사용자 비밀번호(문서를 열 때 필요)와 소유자 비밀번호(권한을 변경할 때 필요)로 문서를 보호합니다; decrypt()와 change_passwords()는 이미 열린 문서에 대한 보호를 관리합니다. is_encrypted은(는) 현재 상태를 보고합니다.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

디지털 서명 검증은 PdfSignature.validate이(가) 처리하며, 신뢰 및 폐기 상태를 설명하는 ValidationResult을(를) 반환하고, SigningUtils는 인증서와 PKCS#7/CAdES 서명 도우미를 제공합니다.


PDF/A 및 PDF/UA 규정 준수

Document.validate_pdfa은(는) 휴리스틱 PDF/A 준수 검사를 실행하고 PdfAValidationResult을(를) 반환합니다; convert_to_pdfa()은(는) 해당 수준으로 문서를 복구하려 시도합니다. validate_pdfua()와 auto_tag()는 PDF/UA에 대한 동등한 접근성 검사 및 자동 구조 트리 태깅을 제공합니다.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

팁 및 모범 사례

  • document.pages, page.annotations, 또는 document.form가 직접 반환하는 객체를 수정하십시오 — 페이지나 필드의 별도 복사본에 대한 편집은 save()을(를) 호출할 때 반영되지 않습니다.
  • PageCollection은(는) 이 Python 바인딩에서 0부터 시작합니다 (document.pages[0]이(가) 첫 번째 페이지입니다).
  • 신뢰할 수 없는 입력에 대해 load_from()을(를) 호출할 때, 보다 광범위한 AsposePdfException보다 먼저 InvalidPasswordException과 PdfParseException을(를) 포착하여, 잘못된 비밀번호와 손상된 파일에 다르게 대응할 수 있습니다.
  • 많이 편집된 문서에서 사용되지 않는 리소스를 제거하고 파일 크기를 줄이기 위해 save() 전에 document.optimize() 또는 compress_streams()을(를) 호출하십시오.
  • 신뢰할 수 없는 출처의 PDF를 처리할 때 load_from()에 제한된 PdfLoadLimits을(를) 전달하여 파싱 중 메모리와 객체 수를 제한하십시오.

일반적인 문제

문제원인해결
save()은(는) 편집 내용이 변경되지 않은 파일을 생성합니다편집이 document.pages, annotations, form에서 가져온 객체가 아니라 페이지, 주석 또는 필드 복사본에 적용되었습니다해당 컬렉션이 직접 반환하는 객체를 수정하십시오
InvalidPasswordException on load_from()문서가 비밀번호로 보호되어 있으며 비밀번호가 제공되지 않았거나 잘못된 비밀번호가 제공되었습니다올바른 비밀번호를 입력하십시오: document.load_from(path, password="...")
validate_pdfa()는 convert_to_pdfa() 이후에도 여전히 글꼴 오류를 보고합니다제공된 font_lookup_directory에서 일치하는 글꼴 파일을 찾을 수 없습니다누락된 글꼴을 조회 디렉터리에 추가하거나 변환하기 전에 FontRepository에 등록하십시오
렌더링된 이미지가 비어 있는 것처럼 보입니다save_page_as_image() 또는 render()에 잘못된 페이지 인덱스가 전달되었습니다pages은 0부터 시작하는 인덱스입니다 — 인덱스를 확인하고 PdfExtractor이 해당 페이지에 대해 텍스트를 반환하는지 여부도 확인하십시오
Form.add_text_field()으로 추가된 필드가 페이지에 표시되지 않습니다위젯 사각형이 페이지의 media_box 밖에 있습니다사각형 좌표가 Page.media_box 안에 있는지 확인하십시오.

FAQ

Aspose.PDF Python용 FOSS는 상용 PDF 엔진에 의존합니까?

아니요. 이것은 MIT 라이선스로 배포되는 처음부터 만든 순수-Python PDF 엔진입니다. 런타임 종속성은 암호화와 서명 검증에 사용되는 cryptography와 asn1crypto뿐입니다.

기존 PDF를 열지 않고 처음부터 PDF를 만들 수 있나요?

예. 인수가 없는 Document()는 빈 메모리 문서를 생성합니다; 저장하기 전에 페이지를 추가하려면 document.pages.add()을 호출하십시오.

어떤 래스터 형식으로 페이지를 렌더링할 수 있나요?

Page.render와 Document.save_page_as_image은 PNG 또는 TIFF 래스터 출력을 생성합니다; 반환된 RasterizedPage는 get_pixel()와 pixels 속성을 통해 원시 픽셀 데이터도 제공합니다.

패키지 전용 오류에 대해 어떤 예외를 잡아야 하나요?

Catch AsposePdfException. 패키지별 모든 오류는 — 구문 분석(PdfParseException), 비밀번호 및 암호화(PdfSecurityException, InvalidPasswordException), 그리고 검증(PdfValidationException) 실패를 포함해 — 모두 이것에서 파생됩니다.

다음에는 어디로 가야 하나요?

시작하기에서는 설치, 라이선스 및 첫 번째 작업 예제를 다룹니다. 이 개발자 가이드는 양식, 내장 파일 첨부, 글꼴 탐색, 그리고 개요/북마크 작성과 같은 문서 관리 주제로 이어집니다.


API Reference 요약

클래스/메서드설명
Document루트 객체 — PDF를 생성, 로드, 저장 및 관리합니다
Document.pages문서의 가변 PageCollection
Document.load_from / Document.save경로, 바이트 또는 스트림에서 읽거나 쓰기
Document.encrypt / Document.decrypt비밀번호로 보호하거나 보호를 해제
Document.validate_pdfa / Document.convert_to_pdfa휴리스틱 PDF/A 준수 검사 및 변환
Document.validate_pdfua() / Document.auto_tagPDF/UA 접근성 검사 및 구조 자동 태깅
Page.add_text페이지에 배치된 텍스트 추가
Page.render페이지를 RasterizedPage에 렌더링
PdfExtractor페이지 텍스트와 삽입된 첨부 파일 추출
PdfFileEditor파일 간 페이지를 연결, 분할, 삽입 및 삭제
Form / FieldAcroForm 컨테이너 및 개별 폼 필드
PdfSignature / SigningUtils디지털 서명 검증 및 생성
AsposePdfException패키지별 예외에 대한 기본 클래스

참조

 한국어