Redimensionar documento PDF

Você pode alterar o tamanho do documento escalando automaticamente o conteúdo em suas páginas. Você pode escalar o documento inteiro ou páginas específicas. Existem três métodos disponíveis:

  • 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)

Descrição da Classe de Opções

Os parâmetros de redimensionamento são definidos pela classe de opções — PdfFileEditor.ContentsResizeParameters.

Propósito

  • Configurar margens ao redor do conteúdo, dimensões do conteúdo alvo e dimensões da página.
  • Suporte para unidades absolutas e porcentagens.
  • Ajustar opcionalmente o MediaBox para corresponder ao CropBox durante o redimensionamento.

Entidades Principais

ContentsResizeParameters

Um contêiner de parâmetros.

  • Propriedades:

    • ChangeMediaBox: quando habilitado, o MediaBox é ajustado para o CropBox atual durante o redimensionamento.
    • LeftMargin, RightMargin, TopMargin, BottomMargin: margens ao redor do conteúdo (absoluto ou percentual).
    • ContentsWidth, ContentsHeight: tamanho da área de conteúdo alvo (absoluto ou percentual).
  • Métodos de configuração estática (criar um novo objeto ContentsResizeParameters):

    • Margins(left, right, top, bottom): margens em unidades absolutas da página.
    • MarginsPercent(left, right, top, bottom): margens em porcentagens.
    • ContentSize(width, height): tamanho do conteúdo alvo em unidades absolutas.
    • ContentSizePercent(width, height): tamanho do conteúdo alvo em porcentagens.
    • PageResize(width, height): alterar o tamanho da página em unidades absolutas.
    • PageResizePct(widthPct, heightPct): alterar o tamanho da página em porcentagens.

Você pode criar um objeto ContentsResizeParameters usando qualquer um dos métodos estáticos acima e, em seguida, ajustar seus campos adicionalmente.

ContentsResizeValue

Um contêiner universal para um parâmetro numérico.

  • Tipos de valor:

    • Absoluto (Units)
    • Porcentagem (Percents)
    • Automático (Auto)
  • Campos/flags principais:

    • Value: o valor numérico.
    • IsPercent: indica a interpretação percentual; se false — valor absoluto.
  • Métodos de fábrica:

    • Units(value): criar um valor absoluto.
    • Percents(value): criar um valor percentual.
    • Auto(): marcar o valor para cálculo automático.

Recomendações de Uso

  • Quando as margens ao redor do conteúdo são importantes — use Margins ou MarginsPercent.
  • Quando você precisa que o conteúdo corresponda a dimensões específicas — use ContentSize ou ContentSizePercent.
  • Quando você precisa alterar o tamanho da página em si — use PageResize ou PageResizePct.
  • Você pode combinar valores absolutos e percentuais.
  • Habilite ChangeMediaBox se precisar alinhar a geometria da página: o MediaBox será definido para o CropBox atual.
  • Marque os parâmetros como Auto quando quiser delegar o cálculo ao algoritmo.

Exemplos

Exemplo de redimensionamento de uma página

Aumentar as margens da página em 10% em todos os lados:

Definir o tamanho do conteúdo para 500 x 700 em unidades de página e deixar as margens como automáticas:

Escalar a página em 120% de largura e 110% de altura:

Notas

  • As porcentagens são interpretadas em relação ao tamanho original correspondente.
  • Os valores absolutos são especificados em unidades de página (por exemplo, pontos).
  • Quando as margens e o tamanho do conteúdo alvo são definidos juntos, os valores finais são calculados considerando todas as restrições; parâmetros não especificados podem ser calculados automaticamente.