/ViewerPreferences /Duplex del documento —
el modo de manejo de papel simplex o duplex que el autor del PDF quisiera que el cuadro de diálogo de impresión
tomara por defectoproperty PrintPaperHandling: TPrintPaperHandling; // read only
La entrada /Duplex de /ViewerPreferences recomienda cómo debe
manejar la impresora el papel para el documento (PDF 32000-1 § 12.2 Table 150). PDFium
decodifica el token de nombre y lo expone como un valor de la enumeración TPrintPaperHandling:
phUndefined — la entrada está ausente. Trátelo como "usar el valor predeterminado de la impresora o del visor"phSimplex — /Simplex. Impresión de una sola caraphDuplexFlipShortEdge — /DuplexFlipShortEdge. Impresión a dos caras, las páginas se voltean por el borde corto (típico de cuadernos y calendarios estilo horizontal)phDuplexFlipLongEdge — /DuplexFlipLongEdge. Impresión a dos caras, las páginas se voltean por el borde largo (la encuadernación estándar de libro en orientación vertical)Como las demás propiedades relacionadas con impresión, esto es una pista incorporada en el archivo por el
autor; PDFium no la aplica. Para respetar la preferencia, su capa de impresión debe
reenviar el valor al controlador de la impresora. Bajo Windows GDI, llame a
SetPdfPrintPaperHandlingDevMode para establecer DEVMODE.dmFields y
DEVMODE.dmDuplex en DMDUP_SIMPLEX,
DMDUP_VERTICAL (borde largo) o DMDUP_HORIZONTAL (borde corto)
antes de StartDoc
Combine esta propiedad con PrintScaling, PrintCopies y PrintPageRanges para que todas las preferencias de impresión del documento llenen su cuadro de diálogo de impresión como un conjunto predeterminado coherente
phUndefinedphSimplex y deje que el usuario lo cambie
// 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;