네이티브 페이지 임포트와 보존 PDF/A-4

선택한 페이지를 원본 텍스트·벡터 콘텐츠 스트림, 상속된 MediaBox/CropBox/Rotate, 명시적 UserUnit, 임베디드 폰트, 이미지, 공유 리소스, 순환 간접 식별자와 함께 덧붙입니다

AppendImportedPages는 서로 다른 로드 문서 둘에서 동작하고 대상 리비전과 암호화를 유지하며, 페이지 트리를 커밋하기 전에 임포트 객체 전부를 스테이징합니다. 중복 선택, 잘못된 참조, 취소, 권한, 바이트·객체·페이지 예산 문제는 대상을 그대로 둡니다

선택된 소스 주석은 normal appearance 상태, BBox, Matrix를 쓰는 평범한 Form XObject 콘텐츠가 됩니다. 소스 상호작용과 field는 임포트되지 않고, 숨겨진 주석은 제거되며, flattenAnnotations=false는 모든 소스 주석을 명시적으로 제거합니다

보이는 주석에는 쓸 만한 normal appearance가 필요합니다. NoZoom/NoRotate 지오메트리에는 다른 편집 정책이, 서명·인증된 대상 문서에는 별도 서명 문서 정책이 필요합니다

소스 사용자 암호는 텍스트 추출을, 대상 사용자 암호는 콘텐츠 수정을 허가해야 합니다. 오너 인증은 이 권한 제한을 우회합니다

검증된 보존

HPDFConvertHeadlessToPDFA4PreservingFile은 실제 sRGB output intent와 PDF/A-4 XMP를 갖춘 독립 PDF 2.0 문서를 만들고, 원본 콘텐츠와 평탄화된 appearance를 임포트하며, 스테이징 후보를 진짜 veraPDF CLI로 검증한 뒤 규격에 맞는 출력만 원자적으로 발행합니다

변환은 도달 가능한 페이지 콘텐츠·리소스를 유지하면서 원본 암호화, 인터랙티브 field, 서명, catalog 액션, 문서 메타데이터, catalog 첨부를 제거합니다. 소스에 서명된 field가 있으면 allowSignatureInvalidation은 명시적이어야 합니다

기본 경로는 원본 폰트 프로그램을 유지합니다. 명시적 폰트 복구는 없는 폰트를 위해 유한한 정규화와 쓸 수 있는 대체 폰트 임베딩을 더하고, 모든 최종 후보는 대상을 교체하기 전에 여전히 진짜 PDF/A-4 검증이 필요합니다

검증기 설정

헤드리스 Java와 공식 veraPDF CLI JAR을 설치한 뒤 HOTPDF_VERAPDF_JAR을 설정하거나 Pascal에서 ValidatorJAR을 설정하세요. 기본 경로는 /usr/bin/java와 /opt/hotpdf-verapdf/cli.jar입니다

검증은 별도 프로세스 인자, 헤드리스 Java, 설정된 힙 한도, 유한한 stdout/stderr, 시간 예산, 취소를 씁니다. 타임아웃/취소는 자식 프로세스를 종료·정리하고 비공개 스테이징 파일을 지웁니다

관리되는 준비 한도와 Java 힙 한도는 운영체제 RSS 상한이 아닙니다

콜백 연산

{"schemaVersion":1,"type":"pages.import","pages":[2,0,1],"sourcePassword":"source-owner","flattenAnnotations":true}
{"schemaVersion":1,"type":"pdfa.convert","profile":"PDF/A-4","mode":"preserve"}

pages.import에는 로드된 대상 핸들과 별개 소스 InputIO가 필요합니다. 대상 인증은 핸들에 붙어 있고 sourcePassword는 임포트 입력에만 적용됩니다

pdfa.convert는 래스터가 기본입니다. preserve는 텍스트/벡터 콘텐츠를 유지하고 출력 콜백 전에 veraPDF를 호출한 뒤, 성공한 출력과 결과 발행 뒤에만 핸들을 검증된 암호화 없는 문서로 교체합니다

검수

네이티브 Linux FPC 3.2.2와 3.3.1은 원본 스트림·폰트·CMap 바이트, 상속된 리소스, 회전, AES 소스/대상 리비전, 변환된 appearance, 순환 리소스, 다시 읽기 동작, 롤백, 실제 PDF/A-4 검증, 유한한 자식 수명을 검증합니다. Windows FPC와 Delphi는 페이지 임포트를 시험하고, 두 C++Builder 아키텍처가 공개 헤더를 컴파일합니다

sh Tests/Linux/Run-HeadlessPageImportAcceptance.sh
sh Tests/Linux/Run-LinuxABIAcceptance.sh

페이지 임포트와 보존 아카이브 계약 · 네이티브 문서 워크플로