/ViewerPreferences /PrintScaling
del documento — indica si el autor del PDF quiere que el cuadro de diálogo de impresión del visor use por defecto
el ajuste al tamaño de página definido por la aplicación o que imprima las páginas al tamaño originalproperty PrintScaling: Boolean; // read only
La entrada /PrintScaling de /ViewerPreferences toma uno de
dos valores con nombre según PDF 32000-1 § 12.2 Table 150:
/AppDefault — deja que el visor aplique su comportamiento de escalado habitual
(normalmente "Ajustar al área imprimible"). PDFium Delphi Component lo asigna a
True/None — el documento se compuso al tamaño físico previsto
y debe enviarse a la impresora 1:1, sin reducción ni ajuste. PDFium Delphi Component lo asigna a
FalseUse la propiedad al conectar un flujo de impresión de PDF para que el usuario no tenga que adivinar
lo que el documento espera. Los formularios, las facturas de formato fijo, las etiquetas con códigos de barras
y las pruebas de preimpresión suelen establecer /None para que los códigos de barras y las medidas
salgan exactamente al tamaño correcto; los folletos y los documentos encuadernados suelen dejar el
valor predeterminado para ajustarse a cualquier tamaño de papel
Esto es solo una pista — PDFium no la aplica durante la rasterización. Su
capa de impresión (VCL Printer, GDI StartDoc o cualquier otra) es
lo que realmente escala (o se niega a escalar) el mapa de bits renderizado o el flujo PostScript
Combínela con PrintPaperHandling,
PrintCopies y
PrintPageRanges al llenar un cuadro de diálogo de impresión
/ViewerPreferences, PDFium devuelve el valor predeterminado de la especificación True (AppDefault)ViewerPreference['PrintScaling'], que devuelve el token literal/NonePrintScaling = False, y deje el botón de radio predeterminado cuando sea 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;