저장된 Report의 페이지 계획 읽기
용도
report.plan_pages()는 저장된 Report revision이 주어진 페이지 상자에서 몇 페이지가 되고 각 block이 어느 페이지 어디에 놓이는지를 담은 결정적 page plan을 반환합니다. 조판은 Runtime의 layout engine이 수행합니다. 같은 revision·페이지 설정·엔진 버전·폰트 번들·이미지 바이트로 조판하면 같은 배치를 얻습니다.
문법
report.plan_pages(page_setup: dict | None = None) -> PagePlan예제
report_revision = report.save()
plan = report.plan_pages()
plan.page_count매개변수
page_setup—pageSize("A4"/"Letter"),orientation("portrait"/"landscape"),margins(top/right/bottom/left, canonical decimal 문자열 mm)를 가진 dict. 생략하면 이 Report에 저장된 설정 snapshot의page_setup을 사용합니다. 명시하면 그 페이지 상자를 사용하며, 어느 경우에도 개인 preference를 읽지 않습니다.
반환
PagePlan 객체를 반환합니다. plan.page_count, plan.geometry_key, plan.pages로 읽고, wire 그대로가 필요하면 plan.to_dict()를 사용합니다. PagePlan은 Runtime 응답으로만 만들어지는 output-only 값이므로 직접 생성할 수 없습니다.
규칙
- 저장된 revision만 계획할 수 있습니다.
report.save()전에 부르면 이름 있는 거부를 돌려받습니다. - 허용되지 않는 margin·page 조합은 저장 dialog와 같은 규칙으로 거부됩니다.
조판 프레임과 페이지 나눔
렌더링 계약 report.page-plan.rendered 2.2.0의 pages[].rendered에는 Typst가 실제로 배치한 SVG 페이지와 텍스트 좌표가 포함됩니다. 글꼴과 크기, 줄 간격, 표 높이를 엔진이 계산합니다. 긴 표는 페이지를 넘기며 앞쪽 tableHeader 행을 반복합니다. fragments는 블록의 시작 위치이므로 이 정보만으로 원문 블록 전체를 다시 그리면 줄·행 continuation을 재현할 수 없습니다.
이미지는 승인된 attachment src의 digest·size와 일치하는 저장 바이트로 조판합니다. 가로를 본문 폭에 맞추고, 높이가 본문보다 크면 비율을 유지해 높이에 맞춥니다. 없는 이미지 바이트는 거부하며 임의 로컬 경로나 URL을 읽지 않습니다. PDF 첨부는 파일 참조로 표시하며 PDF 페이지를 본문으로 가져오는 기능은 아닙니다.
이 프레임은 읽기·출력 projection입니다. .pxreport 본문을 SVG로 바꾸어 저장하지 않습니다. 기존 2.1 계획 캐시는 새 엔진으로 다시 생성해야 하며 저장된 Report revision 자체의 마이그레이션은 필요하지 않습니다. 웹 읽기 화면의 배포만으로 SDK runtime 바이너리가 갱신되거나 편집 중 실시간 재조판이 활성화되는 것은 아닙니다.