C# 에서 PDF 를 압축하는 코드

원본 품질 및 기준 데이터를 유지하면서 PDF 콘텐츠 및 크기를 최적화하는 고성능 .NET 라이브러리

이것은 C#, F#, VB.NET 을 사용하여 PDF 을 압축하는 전문 솔루션입니다. PDF 최적화 API를 사용하여 .NET 및 .NET Core 플랫폼을 위한 상위 수준의 플랫폼 독립적 소프트웨어를 개발하세요. 온라인에서 무료로 사용해 보세요!

코드 스니펫 보기

C# 에서 PDF 압축

이 C# 라이브러리는 개발자에게 PDF 문서를 프로그래밍 방식으로 빠르고 효율적으로 압축할 수 있는 기능을 제공합니다. 네트워크를 통해 인쇄, 보관 또는 공유할 수 있도록 최적화된 PDF 출력을 쉽게 얻을 수 있습니다. 타사 소프트웨어를 설치할 필요가 없는 C# 용 독립형 PDF 문서 처리 솔루션입니다.

C# 를 사용하여 PDF 크기 줄이기

당사 제품은 C# 개발자에게 PDF 파일의 크기를 줄이기 위한 통합 API를 제공합니다. PDF 압축은 두 단계로 수행됩니다. 첫 번째 패스 동안 PDF 의 모든 페이지가 이미지 형식으로 변환됩니다. 당사 제품은 개발자가 문서의 최적 품질을 유지하면서 컴팩트한 PDF 출력을 얻을 수 있도록 하는 적응형 및 고효율 이미지 압축 알고리즘을 사용합니다. 다음 단계에서는 일련의 이미지가 압축되고 결합되어 최적화된 새 PDF 파일의 내용을 형성합니다.

'Aspose.Words for .NET' 으로 PDF 압축이 쉬워졌습니다. 다음 예는 C# 에서 PDF 파일의 크기를 줄이는 방법을 보여줍니다.

PDF 파일을 압축하기 위한 C# 의 코드 예
최적화/압축하려는 파일 업로드
코드 실행
목록에서 대상 형식 선택
50%
dotnet add package Aspose.Words
복사
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)
{
    // 현재 페이지 이미지 크기 조정을 피하기 위해 최대 페이지 크기를 설정합니다.
    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) { // 이미지 압축을 위한 라이브러리를 선택하는 것은 개발자의 몫입니다. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // 이미지를 압축하고 다시 모양으로 설정합니다. 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) { // 이미지 압축을 위한 라이브러리를 선택하는 것은 개발자의 몫입니다. using var image = Image.Fromstream(shape.ImageData.ToStream()); // ... // 이미지를 압축하고 모양으로 다시 설정합니다. 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) { // 이미지 압축을 위한 라이브러리를 선택하는 것은 개발자의 몫입니다. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // 이미지를 압축하고 모양으로 다시 설정합니다. 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) { // 현재 페이지 이미지 크기 조정을 피하기 위해 최대 페이지 크기를 설정합니다. 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; }
코드 실행

PDF 압축 방법

  1. Aspose.Words for .NET 설치합니다.
  2. C# 프로젝트에 라이브러리 참조를 추가합니다(라이브러리 가져오기).
  3. C# 에서 소스 PDF 파일을 엽니다.
  4. 품질 손실 없이 PDF 을 압축합니다.
  5. Document.Cleanup() 메서드를 호출합니다. 결과 코드는 출력 파일 형식에 따라 다를 수 있습니다.
  6. 압축된 결과를 PDF 파일로 가져옵니다.

PDF 파일을 최적화하고 압축하는 C# 라이브러리

시스템에 "Aspose.Words for .NET" 을 설치하는 세 가지 대체 옵션이 있습니다. 귀하의 요구 사항과 유사한 것을 선택하고 단계별 지침을 따르십시오.

시스템 요구 사항

우리 제품은 완전히 크로스 플랫폼이며 모든 주요 .NET 구현을 지원합니다.

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

.NET 코드가 기본 하드웨어나 운영 체제에 의존하지 않고 가상 머신에만 의존하는 한 Windows, macOS, Android, iOS 및 Linux용 모든 종류의 소프트웨어를 자유롭게 개발할 수 있습니다. 해당 버전의 .NET Framework, .NET Core, Windows Azure, Mono 또는 Xamarin 설치했는지 확인하세요.

C#, F#, VB.NET 애플리케이션을 생성하려면 Microsoft Visual Studio, Xamarin 및 MonoDevelop 통합 개발 환경을 사용하는 것이 좋습니다.

자세한 내용은 제품 설명서 를 참조하십시오.

기타 지원되는 파일 형식 최적화

다른 많은 파일 형식으로 파일을 최적화할 수 있습니다.

5%

Aspose 제품 업데이트 구독

월간 뉴스레터와 제안을 우편함으로 직접 받으십시오.

© Aspose Pty Ltd 2001-2024. 판권 소유.