/ViewerPreferences /PrintScaling dokumentu — czy autor PDF chce, aby okno drukowania przeglądarki domyślnie stosowało skalowanie dopasowania do strony zdefiniowane przez aplikację, czy drukowało strony w ich oryginalnym rozmiarze.property PrintScaling: Boolean; // read only
Wpis /PrintScaling w /ViewerPreferences przyjmuje jedną z dwóch nazwanych wartości według PDF 32000-1 § 12.2 Tabela 150:
/AppDefault — pozwala przeglądarce zastosować jej zwykłe zachowanie skalowania (najczęściej "Dopasuj do obszaru drukowania"). PDFium Delphi Component mapuje to na True./None — dokument został ułożony w zamierzonym rozmiarze fizycznym i powinien być wysłany do drukarki w skali 1:1, bez zmniejszania ani dopasowywania. PDFium Delphi Component mapuje to na False.Użyj tej właściwości podczas tworzenia potoku drukowania PDF, aby użytkownik nie musiał zgadywać, czego oczekuje dokument. Formularze, faktury o stałym formacie, etykiety z kodami kreskowymi i proofy przeddrukowe zazwyczaj ustawiają /None, aby kody kreskowe / wymiary miały dokładnie właściwy rozmiar; broszury i dokumenty oprawiane zazwyczaj zostawiają wartość domyślną, aby pasowały do dowolnego rozmiaru papieru.
To jest tylko wskazówka — PDFium nie wymusza jej podczas rasteryzacji. Twoja warstwa drukowania (VCL Printer, GDI StartDoc lub dowolna inna) to to, co faktycznie skaluje (lub odmawia skalowania) wyrenderowaną mapę bitową lub strumień PostScript. Połącz ją z PrintPaperHandling, PrintCopies i PrintPageRanges podczas wypełniania okna dialogowego drukowania.
/ViewerPreferences, PDFium zwraca domyślną wartość ze specyfikacji True (AppDefault).ViewerPreference['PrintScaling'], który zwraca dosłowny token./None.PrintScaling = False, pozostaw domyślny przycisk opcji, gdy True.
// Apply the document's preferred scaling mode to the printer setup.
begin
if Pdf1.PrintScaling then
begin
radioFit.Checked := True;
Memo1.Lines.Add('PDF prefers app-default (fit to page) scaling');
end
else
begin
radioActualSize.Checked := True;
Memo1.Lines.Add('PDF requests actual-size print (no scaling)');
end;
end;