Como definir margens de papel para impressão em C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

As margens de impressão controlam o espaço em branco entre o conteúdo do documento e as bordas da página física. Configurá-las corretamente evita texto cortado, garante layouts consistentes entre impressoras e cumpre requisitos de formatação para faturas, relatórios e documentos legais.

A classe Margins do IronPrint aceita valores em milímetros e oferece três sobrecargas de construtor — uniforme, horizontal/vertical, e por lado — para que possamos atender a qualquer requisito de layout em uma única linha. Caminhamos por cada abordagem abaixo, desde a instalação até a impressão com margens personalizadas.

Início rápido: Definir margens de papel

  1. Instalar IronPrint via NuGet: Install-Package IronPrint
  2. Adicionar using IronPrint; ao arquivo
  3. Criar um objeto PrintSettings
  4. Atribuir um valor Margins a PaperMargins (valores em milímetros)
  5. Passar as configurações para Printer.Print() com o caminho do arquivo
  1. Instale IronPrint com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPrint
  2. Copie e execute este trecho de código.

    using IronPrint;
    
    // Set 15 mm margins on all sides and print
    PrintSettings settings = new PrintSettings();
    settings.PaperMargins = new Margins(15);
    Printer.Print("report.pdf", settings);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPrint em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como posso definir margens iguais em todos os lados?

O construtor mais simples aceita um único número inteiro e o aplica uniformemente a todos os quatro lados. Passamos o valor em milímetros:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/uniform-margins.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Margins(20) define Left, Top, Right, e Bottom cada um para 20 mm. Esta é a escolha mais comum para documentos comerciais padrão, onde o espaço em branco consistente em cada borda é suficiente.

IronPrint mede margens em milímetros, o que evita a confusão da classe System.Drawing.Printing.Margins que usa centésimos de polegada. Uma margem de 25,4 mm no IronPrint é equivalente a new System.Drawing.Printing.Margins(100) — não é necessário cálculo de conversão do nosso lado.

Como definir diferentes margens para cada lado?

Quando um documento precisa de espaço extra no topo para um cabeçalho ou na parte inferior para um rodapé, usamos o construtor de quatro parâmetros:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/per-side-margins.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

A ordem dos parâmetros é left, top, right, bottom. Cada valor é independente, para que possamos criar layouts assimétricos que acomodem cabeçalhos, rodapés, bordas de encadernação ou espaço para furos. A referência da API da classe Margins documenta cada campo.

Quais opções abreviadas existem para layouts de margens comuns?

A classe Margins do IronPrint fornece dois construtores adicionais além das versões uniforme e por lado:

Abreviação Horizontal / VerticalMargins(int horizontal, int vertical) define esquerda+direita para o primeiro valor e topo+inferior para o segundo:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/shorthand-margins.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Margens zeroMargins.Zero remove todas as margens para impressão sem bordas:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/zero-margins.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Lembre-se de que a maioria das impressoras físicas impõe uma área mínima de impressão por hardware. Configurar Margins.Zero envia instruções de margem zero para o driver, mas a impressora pode ainda cortar conteúdo próximo às bordas dependendo de suas capacidades.

Como Combino Margens com Outras Configurações de Impressão?

PaperMargins é uma propriedade em PrintSettings. Podemos combiná-lo com tamanho de papel, orientação, DPI, cópias, modo de escala de cinza e seleção de impressora em um único objeto de configuração:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/combined-settings.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Para fluxos de trabalho assíncronos — WPF, MAUI, ou aplicativos web ASP.NET — substitua Printer.Print() por await Printer.PrintAsync() para evitar bloquear o thread da UI. O mesmo objeto PrintSettings funciona com ambos os métodos.

Quais são os meus próximos passos?

Cobrimos quatro maneiras de configurar margens de impressão com IronPrint: margens uniformes usando Margins(int), controle por lado com Margins(int, int, int, int), a abreviação horizontal/vertical Margins(int, int), e impressão sem bordas com Margins.Zero. Cada abordagem alimenta-se em PrintSettings.PaperMargins e funciona com ambos Printer.Print() e Printer.PrintAsync().

Para leitura adicional, explore estes recursos:

Obtenha uma licença de teste gratuita para testar cada recurso em um ambiente ao vivo, ou veja as opções de licenciamento quando estiver pronto para implantar.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 38,093 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPrint
executar um exemplo Veja seu documento chegar à impressora.