/ViewerPreferences /Duplex del documento, cioè la modalità di gestione carta simplex o duplex che l'autore del PDF vorrebbe come valore predefinito nella finestra di stampaproperty PrintPaperHandling: TPrintPaperHandling; // read only
La voce /Duplex di /ViewerPreferences raccomanda come la
stampante dovrebbe gestire la carta per il documento (PDF 32000-1 § 12.2, Tabella 150). PDFium
decodifica il token nominale e lo espone come valore enum TPrintPaperHandling:
phUndefined — la voce è assente. Trattalo come "usa il predefinito della stampante/viewer"phSimplex — /Simplex. Stampa su singola facciataphDuplexFlipShortEdge — /DuplexFlipShortEdge. Stampa su due facciate, le pagine si girano sul lato corto (tipico di block notes e calendari in orizzontale)phDuplexFlipLongEdge — /DuplexFlipLongEdge. Stampa su due facciate, le pagine si girano sul lato lungo (la rilegatura standard in verticale alla maniera dei libri)Come le altre proprietà legate alla stampa è un hint inciso nel file dall'
autore; PDFium non lo impone. Per onorare la preferenza il tuo layer di stampa deve
inoltrare il valore al driver della stampante. Con GDI Windows chiama
SetPdfPrintPaperHandlingDevMode per impostare DEVMODE.dmFields e
DEVMODE.dmDuplex su DMDUP_SIMPLEX,
DMDUP_VERTICAL (lato lungo) o DMDUP_HORIZONTAL (lato corto)
prima di StartDoc
Abbina questa proprietà a PrintScaling, PrintCopies e PrintPageRanges così tutte le preferenze di stampa del documento popolano il tuo dialogo di stampa come un set predefinito coerente
phUndefinedphSimplex e lascia all'utente la scelta
// 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;