/ViewerPreferences /Duplex hint —
the simplex / duplex paper-handling mode the PDF author would like the print dialog to default
to.property PrintPaperHandling: TPrintPaperHandling; // solo lectura
La entrada /Duplex de /ViewerPreferences recomienda cómo debe manejar el
papel la impresora para el documento (PDF 32000-1 § 12.2 Table 150). PDFium decodifica el token con
nombre y lo expone como un valor de enumeración TPrintPaperHandling:
phUndefined — la entrada no está presente. Trátalo como "usar el valor predeterminado de la impresora / visor"phSimplex — /Simplex. Impresión a una sola caraphDuplexFlipShortEdge — /DuplexFlipShortEdge. Impresión a doble cara, las páginas se giran por el borde corto (típico de cuadernos y calendarios en apaisado)phDuplexFlipLongEdge — /DuplexFlipLongEdge. Impresión a doble cara, las páginas se giran por el borde largo (la encuadernación estándar de libro en vertical)Como las demás propiedades relacionadas con la impresión, esta es una pista incrustada en el archivo por
el autor; PDFium no la hace cumplir. Para respetar la preferencia tu capa de impresión debe reenviar el valor
al controlador de impresora. En Windows GDI, llama a SetPdfPrintPaperHandlingDevMode para
establecer DEVMODE.dmFields y DEVMODE.dmDuplex en DMDUP_SIMPLEX,
DMDUP_VERTICAL (borde largo) o DMDUP_HORIZONTAL (borde corto) antes de
StartDoc
Combina esta propiedad con PrintScaling, PrintCopies y PrintPageRanges para que todas las preferencias de impresión del documento rellenen tu cuadro de impresión como un único conjunto predeterminado coherente
phUndefinedSimplex en una impresora compatible con dúplex es una solicitud válida — el documento pide explícitamente salida a una sola cara, por ejemplo un cupón desprendible o una hoja de etiquetasphSimplex y deja que el usuario lo cambie
// preseleccionar los botones de opción de dúplex y preparar el DevMode de la impresora
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;