IRONSOFTWAREHOME

Como comprimir PDFs em C# usando IronPDF

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

IronPDF comprime PDFs em C# através do método CompressAndSaveAs, que recodifica imagens incorporadas como JPEG e opcionalmente remove a árvore estrutural do PDF para reduzir o tamanho do arquivo em uma única chamada. Os métodos acompanhantes CompressPdfToBytes e CompressPdfToStream fazem o mesmo trabalho em memória quando você nunca quer tocar no disco.

Imagens geralmente representam a maior parte do tamanho de um PDF, e documentos pesados em tabelas têm uma árvore de estrutura que adiciona peso adicional. IronPDF direciona ambos, então a mesma chamada funciona em PDFs carregados do disco ou mantidos em um fluxo de memória.

Início rápido: Comprima arquivos PDF com o IronPDF

Carregue seu PDF com PdfDocument.FromFile e chame CompressAndSaveAs para recodificar suas imagens e gravar a cópia reduzida em um passo. O segundo argumento é a qualidade JPEG.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copie e execute este trecho de código.

    PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40);
    C#
  3. 3Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
    arrow pointer

Observe: Métodos anteriores para compressão como CompressImages, CompressStructTree, e Compress(CompressionOptions) estão obsoletos.

Como comprimir imagens em PDFs?

Passe um valor quality JPEG como o segundo argumento para CompressAndSaveAs e o IronPDF recodifica cada imagem incorporada com essa qualidade. Os valores variam de 0 (máxima compressão) a 100 (mínima perda), e o motor subjacente decide como cada valor mapeia para a saída. Este é o método a que recorrer sempre que um documento contém imagens incorporadas.

Como guia aproximado:

  • 90 e acima: alta qualidade
  • 80 a 90: qualidade média
  • 70 a 80: baixa qualidade

Um número menor comprime mais, mas pode introduzir artefatos visíveis, e o quanto a clareza diminui depende da imagem de origem, então teste algumas configurações em seu próprio conteúdo para encontrar o equilíbrio desejado.

Entrada

using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Quality 40 re-encodes every embedded image as a low-quality JPEG, which is
// where most of the file-size saving comes from in image-heavy PDFs
pdf.CompressAndSaveAs("compressed.pdf", 40);
C#

Saída

Que resultados posso esperar da compressão de imagens?

Reduzido em 39.24% em uma renderização da Wikipedia.

Comparação de arquivos mostrando compressed.pdf (449 KB) versus nonCompress.pdf (739 KB), demonstrando os resultados da compressão de imagem.

Como faço para comprimir a estrutura em árvore de um PDF?

Passe removeStructureTree: true como o terceiro argumento para CompressAndSaveAs para remover a estrutura da árvore que o Chrome Engine escreve em um PDF. A economia é maior em PDFs do motor Chrome que possuem dados extensos de tabelas. Alguns motores de renderização não emitem tal estrutura, o que deixa nada para o recurso remover.

Remover a árvore pode enfraquecer a seleção e o destaque de texto, portanto, pondere isso contra o ganho de tamanho se leitores posteriormente precisarem extrair texto e imagens do resultado.

Teste CompressAndSaveAs com remoção de estrutura de árvore usando este PDF com dados de tabela.

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("table.pdf");

// Pass null quality to skip image compression and true to drop the structure
// tree, which is the bulk of the size in table-heavy Chrome-rendered PDFs
pdf.CompressAndSaveAs("compressedTable.pdf", null, true);
C#

Que redução no tamanho do arquivo a compressão de estrutura em árvore pode alcançar?

Reduzido em 67.90%. A figura aumenta conforme o PDF de tabela cresce.

Comparação de arquivos mostrando compressedTable.pdf (52 KB) versus table.pdf (162 KB), demonstrando os resultados da compressão.

Minha biblioteca favorita desse tipo é o IronPDF. Ele permite a manipulação rápida e eficiente de arquivos PDF. Além disso, possui muitos recursos valiosos, como a exportação para o formato PDF/A e a assinatura digital de documentos PDF.

Milan Jovanovic

Microsoft MVP

Veja o estudo de caso

Com o IronOCR, podemos economizar US$ 40.000 por ano em processamento manual, ao mesmo tempo que aumentamos a produtividade e liberamos recursos para tarefas de alto impacto. Eu o recomendo fortemente.

Brent Matzelle

Diretor de Tecnologia, OPYN

Veja o estudo de caso

O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.

David Jones

Engenheiro(a) de Software Líder, Agorus Build

Veja o estudo de caso

Como posso aplicar os dois métodos de compressão simultaneamente?

Forneça um valor quality e defina removeStructureTree para true na mesma chamada CompressAndSaveAs para encolher ambas as fonte de inchaço de uma vez. Este emparelhamento se justifica em documentos que misturam imagens com dados estruturados, como relatórios com gráficos ou faturas com tabelas incorporadas.

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Shrink both sources of bloat in one pass: re-encode images at quality 80
// and strip the structure tree (true) for the largest size reduction
pdf.CompressAndSaveAs("compressed.pdf", 80, true);
C#

Quais Parâmetros CompressAndSaveAs Aceita?

  • outputPath (string): o caminho do arquivo onde o PDF compactado é escrito.

  • quality (int?, 0 a 100): qualidade JPEG aplicada a cada imagem incorporada. Valores mais baixos geram arquivos menores. Passe null para pular a compressão de imagem totalmente.

  • removeStructureTree (bool, padrão false): quando true, remove a estrutura da árvore do PDF para reduzir ainda mais o tamanho do arquivo. Mais eficaz para PDFs gerados em HTML com tabelas.

Deixe o caso de uso definir o grau. Cópias arquivais muitas vezes favorecem a qualidade sobre o tamanho, enquanto a distribuição na web recompensa o arquivo menor. A mesma troca se aplica quando você comprime documentos compatíveis com PDF/A, onde a fidelidade da imagem pode ser a prioridade.

Como Obtenho Controle Detalhado Sobre a Compressão?

Para a maioria dos documentos a chamada com dois argumentos é suficiente, mas arquivos pesados em imagens e orçamentos estritos de tamanho às vezes precisam de mais controle. Passe um objeto AdvancedCompressionOptions para CompressAndSaveAs para ajustar o pipeline de compressão, incluindo amostragem de DPI de imagem, qualidade de recodificação JPEG e nível de compressão zlib. A sobrecarga mais simples CompressAndSaveAs(outputPath, quality, removeStructureTree) ainda funciona inalterada e produz o mesmo resultado de antes.

using IronPdf;

var pdf = PdfDocument.FromFile("input.pdf");

// Web or email: strong size reduction
pdf.CompressAndSaveAs("compressed.pdf", new AdvancedCompressionOptions
{
    JpegQuality = 70,
    TargetImageDpi = 150,
    RemoveStructureTree = true
});

// Print quality: minimal quality loss
pdf.CompressAndSaveAs("print.pdf", new AdvancedCompressionOptions
{
    JpegQuality = 90,
    TargetImageDpi = 300
});
C#

As duas propriedades que movem a agulha mais são JpegQuality e TargetImageDpi:

  • JpegQuality (int?, 1 a 100, padrão null): recodifica as imagens com essa qualidade JPEG. Deixe null para pular a recodificação de imagem inteiramente.
  • TargetImageDpi (int?, padrão 150): faz amostragem de imagens cuja DPI efetiva excede esse valor antes da recodificação. Defina para null ou 0 para desativar a amostragem e manter a resolução original.

Valores recomendados para JpegQuality (aplica-se apenas quando definido):

ValorCaso de uso
null (padrão)Sem recodificação de imagem
95Arquivamento, mínimos artefatos
85Alta qualidade
70Equilibrado, bom para uso geral
50Web ou e-mail, arquivos menores com artefatos visíveis

Valores recomendados para TargetImageDpi (com perdas):

ValorCaso de uso
300Qualidade de impressão, sem perdas à vista a distância normal de visualização
200Nítida em telas de alta DPI e retina
150 (padrão)Melhor equilíbrio de tamanho e qualidade para tela e e-mail
96Agressivo, texto suave mas ainda legível
null ou 0Desativado, preserva a resolução original
Observe: O downsampling TargetImageDpi é com perdas: uma vez que uma imagem é amostrada, sua resolução original não pode ser restaurada. Decida de antemão se você deseja redução de resolução ou recodificação de qualidade apenas, e defina TargetImageDpi adequadamente.

Como faço para compactar PDFs sem salvá-los no disco?

Respostas de API, funções em nuvem e anexos de e-mail raramente precisam de um PDF comprimido no disco. CompressPdfToBytes retorna o resultado como um array de bytes, então você decide para onde os bytes irão em seguida.

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Return the compressed PDF as bytes so it can go straight into an HTTP
// response, a database varbinary column, or a queue message with no temp file
byte[] compressedBytes = pdf.CompressPdfToBytes();

File.WriteAllBytes("compressed.pdf", compressedBytes);
C#

Se você precisar de um Stream em vez de um array de bytes, chame CompressPdfToStream e copie-o para o seu destino. Isso se adequa ao canalizar a saída para um corpo de resposta HTTP, um upload de armazenamento em nuvem ou qualquer fluxo de trabalho baseado em fluxo.

using IronPdf;
using System.IO;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Stream output so the compressed bytes can be piped straight to an HTTP
// response or cloud upload without first buffering the whole file as byte[]
using Stream compressedStream = pdf.CompressPdfToStream();

// CompressPdfToStream returns a read-only Stream, so copy it to the destination
using FileStream fileStream = File.Create("compressed.pdf");
compressedStream.CopyTo(fileStream);
C#

Quais Opções CompressionMode Estão Disponíveis?

Ambos CompressPdfToBytes e CompressPdfToStream aceitam um argumento opcional CompressionMode que decide como o trabalho é feito. Os alvos de implantação diferem em permitir ou não acesso ao disco, e o modo permite escolher a troca certa:

ModoAcesso ao discoReamostragem de imagemTamanho de saída
Automatic (padrão)Tenta o disco, recorre à memóriaQuando o disco está disponívelO menor onde permitido
FastMemoryNenhumNãoMaior
HighQualityDiretório temporário exigidoSimO menor

Automatic tenta HighQuality primeiro e cai para FastMemory quando o diretório temporário é restrito. O exemplo abaixo força HighQuality para o menor resultado, o que precisa de acesso de gravação ao diretório temp do sistema em tempo de execução.

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// HighQuality resamples images using the system temp directory, so it produces
// the smallest output but needs write access to that directory at runtime
byte[] compressedBytes = pdf.CompressPdfToBytes(50, false, CompressionMode.HighQuality);

File.WriteAllBytes("compressed.pdf", compressedBytes);
C#

Saída

CompressPdfToBytes e CompressPdfToStream agora estão disponíveis em todas as plataformas IronPDF, incluindo Java, Node.js e Python.

Conclusão

Agora você tem um método, CompressAndSaveAs, que recodifica imagens e remove a estrutura da árvore, mais CompressPdfToBytes e CompressPdfToStream para o mesmo trabalho em memória sob um CompressionMode escolhido. Um próximo passo natural é transformar essas páginas redimensionadas em miniaturas com rasterização de PDF.

Perguntas frequentes

Qual a redução máxima possível no tamanho de um arquivo PDF com a compressão?

Os resultados variam de acordo com o conteúdo. Nos exemplos mostrados, a compressão de imagem reduziu um arquivo em 39,24% e a remoção da árvore de estrutura reduziu um PDF pesado em tabelas em 67,90%. Documentos pesados em imagens e tabelas veem as maiores economias.

Como o IronPDF comprime PDFs em C#?

O IronPDF lida com a compressão através de um único método — CompressAndSaveAs . Ele reduz o tamanho das imagens incorporadas usando uma qualidade JPEG configurável (0–100) e pode opcionalmente remover a árvore de estrutura interna do PDF definindo removeStructureTree: true , o que é especialmente eficaz para documentos com muitas tabelas.

Quais níveis de qualidade devo usar para a compressão JPEG em PDFs?

O IronPDF suporta compressão JPEG com qualidade de 1% a 100%. Os níveis recomendados são: 90% ou mais para alta qualidade, 80% a 90% para qualidade média e 70% a 80% para baixa qualidade. A configuração ideal depende do equilíbrio entre o tamanho do arquivo e os requisitos de qualidade visual.

Posso comprimir um PDF com apenas uma linha de código?

Sim, o IronPDF permite a compressão de PDFs com uma única linha de código: `PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40);` Isso carrega um PDF, comprime as imagens com 40% de qualidade e salva o resultado.

A compressão funciona com PDFs criados a partir de HTML?

Sim, a compressão do IronPDF funciona com PDFs criados através de vários métodos, incluindo conversões de string HTML para PDF, conversões de URL para PDF e conversões de arquivo HTML, bem como arquivos PDF existentes.

Que tipos de conteúdo se beneficiam mais da compressão de PDF?

As imagens geralmente ocupam a maior parte do tamanho dos arquivos PDF, tornando os documentos com muitas imagens candidatos ideais para compressão. Além disso, PDFs com estruturas de tabelas complexas se beneficiam do recurso de compressão em árvore de estrutura do IronPDF.

Posso compactar um PDF sem salvá-lo no disco?

Sim, o IronPDF oferece os métodos CompressPdfToBytes e CompressPdfToStream , que retornam o PDF compactado como uma matriz de bytes ou um fluxo (Stream), respectivamente. Ambos aceitam um parâmetro opcional CompressionMode com opções para compressão Automática, FastMemory ou HighQuality.

A compressão de PDF está disponível em outras linguagens além de C#?

Sim, CompressPdfToBytes e CompressPdfToStream agora estão disponíveis em todas as plataformas IronPDF , incluindo Java, Node.js e Python.

Como obtenho controle granular sobre a compressão de PDFs em C#?

Passe um objeto AdvancedCompressionOptions para CompressAndSaveAs para ajustar o pipeline, incluindo a redução de DPI da imagem através de TargetImageDpi, qualidade de re-encode de JPEG através de JpegQuality, e o CompressionLevel do zlib. A sobrecarga original CompressAndSaveAs(outputPath, quality, removeStructureTree) ainda funciona e produz o mesmo resultado de antes.

How can I achieve fine-grained control over PDF compression in IronPDF?

For fine-grained control, IronPDF allows you to pass an `AdvancedCompressionOptions` object to the `CompressAndSaveAs` method, letting you adjust JPEG quality, image DPI downsampling, and zlib compression levels.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 20,756,830Versão:2026.7recém-lançado

Obtenha o seu GRÁTIS

Obtenha uma chave de avaliação de 30 dias instantaneamente.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.
bullet_testTeste em produção
sem marcas d'água
bullet_calendar30 dias completos
produto funcional
bullet_supportSuporte técnico 24 horas por dia,
5 dias por semana, durante o teste
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronPDF".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.7

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronPDF em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPDF.dll".

Licenças a partir de US$ 749

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.