/ViewerPreferences /PrintScaling — indique si l’auteur du PDF veut que la boîte de dialogue d’impression de la visionneuse propose par défaut la mise à l’échelle « ajuster à la page » définie par l’application, ou l’impression des pages à leur taille d’origineproperty PrintScaling: Boolean; // read only
L'entrée /PrintScaling de /ViewerPreferences prend l'une des deux valeurs nommées prévues par PDF 32000-1 § 12.2 Table 150 :
/AppDefault — laisser la visionneuse appliquer son comportement de mise à l'échelle habituel (souvent « Ajuster à la zone imprimable »). PDFium Delphi Component mappe cela sur True/None — le document a été mis en page à la taille physique prévue et doit être envoyé à l'imprimante en 1:1, sans réduction ni ajustement. PDFium Delphi Component mappe cela sur FalseUtilisez cette propriété lors de la construction d'un pipeline d'impression PDF afin que l'utilisateur n'ait pas à deviner ce que le document attend. Les formulaires, les factures à format fixe, les étiquettes avec codes-barres et les épreuves de prépresse définissent généralement /None pour que les codes-barres et les mesures sortent exactement à la bonne taille ; les brochures et les documents reliés laissent généralement la valeur par défaut pour qu'ils s'adaptent à n'importe quel format de papier
Il ne s'agit que d'une indication — PDFium ne l'impose pas pendant la rastérisation. Votre couche d'impression (VCL Printer, GDI StartDoc ou autre) est ce qui met réellement à l'échelle, ou refuse de mettre à l'échelle, le bitmap rendu ou le flux PostScript. Associez-la à PrintPaperHandling, PrintCopies et PrintPageRanges lors du remplissage d'une boîte de dialogue d'impression
/ViewerPreferences, PDFium renvoie la valeur par défaut de spec True (AppDefault)ViewerPreference['PrintScaling'], qui renvoie le jeton littéral/NonePrintScaling = False, laisser le bouton radio par défaut lorsque True
// Apply the document's preferred scaling mode to the printer setup.
begin
if Pdf1.PrintScaling then
begin
radioFit.Checked := True;
Memo1.Lines.Add('PDF prefers app-default (fit to page) scaling');
end
else
begin
radioActualSize.Checked := True;
Memo1.Lines.Add('PDF requests actual-size print (no scaling)');
end;
end;