/ViewerPreferences dictionary 안에 있는 /PrintPageRange 항목입니다property PrintPageRanges: TPdfPrintPageRanges; // read only
PDF 1.7는 /ViewerPreferences에 /PrintPageRange를 추가했는데, 뷰어가 인쇄 대화상자에서 미리 선택해야 할 페이지 범위를 기술하는
정수 쌍의 나열입니다(PDF 32000-1 § 12.2 Table 150). PDFium이 그 배열을 파싱해
이 프로퍼티로 TPdfPrintPageRange 레코드의 Pascal 동적 배열로 노출하며, 각 레코드는 1 기반 번호의 StartPage와
EndPage를 담습니다
문서에 이 항목이 없으면 반환 배열은 비어 있고
(Length(Result) = 0) — "모든 페이지 인쇄"로 취급하세요. 한 페이지만
권고될 때는 해당 범위의 StartPage와
EndPage가 같습니다. 예: "3페이지만"은 (3, 3)
인쇄 대화상자를 구성할 때는 결과를 PrintCopies, PrintScaling, PrintPaperHandling와 짝지어 네 힌트를 모두 사용자에게 보여 주세요. 다른 인쇄 기본 설정처럼 이것도 참고용일 뿐이며 PDFium은 렌더링 중에 범위를 강제하지 않습니다
// Build a comma-separated string like "1-3, 7, 10-12".
var Ranges: TPdfPrintPageRanges;
var S: string;
var I: Integer;
begin
Ranges := Pdf1.PrintPageRanges;
if Length(Ranges) = 0 then Exit;
for I := 0 to High(Ranges) do
begin
if S <> '' then S := S + ', ';
if Ranges[I].StartPage = Ranges[I].EndPage then
S := S + IntToStr(Ranges[I].StartPage)
else
S := S + Format('%d-%d', [Ranges[I].StartPage, Ranges[I].EndPage]);
end;
editRanges.Text := S;
end;