문서 · PDF 툴킷
MediaBox, CropBox 및 /Rotate: PDF이 페이지를 정의하는 방법
· 배경
pdf 페이지 기하학 회전
PDF 페이지에는 일상적인 의미에서 고정된 '크기'가 없습니다. 시청자가 해석할 수 있는 상자, 단위 및 회전 값이 있습니다. 이 게시물에서는 이러한 속성과 다양한 모양의 페이지를 병합, 회전 또는 워터마크할 때 해당 속성이 의미하는 바를 설명합니다.
병합된 파일에 두 가지 크기의 페이지가 있는 이유 — A4 및 Letter 문서를 혼합하고 결과에 두 모양이 모두 표시됨
A4 및 US Letter 소스를 병합해도 모든 시트가 하나의 직사각형으로 강제로 들어가지는 않습니다. ToolAcre는 각 페이지를 기존 크기와 회전으로 복사하므로 출력 크기가 눈에 띄게 바뀔 수 있습니다. 이 동작은 콘텐츠를 공통 시트로 늘리는 대신 소스 형상을 유지합니다.
혼합된 크기는 인쇄, 축소판 레이아웃, 워터마크 위치 및 래스터 출력에 영향을 미칩니다. 페이지 경계에서 결합된 파일을 검토하고 의도적으로 프린터 크기 조정을 선택합니다. 병합은 정규화 도구가 아니며 PDF 파일이 하나라고 해서 모든 페이지의 너비나 높이가 동일하다는 의미는 아닙니다.
툴킷은 PDF 포인트를 사용하지만 일반적인 단위 역사 강의를 제공하지 않습니다.
이미지 대 PDF 작업은 애플리케이션 코드가 실제로 사용하는 단위를 노출합니다. 여백은 포인트로 측정됩니다. 장착된 이미지 페이지는 포함된 이미지 크기에 여백의 두 배를 더한 것과 일치할 수 있으며, 사전 설정된 시트는 구성된 포인트 너비와 높이를 사용합니다. 출처는 단위의 더 넓은 역사를 확립하지 않습니다.
픽셀이 다른 경로로 들어갑니다. PDF-to-image는 pdf.js에 선택한 크기의 뷰포트를 요청하고 해당 픽셀 크기에서 캔버스를 할당합니다. 따라서 페이지는 규모와 메모리 가드에 따라 더 크거나 작은 래스터를 생성하면서 안정적인 PDF 형상을 가질 수 있습니다. 포인트와 출력 픽셀은 서로 바꿔서 사용할 수 없는 설정입니다.
MediaBox 및 CropBox 구별은 이 인터페이스에 의해 노출되지 않습니다.
통합 문서는 MediaBox와 CropBox를 구별하지만 이 인터페이스는 사용자가 해당 상자를 표시, 편집하거나 선택할 수 없도록 합니다. 애플리케이션 작업은 라이브러리 페이지 개체에 너비와 높이를 요청하고 제공된 대로 페이지를 복사합니다. 자세한 상자 우선순위 설명에는 이러한 소스를 넘어서는 직접적인 사양 증거가 필요합니다.
실제 지침은 눈에 보이는 결과를 검사하는 것입니다. 소스 뷰어가 표시를 자르거나 예상치 못한 공백을 표시하는 경우 병합은 상자를 복구하는 대신 페이지를 전달합니다. 워터마크 배치는 라이브러리에 표시된 치수를 사용하고 PDF-to-image는 pdf.js에서 제공하는 뷰포트를 렌더링합니다.
도구는 상속된 노드 동작을 주장하지 않고 페이지 회전을 읽고 추가합니다.
회전은 작업이 pdf-lib를 통해 읽는 페이지 각도로 저장됩니다. ToolAcre는 요청된 1/4 회전을 추가하고 결과를 0, 90, 180 또는 270로 정규화합니다. 입력 값이 페이지에서 직접 발생했는지 아니면 상속된 내부 구조를 통해 발생했는지 여부는 노출되지 않습니다.
이러한 생략은 사용 규칙을 약화시키지 않습니다. 회전은 상대적입니다. 현재 270에 보고된 페이지에 90도를 적용하면 0가 생성됩니다. 이 도구는 저장된 크기를 변경하지 않고 유지하며 콘텐츠 스트림을 변환하지 않습니다. 두 번째 패스가 다시 추가되므로 다른 턴을 선택하기 전에 현재 출력을 검토하세요.
세로 및 가로 — 방향이 별도의 플래그가 아닌 상자 크기와 회전의 결과인 이유
세로 및 가로는 이 인터페이스의 별도 컨트롤이 아닌 페이지 크기, 콘텐츠 및 적용된 회전의 결과입니다. 0도의 넓은 페이지와 90도 회전된 긴 페이지는 모두 가로로 나타날 수 있습니다. 툴킷은 방향의 레이블을 다시 지정하지 않습니다. 선택한 작업에 따라 치수를 복사하거나 회전을 업데이트합니다.
이는 혼합 스캔에 페이지별 처리가 필요한 이유를 설명합니다. 추측된 방향 플래그가 아닌 표시되는 콘텐츠를 기반으로 물리적 위치를 선택합니다. 이미지 대 PDF 사전 설정의 경우 세로 및 가로는 명시적인 시트 크기인 반면, 각 이미지 일치는 각 사진의 고유한 너비와 높이를 기반으로 페이지를 만듭니다.
페이지 수준 도구의 결과 — 병합은 각 페이지의 자체 상자를 유지하며 워터마크는 각 페이지의 상자를 기준으로 배치되어야 합니다.
병합은 각 페이지의 자체 크기와 회전을 유지합니다. 워터마킹은 각 페이지 너비와 높이에 대한 위치를 계산하고, 페이지 너비의 일부로 이미지 표시의 크기를 조정하고, 선택한 앵커에 텍스트를 그립니다. 따라서 고정된 텍스트 크기는 작은 시트와 큰 그림에서 다르게 느껴질 수 있습니다.
각진 표시는 앵커를 중심으로 회전하고 회전되지 않은 표시 측정에서 위치하므로 대각선 스탬프가 직관적인 중심을 차지하지 않을 수 있습니다. 혼합된 페이지 크기와 기존 회전을 테스트합니다. PDF-to-image는 마찬가지로 소스 페이지가 다를 때 혼합된 픽셀 크기를 생성합니다(선택한 하나의 배율에서도 마찬가지).
시험 인쇄 상자 및 균일한 페이지 크기 조정은 이 툴킷 외부에 있습니다.
BleedBox, TrimBox, ArtBox, 시험 인쇄 정판 및 균일한 페이지 크기 조정은 여기에서 구현된 옵션이 아닙니다. 또한 툴킷은 선택한 상자에 맞게 페이지를 자르거나 병합 중에 복사된 페이지의 크기를 조정하지 않습니다. 이러한 워크플로우에는 형상 제어 및 출력 보장이 명시적으로 문서화되어 있는 소프트웨어가 필요합니다.
성공적인 병합을 인쇄 정규화로 설명하지 마십시오. 전문적인 제작을 위해서는 페이지 작업 후 시험 인쇄 도구를 사용하여 상자와 크기를 검사하십시오. ToolAcre는 인쇄 준비 페이지 정의를 인증하는 것이 아니라 명시된 동작에 따라 복사, 주문, 1/4 회전, 표시 및 변환에 적합합니다.
페이지당 크기 및 추가 회전은 배송 작업을 예측합니다.
가장 유용한 기하학 모델은 소스 기반 모델입니다. 모든 페이지에는 치수와 현재 회전이 포함됩니다. 병합은 복사하고, 회전은 각도에 추가하고, 워터마크는 배치를 위해 치수를 읽고, 래스터 변환은 렌더링된 뷰포트를 픽셀로 바꿉니다. 이러한 사실은 사용자가 무엇을 보게 될지 예측합니다.
또한 자동으로 발생하지 않는 일도 식별합니다. 페이지가 균일하게 만들어지지 않고, 편집을 위해 상자가 노출되지 않으며, 회전 중에 내용이 다시 그려지지 않습니다. 최종 뷰어에서 혼합 크기 출력을 확인하고, 원본을 보존하고, 작업이 이러한 페이지 수준 작업 이상으로 확장되는 경우 특수 형상 도구를 사용하십시오. 인쇄의 경우 PDF 도구 키트가 혼합 소스 치수를 충실하게 유지한 후에 프린터가 자체 맞춤 동작을 적용할 수 있으므로 배율 설정을 별도로 검토하세요. 인쇄 미리 보기에서는 로컬 페이지 복사본 자체가 아닌 대상 설정으로 인해 발생하는 잘림이나 예상치 못한 중앙 정렬을 확인할 수 있습니다. 가장 큰 시트와 가장 작은 시트를 한 번 더 확인하면 전체 혼합 패킷이 인쇄되기 전에 크기 조정 가정이 노출되는 경우가 많습니다.