부록 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().

This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at artifex.com or contact Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States for further information.