/ViewerPreferences /Duplex do documento —
o modo simplex / duplex de manuseio de papel que o autor do PDF gostaria que o diálogo de impressão
usasse por padrãoproperty PrintPaperHandling: TPrintPaperHandling; // somente leitura
A entrada /Duplex de /ViewerPreferences recomenda como a
impressora deve manusear o papel para o documento (PDF 32000-1 § 12.2 Table 150). O PDFium
decodifica o token nomeado e o expõe como um valor de enum TPrintPaperHandling:
phUndefined — a entrada está ausente. Trate como "usar o padrão da impressora / do visualizador"phSimplex — /Simplex. Impressão em um só ladophDuplexFlipShortEdge — /DuplexFlipShortEdge. Impressão em dois lados, as páginas viram pela borda curta (típico de cadernos e calendários estilo paisagem)phDuplexFlipLongEdge — /DuplexFlipLongEdge. Impressão em dois lados, as páginas viram pela borda longa (a encadernação padrão estilo livro em retrato)Como as outras propriedades relacionadas a impressão, esta é uma dica embutida no arquivo pelo
autor; o PDFium não a impõe. Para honrar a preferência, sua camada de impressão deve
encaminhar o valor ao driver da impressora. No Windows GDI, chame
SetPdfPrintPaperHandlingDevMode para definir DEVMODE.dmFields e
DEVMODE.dmDuplex como DMDUP_SIMPLEX,
DMDUP_VERTICAL (borda longa) ou DMDUP_HORIZONTAL (borda curta)
antes de StartDoc
Combine esta propriedade com PrintScaling, PrintCopies e PrintPageRanges para que todas as preferências de impressão do documento preencham seu diálogo de impressão como um conjunto padrão coerente
phUndefinedphSimplex e deixe o usuário alterar
// 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;