PDFium Component Docs

PrintPageRanges 속성

이 API 항목은 식별자, 시그니처, 코드 블록, PDF 용어를 원래 형태로 유지합니다.
컴포넌트: TPdf  ·  유닛: PDFium
PDF 작성자가 print dialog에 제안하기를 원하는 one-based page range의 디코딩된 목록입니다. 문서의 /ViewerPreferences dictionary 안에 있는 /PrintPageRange 항목입니다

구문

property PrintPageRanges: TPdfPrintPageRanges; // read only

설명

PDF 1.7은 /ViewerPreferences/PrintPageRange를 추가했습니다. 이는 뷰어가 Print dialog에서 미리 선택해야 하는 page range를 설명하는 정수 쌍의 sequence입니다(PDF 32000-1 § 12.2 Table 150). PDFium은 그 배열을 파싱해 이 property를 통해 Pascal dynamic array인 TPdfPrintPageRange record로 보여 줍니다. 각 record는 one-based numbering의 StartPageEndPage를 담습니다

문서에 해당 항목이 없으면 반환 배열은 비어 있습니다(Length(Result) = 0). 이는 "모든 page 인쇄"로 처리합니다. 단일 page를 권장하면 해당 range의 StartPageEndPage는 one-based numbering에서 서로 같습니다. 예를 들어 "page 3만"은 (3, 3)입니다

print dialog를 연결할 때는 PrintCopies, PrintScaling, PrintPaperHandling과 함께 이 결과를 사용해 네 가지 hint를 모두 사용자에게 보여 줍니다. 다른 print preference와 마찬가지로 이것도 advisory only이며, PDFium은 rendering 동안 range를 강제하지 않습니다

비고

예제

// 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;

참고 항목

PrintCopies, PrintScaling, PrintPaperHandling, ViewerPreference