/ViewerPreferences /Duplex документа —
режим обработки бумаги simplex / duplex, который автор PDF хотел бы видеть по умолчанию в диалоге печатиproperty PrintPaperHandling: TPrintPaperHandling; // read only
Запись /Duplex в /ViewerPreferences рекомендует, как
принтер должен обрабатывать бумагу для документа (PDF 32000-1 § 12.2 Table 150). PDFium
декодирует именованный токен и отдаёт как значение enum TPrintPaperHandling:
phUndefined — записи нет. Считайте "использовать умолчания принтера/ридера"phSimplex — /Simplex. Печать с одной стороныphDuplexFlipShortEdge — /DuplexFlipShortEdge. Двусторонняя печать, страницы переворачиваются по короткому краю (типично для альбомных блокнотов и календарей)phDuplexFlipLongEdge — /DuplexFlipLongEdge. Двусторонняя печать, страницы переворачиваются по длинному краю (стандартная книжная переплётка для портретных страниц)Как и остальные свойства печати, это подсказка, запечённая в файл автором;
PDFium её не принуждает. Чтобы учесть настройку, слой печати должен
передать значение драйверу принтера. Под Windows GDI вызовите
SetPdfPrintPaperHandlingDevMode, чтобы выставить DEVMODE.dmFields и
DEVMODE.dmDuplex в DMDUP_SIMPLEX,
DMDUP_VERTICAL (длинный край) или DMDUP_HORIZONTAL (короткий край)
до StartDoc
Сочетайте свойство с PrintScaling, PrintCopies и PrintPageRanges, чтобы все настройки печати документа заполнили диалог печати одним согласованным набором умолчаний
phUndefinedphSimplex и позволяйте пользователю переопределить
// Pre-select the duplex radio buttons and prepare the printer DevMode.
begin
case Pdf1.PrintPaperHandling of
phSimplex: radioSimplex.Checked := True;
phDuplexFlipLongEdge: radioDuplexLong.Checked := True;
phDuplexFlipShortEdge: radioDuplexShort.Checked := True;
else
radioPrinterDefault.Checked := True; // phUndefined
end;
if SetPdfPrintPaperHandlingDevMode(DevMode, Pdf1.PrintPaperHandling) then
ApplyPrinterDevMode(DevMode);
end;