Redimensionar documento PDF

Puedes cambiar el tamaño del documento escalando automáticamente el contenido en sus páginas. Puedes escalar todo el documento o páginas específicas. Hay tres métodos disponibles:

  • bool PdfFileEditor.ResizeContents(string source, string destination, int[] pages, ContentsResizeParameters parameters)
  • void PdfFileEditor.ResizeContents(Document source, int[] pages, ContentsResizeParameters parameters)
  • void PdfFileEditor.ResizeContents(Document source, ContentsResizeParameters parameters)

Descripción de la Clase de Opciones

Los parámetros de redimensionamiento se definen mediante la clase de opciones — PdfFileEditor.ContentsResizeParameters.

Propósito

  • Configurar márgenes alrededor del contenido, dimensiones del contenido objetivo y dimensiones de la página.
  • Soporte para unidades absolutas y porcentajes.
  • Ajustar opcionalmente el MediaBox para que coincida con el CropBox durante el redimensionamiento.

Entidades Principales

ContentsResizeParameters

Un contenedor de parámetros.

  • Propiedades:

    • ChangeMediaBox: cuando está habilitado, el MediaBox se ajusta al CropBox actual durante el redimensionamiento.
    • LeftMargin, RightMargin, TopMargin, BottomMargin: márgenes alrededor del contenido (absoluto o porcentaje).
    • ContentsWidth, ContentsHeight: tamaño del área de contenido objetivo (absoluto o porcentaje).
  • Métodos de configuración estática (crear un nuevo objeto ContentsResizeParameters):

    • Margins(left, right, top, bottom): márgenes en unidades absolutas de página.
    • MarginsPercent(left, right, top, bottom): márgenes en porcentajes.
    • ContentSize(width, height): tamaño del contenido objetivo en unidades absolutas.
    • ContentSizePercent(width, height): tamaño del contenido objetivo en porcentajes.
    • PageResize(width, height): cambiar el tamaño de la página en unidades absolutas.
    • PageResizePct(widthPct, heightPct): cambiar el tamaño de la página en porcentajes.

Puedes crear un objeto ContentsResizeParameters utilizando cualquiera de los métodos estáticos anteriores y luego ajustar adicionalmente sus campos.

ContentsResizeValue

Un contenedor universal para un parámetro numérico.

  • Tipos de valor:

    • Absoluto (Units)
    • Porcentaje (Percents)
    • Automático (Auto)
  • Campos/flags clave:

    • Value: el valor numérico.
    • IsPercent: indica la interpretación porcentual; si false — valor absoluto.
  • Métodos de fábrica:

    • Units(value): crear un valor absoluto.
    • Percents(value): crear un valor porcentual.
    • Auto(): marcar el valor para cálculo automático.

Recomendaciones de Uso

  • Cuando los márgenes alrededor del contenido son importantes — usa Margins o MarginsPercent.
  • Cuando necesitas que el contenido coincida con dimensiones específicas — usa ContentSize o ContentSizePercent.
  • Cuando necesitas cambiar el tamaño de la página en sí — usa PageResize o PageResizePct.
  • Puedes combinar valores absolutos y porcentuales.
  • Habilita ChangeMediaBox si necesitas alinear la geometría de la página: el MediaBox se establecerá en el CropBox actual.
  • Marca los parámetros como Auto cuando quieras delegar el cálculo al algoritmo.

Ejemplos

Ejemplo de redimensionar una página

Aumentar los márgenes de la página en un 10% en todos los lados:

Establecer el tamaño del contenido a 500 x 700 en unidades de página y dejar los márgenes como automáticos:

Escalar la página en un 120% de ancho y un 110% de altura:

Notas

  • Los porcentajes se interpretan en relación con el tamaño original correspondiente.
  • Los valores absolutos se especifican en unidades de página (por ejemplo, puntos).
  • Cuando los márgenes y el tamaño del contenido objetivo se establecen juntos, los valores finales se calculan considerando todas las restricciones; los parámetros no especificados pueden ser calculados automáticamente.