O código para compactar PDF em C#

Biblioteca .NET de alto desempenho para otimizar o conteúdo e o tamanho de PDF, mantendo a qualidade original e os dados de linha de base

Esta é uma solução profissional para compactar PDF usando C#, F#, VB.NET. Use nossa API de otimização PDF para desenvolver software independente de plataforma de alto nível para plataformas .NET e .NET Core. Experimente online gratuitamente!

Ver trecho de código

Compactar PDF em C#

Essa C# biblioteca oferece aos desenvolvedores a capacidade de compactar de forma rápida e eficiente PDF documentos de forma programática. Obtenha facilmente saídas PDF otimizadas para impressão, arquivamento ou compartilhamento pela rede. É uma solução independente de processamento de PDF documentos para C# que não requer a instalação de nenhum software de terceiros.

Reduza o tamanho de um PDF usando C#

Nosso produto fornece aos desenvolvedores C# uma API integrada para reduzir o tamanho dos PDF arquivos. A compactação de PDF é realizada em duas passagens. Durante a primeira passagem, todas as páginas do PDF são convertidas para o formato de imagem. Nosso produto usa algoritmos de compactação de imagem adaptáveis e altamente eficientes que permitem aos desenvolvedores obter uma saída compacta em PDF, mantendo a qualidade ideal do documento. Na próxima passagem, a sequência de imagens é compactada e combinada para formar o conteúdo de um novo PDF arquivo otimizado.

Compressão de PDF facilitada com 'Aspose.Words for .NET'. O exemplo a seguir demonstra como reduzir o tamanho de um PDF arquivo em C#:

Exemplo de código em C# para compactar PDF arquivos
Carregue um arquivo que você deseja otimizar/compactar
Código de execução
Selecione o formato de destino na lista
50%
using Aspose.Words;
using Aspose.Words.Pdf2Word.FixedFormats;

using var pdfStream = File.OpenRead("Input.pdf");

var renderer = new PdfFixedRenderer();
var pdfReadOptions = new PdfFixedOptions
{
    ImageFormat = FixedImageFormat.Jpeg,
    JpegQuality = 50
};

const double maxPageDimension = 1584;
var pagesStream = renderer.SavePdfAsImages(pdfStream, pdfReadOptions);

var builder = new DocumentBuilder();
for (var i = 0; i < pagesStream.Count; ++i)
{
    // Defina o tamanho máximo da página para evitar o dimensionamento da imagem da página atual.
    var pageSetup = builder.PageSetup;
    SetPageSize(pageSetup, maxPageDimension, maxPageDimension);

    var pageImage = builder.InsertImage(pagesStream[i]);

    SetPageSize(pageSetup, pageImage.Width, pageImage.Height);
    pageSetup.TopMargin = 0;
    pageSetup.LeftMargin = 0;
    pageSetup.BottomMargin = 0;
    pageSetup.RightMargin = 0;

    if (i != pagesStream.Count - 1)
        builder.InsertBreak(BreakType.SectionBreakNewPage);
}

var saveOptions = new PdfSaveOptions
{
    CacheBackgroundGraphics = true
};

builder.Document.Save("Output.pdf", saveOptions);

private void SetPageSize(PageSetup pageSetup, double width, double height)
{
    pageSetup.PageWidth = width;
    pageSetup.PageHeight = height;
}
using Aspose.Words; var doc = new Document("Input.pdf"); doc.Cleanup(); var nodes = doc.GetChildNodes(NodeType.Shape, true); foreach (Shape shape in nodes) { if (shape.IsImage) { // Cabe ao desenvolvedor escolher a biblioteca para compressão de imagem. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Compacta a imagem e a define de volta para a forma. shape.ImageData.SetImage("yourCompressedImage"); } } var saveOptions = new PdfSaveOptions { CacheBackgroundGraphics = true }; doc.Save("Output.pdf", saveOptions); using Aspose.Words; var doc = new Document("Input.pdf"); doc.Cleanup(); var nodes = doc.GetChildNodes(NodeType.Shape, true); foreach (Shape shape in nodes) { if (shape.IsImage) { // Cabe ao desenvolvedor escolher a biblioteca para compressão de imagem. using var image = Image.Fromstream(shape.ImageData.ToStream()); // ... // Compacta a imagem e a define de volta para a forma. shape.ImageData.SetImage("yourCompressedImage"); } } doc.Save("Output.pdf"); using Aspose.Words; var doc = new Document("Input.pdf"); doc.Cleanup(); var nodes = doc.GetChildNodes(NodeType.Shape, true); foreach (Shape shape in nodes) { if (shape.IsImage) { // Cabe ao desenvolvedor escolher a biblioteca para compressão de imagem. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Compacta a imagem e a define de volta para a forma. shape.ImageData.SetImage("yourCompressedImage"); } } var saveOptions = new OoxmlSaveOptions { CompressionLevel = CompressionLevel.Maximum }; doc.Save("Output.pdf", saveOptions); using Aspose.Words; var doc = new Document(); var builder = new DocumentBuilder(doc); var shape = builder.InsertImage("Input.pdf"); // Atualiza as configurações da página para cortar o documento para caber no tamanho da imagem. var pageSetup = builder.PageSetup; pageSetup.PageWidth = shape.Width; pageSetup.PageHeight = shape.Height; pageSetup.TopMargin = 0; pageSetup.LeftMargin = 0; pageSetup.BottomMargin = 0; pageSetup.RightMargin = 0; var saveOptions = new ImageSaveOptions(SaveFormat.Pdf) { }; doc.Save("Output.pdf", saveOptions); using Aspose.Words; using Aspose.Words.Pdf2Word.FixedFormats; using var pdfStream = File.OpenRead("Input.pdf"); var renderer = new PdfFixedRenderer(); var pdfReadOptions = new PdfFixedOptions { ImageFormat = FixedImageFormat.Jpeg, JpegQuality = 50 }; const double maxPageDimension = 1584; var pagesStream = renderer.SavePdfAsImages(pdfStream, pdfReadOptions); var builder = new DocumentBuilder(); for (var i = 0; i < pagesStream.Count; ++i) { // Defina o tamanho máximo da página para evitar o dimensionamento da imagem da página atual. var pageSetup = builder.PageSetup; SetPageSize(pageSetup, maxPageDimension, maxPageDimension); var pageImage = builder.InsertImage(pagesStream[i]); SetPageSize(pageSetup, pageImage.Width, pageImage.Height); pageSetup.TopMargin = 0; pageSetup.LeftMargin = 0; pageSetup.BottomMargin = 0; pageSetup.RightMargin = 0; if (i != pagesStream.Count - 1) builder.InsertBreak(BreakType.SectionBreakNewPage); } var saveOptions = new PdfSaveOptions { CacheBackgroundGraphics = true }; builder.Document.Save("Output.pdf", saveOptions); private void SetPageSize(PageSetup pageSetup, double width, double height) { pageSetup.PageWidth = width; pageSetup.PageHeight = height; }
Código de execução

Como compactar PDF

  1. Instale Aspose.Words for .NET.
  2. Adicione uma referência de biblioteca (importe a biblioteca) ao seu projeto C#.
  3. Abra o arquivo de origem PDF em C#.
  4. Compacte PDF sem perder qualidade.
  5. Chame o método Document.Cleanup(). O código resultante pode variar dependendo do formato do arquivo de saída.
  6. Obtenha o resultado compactado como um PDF arquivo.

C# biblioteca para otimizar e compactar PDF arquivos

Existem três opções alternativas para instalar "Aspose.Words for .NET" em seu sistema. Escolha um que corresponda às suas necessidades e siga as instruções passo a passo:

Requisitos de sistema

Nosso produto é totalmente multiplataforma e oferece suporte a todas as principais implementações .NET:

  • .NET ≥ 5.0
  • .NET Core ≥ 2.0
  • .NET Standard ≥ 2.0
  • .NET Framework ≥ 3.5
  • MonoMac
  • MonoAndroid
  • Xamarin

Como o código .NET não depende do hardware ou sistema operacional subjacente, mas apenas de uma Máquina Virtual, você está livre para desenvolver qualquer tipo de software para Windows, macOS, Android, iOS e Linux. Apenas certifique-se de ter instalado a versão correspondente do .NET Framework, .NET Core, Windows Azure, Mono ou Xamarin.

Recomendamos o uso de ambientes de desenvolvimento integrados Microsoft Visual Studio, Xamarin e MonoDevelop para criar aplicativos C#, F#, VB.NET.

Para obter mais detalhes, consulte a documentação do produto.

Outras otimizações de formato de arquivo compatíveis

Você pode otimizar arquivos em muitos outros formatos de arquivo:

5%

Inscreva-se para receber atualizações do produto Aspose

Receba boletins e ofertas mensais diretamente em sua caixa de correio.

© Aspose Pty Ltd 2001-2024. Todos os direitos reservados.