선택적 콘텐츠 지원¶
이 문서는 PyMuPDF 가 지원하는 PDF 개념 “선택적 콘텐츠” 에 대해 설명합니다.
소개: 선택적 콘텐츠 개념¶
PDF의 선택적 콘텐츠 는 특정 조건에 따라 문서의 일부를 표시하거나 숨기는 방법입니다. 지원하는 PDF 소비자(뷰어)를 사용할 때 또는 프로그래밍 방식으로 ON 또는 OFF로 설정할 수 있는 매개변수입니다.
이 기능은 CAD 도면, 레이어 아트워크, 지도, 다국어 문서와 같은 항목에서 유용합니다. 일반적인 용도에는 지리적 지도, 기술 장치, 건축 설계 등과 같은 복잡한 벡터 그래픽의 세부 정보 표시 또는 숨기기, 다양한 확대/축소 수준 간의 자동 전환이 포함됩니다. 다른 사용 사례는 문서를 인쇄하는 것과 달리 화면에 표시할 때 자동으로 다른 세부 수준을 표시하는 것일 수 있습니다.
특수 PDF 객체인 선택적 콘텐츠 그룹 (OCG)을 사용하여 이러한 다양한 콘텐츠 레이어 를 정의합니다.
OCG를 “일반” PDF 객체(텍스트 또는 이미지 등)에 할당하면 할당된 OCG의 현재 상태에 따라 해당 객체가 표시되거나 숨겨집니다.
PDF의 선택적 콘텐츠 전체 구성을 쉽게 정의하기 위해 OCG는 OC 구성 이라는 상위 수준 그룹으로 구성할 수 있습니다. 각 구성은 각 OCG의 원하는 초기 표시 상태와 함께 OCG 컬렉션입니다. 이러한 구성 중 하나를 선택하면(PDF 뷰어를 통해 또는 프로그래밍 방식으로) 문서 전체에서 영향을 받는 모든 PDF 객체의 표시 상태가 해당 상태로 변경됩니다.
기본 구성 외에는 OC 구성은 선택 사항입니다.
자세한 설명과 추가 배경 정보는 PDF 사양 매뉴얼을 참조하세요.
PDF 선택적 콘텐츠에 대한 PyMuPDF 지원¶
PyMuPDF 는 선택적 콘텐츠 그룹 및 구성의 보기, 정의, 변경, 삭제, OCG를 PDF 객체에 할당하는 것의 유지, OC 구성 간의 프로그래밍 방식 전환 및 각 단일 OCG의 표시 상태에 대한 완전한 지원을 제공합니다.
선택적 콘텐츠 추가 방법¶
PDF에 선택적 콘텐츠 그룹(OCG)을 추가하는 것만큼 간단합니다: Document.add_ocg().
이전에 PDF에 OC 지원이 전혀 없었다면, 필요한 설정(기본 OC 구성 정의 등)이 이 시점에서 자동으로 수행됩니다.
이 메서드는 생성된 OCG의 xref 를 반환합니다. 이 xref를 사용하여 이 OCG의 상태에 종속되도록 만들고자 하는 모든 PDF 객체를 연결(표시)합니다. 예를 들어, 페이지에 이미지를 삽입하고 다음과 같이 xref를 참조할 수 있습니다:
img_xref = page.insert_image(rect, filename="image.file", oc=xref)
기존 이미지를 OCG의 제어 하에 두려면 먼저 이미지의 xref 번호(여기서는 img_xref 라고 함)를 찾은 다음 doc.set_oc(img_xref, xref) 를 수행해야 합니다. 그 후 OCG의 상태가 “ON” 또는 “OFF”이면 이미지는 문서 전체에서 (비)표시됩니다. 이 메서드를 사용하여 다른 OCG를 할당할 수도 있습니다.
이미지에서 OCG를 제거 하려면 doc.set_oc(img_xref, 0) 를 수행하세요.
단일 OCG를 여러 PDF 객체에 할당하여 표시 여부를 제어할 수 있습니다.
복잡한 선택적 콘텐츠 조건 정의 방법¶
복잡한 표시 요구사항을 해결하기 위해 정교한 논리 조건을 설정할 수 있습니다.
예를 들어, 사용자가 필요에 따라 언어를 전환할 수 있도록 다국어 문서를 만들 수 있습니다.
이 Jupyter Notebook 을 확인하고 원하는 대로 실행하세요.
물론 요구사항이 더 복잡할 수 있으며 논리적 관계로 연결된 여러 ON/OFF 상태의 OCG를 포함할 수 있지만, 가능한 것과 다음 단계를 계획하는 방법에 대한 인상을 제공해야 합니다.
