부록 2: 임베디드 파일에 대한 고려사항¶
이 장은 PyMuPDF 에서 임베디드 파일 지원에 대한 배경 정보를 제공합니다.
일반¶
버전 1.4부터 PDF는 PDF 문서 파일의 일부로 임의의 파일을 임베딩하는 것을 지원합니다(“Embedded File Streams” 참조, Adobe PDF 참조 의 103페이지 “7.11.4 Embedded File Streams” 장 참조).
많은 측면에서 이것은 ZIP 파일이나 MS Windows의 OLE 기술에서도 볼 수 있는 개념과 유사합니다. 그러나 PDF 임베디드 파일은 ZIP 형식과 달리 디렉터리 구조를 지원하지 않습니다. 임베디드 파일은 차례로 자체적으로 임베디드 파일을 포함할 수 있습니다.
이 개념의 장점은 임베디드 파일이 PDF의 보호 아래에 있어 권한/비밀번호 보호 및 무결성 측면의 이점을 받는다는 것입니다: PDF가 참조하거나 의존할 수 있는 모든 데이터를 하나로 묶어 단일하고 일관된 정보 단위를 형성할 수 있습니다.
임베디드 파일 외에도 PDF 1.7은 지원 범위에 collections 를 추가합니다. 이것은 임베디드 파일의 메타 정보(즉, 임의의 확장 가능한 속성)를 저장하고 표시하는 고급 방법입니다.
MuPDF 지원¶
MuPDF 버전 1.11에서 컬렉션(포트폴리오) 및 /EmbeddedFiles 에 대한 초기 지원을 추가한 후, 이 지원은 버전 1.15에서 다시 제거되었습니다.
결과적으로 CLI 유틸리티 mutool 은 더 이상 임베디드 파일에 대한 액세스를 제공하지 않습니다.
PyMuPDF 는 버전 1.11.0에서 /EmbeddedFiles API를 구현했기 때문에 버전 1.16.0부터 방향을 전환해야 했습니다(MuPDF v1.15.x와 호환되는 PyMuPDF 는 발행하지 않았습니다).
이제 임베디드 파일을 지원하는 자체 코드 기반을 유지 관리하고 있습니다. 이 코드는 기본 MuPDF 딕셔너리 및 배열 함수만 사용합니다.
PyMuPDF 지원¶
임베디드 파일과 관련하여 전체 이전 API를 계속 지원합니다 – 단지 사소한 외관상의 변경만 있습니다.
PDF에 임베디드 데이터가 등록된 모든 이름의 목록을 제공하는 새로운 함수도 있습니다: Document.embfile_names().
