/ViewerPreferences /Duplex ヒントのデコード値 — PDF 作成者が印刷ダイアログで既定にしたい simplex / 両面用紙取り扱いモードproperty PrintPaperHandling: TPrintPaperHandling; // read only
/ViewerPreferences の /Duplex エントリはプリンターが文書の用紙をどう扱うべきかを推奨します(PDF 32000-1 § 12.2 表 150)。PDFium は名前付きトークンをデコードし、TPrintPaperHandling 列挙値として公開します:
phUndefined — エントリがありません。「プリンター/ビューアーの既定を使う」として扱いますphSimplex — /Simplex。片面印刷phDuplexFlipShortEdge — /DuplexFlipShortEdge。両面印刷、ページは短辺に沿って反転します(横置きノートやカレンダーの典型)phDuplexFlipLongEdge — /DuplexFlipLongEdge。両面印刷、ページは長辺に沿って反転します(標準の縦置き本スタイルの製本)他の印刷関連プロパティと同様、これは作成者がファイルへ組み込んだヒントであり、PDFium は強制しません。設定を尊重するには印刷レイヤーが値をプリンタードライバーへ転送する必要があります。Windows GDI では StartDoc の前に SetPdfPrintPaperHandlingDevMode を呼び出して DEVMODE.dmFields と DEVMODE.dmDuplex を DMDUP_SIMPLEX、DMDUP_VERTICAL(長辺)、DMDUP_HORIZONTAL(短辺)に設定します
このプロパティを PrintScaling、PrintCopies、PrintPageRanges と組み合わせて、文書の印刷設定すべてが一貫した既定セットとして印刷ダイアログへ反映されるようにします
phUndefined になりますphSimplex へフォールバックし、ユーザーが上書きできるようにしてください
// 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;