Java를 사용하여 PDF 파일을 압축하는 방법 | IronPDF

자바를 사용하여 PDF 파일을 압축하는 방법

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

IronPDF Java 개발자가 이미지 품질을 낮추고 해상도를 조정하여 PDF 파일을 압축할 수 있도록 지원하며, 이를 통해 파일 크기를 줄여 공유 및 저장을 더욱 쉽게 할 수 있습니다.

빠른 시작: Java에서 PDF 파일 압축

```java {title="Java에서 PDF 압축하기"} //:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/quickstart-compress.java import com.ironsoftware.IronPDF.*; java.nio.file.Paths;를 가져옵니다.

// PDF 문서를 불러오세요 PdfDocument pdf = PdfDocument.fromFile(Paths.get("source.pdf"));

// 이미지 품질을 60%로 압축합니다 pdf.compressImages(60);

// 압축된 PDF를 저장합니다 pdf.saveAs(Paths.get("compressed.pdf"));


<div class="hsg-featured-snippet">
<h3>최소 워크플로우(5단계)</h3>

1. Maven `pom.xml`에 IronPDF를 종속성으로 추가하십시오
2. `PdfDocument.fromFile()`을 사용하여 PDF를 불러오세요
3. `pdf.compressImages(60)`을 사용하여 이미지 압축
4. 선택적으로 `pdf.compressImages(90, true)`을 사용하여 이미지 해상도를 조정할 수 있습니다.
5. 압축된 PDF를 `pdf.saveAs()`를 사용하여 저장하십시오.
</div>

PDF 문서는 정보를 공유하고 저장하는 데 널리 사용되지만, 이미지가 많은 파일은 매우 빠르게 수십 메가바이트에 도달할 수 있습니다. 큰 파일 크기는 이메일 전송을 복잡하게 하고, 업로드를 느리게 하며, 저장 비용을 증가시킵니다. IronPDF의 Java 압축 API는 몇 줄의 코드만으로 내장된 이미지 품질을 줄이고 해상도를 조정할 수 있도록 합니다.

이 기사는 IronPDF를 사용하여 Java에서 PDF 파일을 압축하는 방법을 다루고 있습니다. 예제는 간단한 품질 기반 압축과 해상도 조정을 모두 보여주고 있어, 특정 크기 및 품질 요구사항에 맞는 접근 방식을 선택할 수 있습니다. 이미지가 많은 [PDF와 작업 중이거나](https://ironpdf.com/java/how-to/java-pdf-to-image-tutorial/) [병합된 문서](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/)를 처리해야 하는 경우, 배포 전에 압축은 필수 단계입니다.

## IronPDF Java PDF 라이브러리는 무엇인가요?

IronPDF는 PDF 문서를 프로그래밍 방식으로 생성, 읽기 및 조작할 수 있는 [Java PDF 라이브러리](/java/)입니다. 이 라이브러리는 [HTML을 PDF로 변환](https://ironpdf.com/java/tutorials/html-to-pdf/)하고, 양식 채우기, 이미지 삽입, 파일 압축을 PDF 뷰어나 외부 렌더링 엔진 없이 처리합니다. [AWS Lambda](https://ironpdf.com/java/get-started/aws/), [Azure Functions](https://ironpdf.com/java/get-started/azure/), [Google Cloud](https://ironpdf.com/java/get-started/google-cloud/) 등 다양한 배포 환경을 지원합니다.

IronPDF의 압축 기능은 내장 이미지의 JPEG 품질을 낮추고, 옵션으로 해상도를 PDF의 표시 크기에 맞게 줄여 작동합니다. 텍스트, 벡터 그래픽스, 문서 구조는 영향을 받지 않습니다. 이는 큰 문서를 이메일로 빠르게 전송하거나 클라우드 기반 시스템에 저장해야 하는 경우, IronPDF를 실용적인 선택으로 만듭니다.

이 라이브러리는 다른 문서 작업과도 잘 작동합니다. 이미 [워터마크](https://ironpdf.com/java/how-to/custom-watermark/), [배경 레이어](https://ironpdf.com/java/how-to/background-foreground/), [북마크](https://ironpdf.com/java/how-to/bookmarks/)가 포함된 PDF를 압축할 수 있으며, 압축 후에도 이러한 기능들은 모두 유지됩니다.

참고해 주세요압축은 내장 JPEG 또는 PNG 이미지를 포함한 PDF에서 가장 효과적입니다. 대부분 텍스트와 벡터 그래픽스로 구성된 문서는 크기 감소가 거의 없습니다.
## Java Maven 프로젝트에서 IronPDF를 설정하는 방법은? PDF를 압축하기 전에 프로젝트의 Maven 설정에 IronPDF를 추가하세요. 전체 설정 지침은 [Get Started Overview](https://ironpdf.com/java/docs/)를 참조하세요. - [Maven ](/java/docs/)프로젝트에 IronPDF를 설치하려면 `IronPDF` Maven 저장소와 종속성을 `pom.xml` 파일에 추가하십시오. - `<dependencies>` 섹션에 종속성을 추가하십시오: ```xml //:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/maven-dependency.xml <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>your_version_here</version> </dependency>
  • pom.xml을 저장하고 mvn install을 실행하여 IronPDF 종속성을 다운로드하십시오.

의존성 해결이 완료되면 프로젝트에서 IronPDF 클래스를 가져와 사용할 수 있습니다. IronPDF Java 아티팩트의 최신 공개 버전은 Maven Central에서 확인할 수 있습니다. 프로덕션 배포를 위해 실행 전에 라이선스 키를 구성하세요.

Java에서 PDF 파일을 압축하는 방법은?

IronPDF은 문서 내에 포함된 이미지를 대상으로 PDF 파일을 압축합니다. compressImages() 메서드는 0에서 100 사이의 품질 정수 값을 받으며, 값이 낮을수록 이미지 선명도는 떨어지지만 파일 크기는 더 작아집니다. 두 번째 옵션 매개변수는 라이브러리에 PDF 페이지의 표시 크기를 기준으로 이미지 해상도를 축소하도록 지시합니다.

//:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/compress-pdf-images.java
import com.ironsoftware.IronPDF.*;
import java.io.IOException;
java.nio.file.Paths;를 가져옵니다.

public class App {
    public static void main(String[] args) throws IOException {
        // Load the source PDF from disk
        String src = "C:\\Image based PDF.pdf";
        PdfDocument pdf = PdfDocument.fromFile(Paths.get(src));

        // First pass: compress images to 60% quality
        // Lower values produce smaller files with more visible quality loss
        pdf.compressImages(60);
        pdf.saveAs(Paths.get("assets/document_compressed.pdf"));

        // Second pass (optional): compress to 90% quality with resolution scaling
        // The second parameter scales image resolution down to match display size,
        // which can reduce file size further but may cause distortion in some PDFs
        pdf.compressImages(90, true);
        pdf.saveAs(Paths.get("C:\\Compressed.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/compress-pdf-images.java
import com.ironsoftware.IronPDF.*;
import java.io.IOException;
java.nio.file.Paths;를 가져옵니다.

public class App {
    public static void main(String[] args) throws IOException {
        // Load the source PDF from disk
        String src = "C:\\Image based PDF.pdf";
        PdfDocument pdf = PdfDocument.fromFile(Paths.get(src));

        // First pass: compress images to 60% quality
        // Lower values produce smaller files with more visible quality loss
        pdf.compressImages(60);
        pdf.saveAs(Paths.get("assets/document_compressed.pdf"));

        // Second pass (optional): compress to 90% quality with resolution scaling
        // The second parameter scales image resolution down to match display size,
        // which can reduce file size further but may cause distortion in some PDFs
        pdf.compressImages(90, true);
        pdf.saveAs(Paths.get("C:\\Compressed.pdf"));
    }
}
JAVA

코드는 디스크에서 PDF를 로드하고 두 번의 패스로 압축을 적용하여 서로 다른 전략을 설명합니다. 첫 번째 compressImages(60) 호출은 이미지 품질을 60%로 낮추고 결과를 절약합니다. 두 번째 호출에서는 품질을 90%로 유지하면서 해상도 축소를 활성화하여 각 이미지의 픽셀 크기를 페이지의 가시 영역에 맞춥니다.

compressImages() 메서드에는 두 가지 시그니처가 있습니다:

  • compressImages(int quality) — 모든 삽입된 이미지를 지정된 JPEG 품질 수준으로 재샘플링합니다. 적절히 인식 가능한 이미지를 유지하면서 큰 크기 감소를 위해 40에서 80 사이의 값을 사용합니다.
  • compressImages(int quality, boolean scaleImageResolutionToVisibleSize) — 해상도 스케일링 기능을 추가합니다. true일 때, 이 라이브러리는 원본 해상도의 일부로 렌더링된 이미지를 감지하여 그에 따라 크기를 축소합니다. 이 옵션은 가장 공격적인 크기 감소를 제공하지만 처리 시간이 약간 증가합니다.

여러 번의 패스를 적용하여 크기와 품질 균형을 조정합니다. 70% 같은 중간 설정으로 시작하고, 출력 파일 크기를 확인한 다음, 낮은 품질로 두 번째 패스가 필요한지 결정합니다.

이미지가 많은 PDF에 대해 60% 압축 패스를 실행하면 소스 이미지에 따라 파일 크기가 일반적으로 50-70% 감소합니다. 주로 텍스트 콘텐츠로 구성된 문서는 훨씬 작은 이득을 보게 됩니다. 출력 디렉토리에서 이전과 이후 파일 크기를 비교하여 특정 문서에 대한 결과를 평가하세요.

압축 외에도 다른 처리가 필요한 문서의 경우, IronPDF텍스트 추출, 이미지 추출PDF 분할 기능을 지원합니다.

원본 PDF 파일은 어떤 모습인가요?

IronPDF를 사용하여 압축하기 전 458KB 크기의 원본 PDF 파일을 보여주는 파일 탐색기

압축 후 결과는 무엇인가요?

IronPDF의 compressImages 기능을 품질 60%로 적용하여 파일 크기가 현저히 줄어든 압축 PDF 출력 파일을 보여주는 파일 탐색기

적절한 압축 품질 설정은 어떻게 선택하나요?

올바른 품질 수준을 선택하려면 파일 크기와 시각적 충실도를 균형 있게 조절해야 합니다. 올바른 설정은 문서의 목적과 내장 이미지의 민감도에 따라 다릅니다.

아래 표는 일반적인 사용 사례에 대한 실용적인 지침을 제공합니다:

IronPDF 이미지 압축 품질 수준 가이드
품질 수준 대략적인 크기 감소 최적의 용도
80-100% 10-30% 인쇄 품질 문서, 의료 기록, 법률 문서
60-79% 40-60% 내부 보고서, 웹 다운로드용 PDF, 이메일 첨부파일
40-59% 60-75% 썸네일 미리보기, 초안 문서, 아카이브 사본
40% 미만 75% 이상 심각한 저하된 출력; 배포에 일반적으로 권장되지 않음

해상도 축소는 원본 PDF가 고해상도 사진이나 스캔된 페이지로 구성되었지만 문서가 화면 뷰잉에만 사용하려고 할 때 가장 잘 작동합니다. 이 경우, 해상도 축소는 일반적인 줌 수준에서 눈에 띄는 품질 변화를 주지 않고 파일 크기를 줄일 수 있습니다. PDF 이미지 인코딩 표준에 대한 추가 정보는 JPEG 2000 포맷의 국립 도서관 문서Stack Overflow의 PDF 이미지 압축 논의를 참조하세요.

중요한디지털 서명이 포함된 PDF는 압축하지 마세요. 내장 이미지를 수정하면 문서의 바이너리 콘텐츠가 변경되어 기존 서명이 무효화됩니다.

이미지 압축 외에 PDF 파일 크기를 더 줄이는 방법은?

이미지 압축은 대부분의 PDF에서 파일 크기의 가장 큰 원인을 처리하지만 추가 기술을 결합하면 크기를 더 줄일 수 있습니다. IronPDFcompressImages()을 보완하는 여러 가지 접근 방식을 지원합니다:

필요 없는 페이지를 제거하세요. 압축 전 페이지를 삭제하면 이미지 데이터와 페이지 구조 오버헤드를 모두 줄일 수 있습니다. 페이지 삭제 예제를 사용하여 빈 페이지나 중복 페이지를 먼저 제거하세요.

주석을 제거하세요. 주석 개체는 파일에 바이너리 데이터를 추가합니다. 저장하기 전에 주석 관리 API를 사용하여 주석을 제거하면 많은 주석이 있는 문서에서 파일 크기를 눈에 띄게 줄일 수 있습니다.

문서를 일괄 처리합니다. 다수의 PDF를 압축하는 워크플로의 경우, 파일 경로 목록을 순회하며 루프 내에서 compressImages()을 적용하십시오. IronPDF은 각 문서를 독립적으로 처리하므로 일괄 처리에 특별한 구성이 필요하지 않습니다. 시작점으로 pdf-compression 예제를 참조하십시오.

PDF 최적화 전략에 대한 폭넓은 논의는 국립 도서관의 PDF 파일 형식 사양에 파일 크기에 기여하는 구조적 요소와 이를 감소시키는 방법을 문서화하고 있습니다.

Java에서 PDF 압축의 다음 단계는 무엇입니까?

IronPDFcompressImages() 메서드는 Java 애플리케이션에서 PDF 파일 크기를 줄이는 실용적인 방법을 제공합니다. 품질 정수를 사용한 단일 메서드 호출은 대부분의 사용 사례를 포괄하며, 추가적인 해상도 축소 매개변수는 가장 공격적인 감소가 필요한 이미지가 많은 소스 파일을 처리합니다.

자신의 문서에서 압축을 테스트하려면 무료 체험을 시작하세요:

IronPDF가 어떤 기능을 더 제공하는지 확인해 보시겠습니까? Java PDF 튜토리얼 라이브러리의 모든 내용을 확인하세요.

자주 묻는 질문

PDF 압축이란 무엇이며 왜 중요한가요?

PDF 압축은 포함된 이미지를 다시 샘플링하고 표시 해상도를 선택적으로 조정함으로써 파일 크기를 줄입니다. 더 작은 파일은 이메일로 보내고, 업로드하고, 저장하기가 더 쉽습니다 - IronPDF의 compressImages() 메서드는 Java 애플리케이션에서 단일 메서드 호출로 이를 처리합니다.

Java에서 PDF 파일을 빠르게 압축하는 방법은 무엇인가요?

PDF를 PdfDocument.fromFile()로 로드하고 compressImages(60)을 호출하여 이미지를 60%로 압축한 후 saveAs()로 결과를 저장합니다. 이 세 줄은 핵심 압축 워크플로우를 처리합니다.

PDF 파일에 어떤 압축 품질을 사용해야 할까요?

60-70%의 값은 대부분의 문서에 대해 파일 크기와 시각적 품질 간의 좋은 균형을 제공합니다. 인쇄 품질이나 법적 기록에는 80-100%를 사용하고, 이미지 충실도가 중요하지 않은 초안이나 썸네일 미리보기를 위한 경우에만 40-59%를 사용하세요.

여러 개의 문서가 병합된 PDF 파일을 압축할 수 있나요?

네, IronPDF는 PDF가 어떻게 작성되었든지 간에 모든 PDF를 압축합니다. compressImages() 메소드는 문서에 포함된 모든 이미지를 대상으로 하며, 단일 소스에서 가져오든 여러 파일을 병합하든 상관없이 작동합니다.

압축이 워터마크나 양식과 같은 다른 PDF 기능에 영향을 미치나요?

아니요 — IronPDF의 압축은 포함된 래스터 이미지에만 목표를 두고 있습니다. 텍스트, 벡터 그래픽, 워터마크, 배경, 북마크, 양식 필드는 출력 문서에 보존됩니다.

IronPDF를 사용한 PDF 압축을 지원하는 배포 환경은 무엇입니까?

IronPDF는 AWS Lambda, Azure Functions, Google Cloud, 표준 서버 배포에서 PDF 압축을 지원합니다. 이러한 환경에서는 외부 렌더링 엔진이나 PDF 뷰어가 필요하지 않습니다.

scaleImageResolutionToVisibleSize 매개변수는 무엇을 하나요?

true로 설정되면 IronPDF는 고유 해상도의 일부분으로 렌더링된 이미지를 감지하고 픽셀 차원을 보이는 디스플레이 크기에 맞게 축소합니다. 이는 단순한 품질 저하만으로는 줄지 않을 파일 크기를 줄여주지만, 처리 시간이 약간 증가합니다.

PDF를 압축하면 디지털 서명이 무효화됩니까?

네. 포함된 이미지를 수정하면 문서의 바이너리 내용이 변경되어 기존 디지털 서명이 파기됩니다. PDF 파일을 압축한 후에 서명을 적용하지 마십시오.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
버전: 2026.5 just released
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요?
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.