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!
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.
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#:
dotnet add package Aspose.Words
Cópia de
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");
var saveOptions = new ImageSaveOptions(SaveFormat.Pdf)
{
};
shape.GetShapeRenderer().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;
}
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:
Nosso produto é totalmente multiplataforma e oferece suporte a todas as principais implementações .NET:
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.
Você pode otimizar arquivos em muitos outros formatos de arquivo: