Python으로 PDF 파일을 압축하는 방법
IronPDF의 CompressImages 메서드를 사용하면 Python 개발자는 품질 설정을 조절하여 PDF 파일에 포함된 이미지를 압축함으로써 파일 크기를 줄일 수 있습니다. 이를 통해 가독성을 저하시키지 않으면서 저장 공간을 최적화하고 문서 공유 속도를 높일 수 있습니다.
빠른 시작: Python으로 PDF 파일 압축
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/quickstart.py
from ironpdf import PdfDocument
# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality// 이 코드 조각은 사용할 수 없습니다!
from ironpdf import PdfDocument
# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality최소 워크플로우(5단계)
- PDF 파일을 압축하는 데 필요한 Python 라이브러리를 설치하세요.
PdfDocument로 PDF 문서 읽기- 품질 정수(1-100)와 함께
CompressImages호출 SaveAs를 사용하여 줄어든 크기의 파일 저장- 품질을 확인하기 위해 출력물을 모든 PDF 뷰어에서 검토
PDF 파일은 문서 저장 및 공유에 널리 사용되지만, 파일 크기가 커지면 번거로워질 수 있습니다. 10MB 보고서를 업로드하거나 이메일로 보내는 것은 2MB와 같은 것을 공유하는 것보다 확연히 느리며, 문서 양이 많을 때 저장 비용이 축적됩니다. PDF 압축은 파일 크기를 줄이면서 콘텐츠를 읽을 수 있게 유지하여 이 문제를 해결합니다.
이 가이드는 Python에서 IronPDF를 사용하여 PDF 파일을 압축하는 방법을 보여줍니다. 실제 코드 예제는 표준 이미지 압축과 고급 해상도 기반 압축을 모두 다루며, 파이프라인에 맞는 접근 방식을 선택하게 합니다. HTML에서 PDF로의 변환 또는 기존 문서 작업 시, 동일한 압축 API가 적용됩니다.
IronPDF 란 무엇이며 PDF 압축에 사용해야 하는 이유는 무엇일까요?
IronPDF는 PDF 문서의 생성, 읽기, 편집 및 최적화를 처리하는 Python PDF 라이브러리입니다. 이는 처음부터 생성되거나 HTML로 변환되거나 디스크에서 로드된 파일과 함께 작동합니다. 압축 API는 큰 PDF 크기의 주요 요인인 이미지를 대상으로 합니다.
CompressImages 메서드는 1에서 100 사이의 정수 값과, 이미지를 가시적 해상도로 축소하는 선택적 부울 값을 매개변수로 받습니다. 이 이중 매개변수 디자인은 압축을 정확히 조절할 수 있게 합니다: 고트래픽 보고서 대시보드는 70의 품질로 시각 효과를 선명하게 유지할 수 있으며, 내부 아카이브 시스템은 40의 품질로 저장 공간 절감 효과를 최대화할 수 있습니다. 라이브러리는 모든 인코딩을 내부적으로 처리하여 추가 의존성이 필요 없습니다.
IronPDF는 Iron Suite의 일부로, 문서 생성, 바코드 처리, OCR 및 ZIP 아카이빙을 포함합니다. Python 설치에서 모두 공유됩니다. 처음부터 PDF를 생성하는 데 IronPDF를 이미 사용하는 개발자를 위해 압축은 저장 또는 배포 전에 자연스럽게 따르는 단계입니다.
Python에서 IronPDF를 어떻게 설치합니까?
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/install.sh
:ProductInstall// 이 코드 조각은 사용할 수 없습니다!
:ProductInstall설치 후, 라이선스 키를 프로덕션 환경에 대해 구성하십시오. IronPDF는 모든 기능을 포함하는 무료 30일 체험을 제공합니다. 신용 카드는 필요 없습니다. PyPI 패키지 페이지는 최신 릴리스 노트 및 의존성 세부정보를 나열합니다.
IronPDF를 사용한 PDF 파일을 어떻게 압축합니까?
CompressImages에 정수 값을 전달하면 문서 전체에 포함된 이미지의 크기를 줄일 수 있습니다. 낮은 정수는 이미지 충실도의 비용으로 작은 파일을 만들며; 높은 정수는 더 많은 세부 사항을 보존합니다. 아래의 예는 표준 압축 호출과 이미지의 보이는 크기로 축소하는 고급 호출을 모두 보여줍니다.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/compress-basic.py
from ironpdf import PdfDocument
# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")
# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")
# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")// 이 코드 조각은 사용할 수 없습니다!
from ironpdf import PdfDocument
# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")
# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")
# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")압축 매개변수는 무엇을 의미합니까?
CompressImages은 두 개의 매개변수를 받습니다:
- 품질 (필수): 1에서 100 사이의 정수입니다. 100의 값은 압축이 적용되지 않은 상태로 원본 이미지 품질을 유지합니다. 40에서 80 사이의 값은 대부분의 실용적인 사용 사례를 다루며, 60은 일반적인 용도의 문서를 위한 일반적인 시작점입니다.
- 가시적 크기로 조정(선택 사항): 기본값이
False인 부울 값입니다.True시, 각 이미지는 페이지에서 렌더링된 크기에 맞춰 재샘플링됩니다. 이것은 품질 압축 위에 두 번째 축소 과정을 추가하여 더 작은 파일을 생성합니다. 나중에 더 높은 DPI로 스케일링되거나 인쇄된 페이지는 아티팩트를 보일 수 있습니다.
저장 후, 압축된 파일을 원본과 비교하여 품질이 요구 사항을 충족하는지 PDF 뷰어에서 확인하세요. 추가적인 예제 패턴은 PDF 압축 예제 페이지를 참조하세요.
압축 전 PDF 파일은 어떤 모습인가요?
![]()
압축 후 PDF 파일은 어떤 모습인가요?
![]()
비교 결과, 품질 60을 사용하여 458 KB에서 357 KB로(약 22%) 감소하였습니다. 사진적 내용을 많이 포함한 파일은 일반적으로 텍스트나 벡터 그래픽이 지배적인 파일보다 큰 감소를 이룰 수 있습니다.
여러 PDF 파일에 배치 압축을 어떻게 적용합니까?
PDF 파일로 구성된 폴더를 처리하는 과정은 동일한 API를 따릅니다: 각 .pdf 파일을 순차적으로 처리하고, PdfDocument를 사용하여 파일을 불러온 다음, CompressImages를 호출하고, 결과를 저장합니다. 아래의 함수는 이 패턴을 재사용 가능한 유틸리티로 감쌉니다.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/batch-compress.py
import os
from ironpdf import PdfDocument
def batch_compress_pdfs(input_folder, output_folder, quality=60):
"""
Compress all PDF files in a folder.
Args:
input_folder: Path to folder containing source PDFs
output_folder: Path where compressed PDFs will be saved
quality: Compression quality (1–100); default is 60
"""
# Create the output folder if it does not exist
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".pdf"):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f"compressed_{filename}")
try:
pdf = PdfDocument(input_path)
pdf.CompressImages(quality)
pdf.SaveAs(output_path)
print(f"Compressed: {filename}")
except Exception as e:
print(f"Error compressing {filename}: {e}")// 이 코드 조각은 사용할 수 없습니다!
import os
from ironpdf import PdfDocument
def batch_compress_pdfs(input_folder, output_folder, quality=60):
"""
Compress all PDF files in a folder.
Args:
input_folder: Path to folder containing source PDFs
output_folder: Path where compressed PDFs will be saved
quality: Compression quality (1–100); default is 60
"""
# Create the output folder if it does not exist
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".pdf"):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f"compressed_{filename}")
try:
pdf = PdfDocument(input_path)
pdf.CompressImages(quality)
pdf.SaveAs(output_path)
print(f"Compressed: {filename}")
except Exception as e:
print(f"Error compressing {filename}: {e}")except 블록은 손상되었거나 암호로 보호된 단일 파일로 인해 전체 배치 처리가 중단되는 것을 방지합니다. 예외 메시지와 함께 파일 이름을 기록하면 수동 검토가 필요한 파일을 식별하기 쉽습니다. 더 높은 양의 파이프라인에 대해, 폴더를 청크로 나누어 병렬 스레드에서 처리하는 것을 고려하십시오.
PDF 압축에 어떤 품질 설정을 사용해야 합니까?
적절한 품질 설정은 압축 후 PDF가 어떻게 사용될지에 따라 달라집니다. 세 가지 범위가 가장 일반적인 시나리오를 다룹니다.
고품질 (70–90): 인쇄 또는 공식적 배포를 위한 문서가 이 범위 내에 머무르는 것이 좋습니다. 표준 인쇄 해상도에서 텍스트는 선명하게, 다이어그램은 읽기 쉽게 유지됩니다. 파일 크기 감소는 보통 10–25%로 적당하지만, 대부분의 독자에게는 소스와 출력이 구분되지 않습니다.
중간 품질 (50–70): 이 범위는 웹 전송 및 이메일 첨부 파일에 적합합니다. 사진적 내용은 정밀 검사 시 약간의 부드러움이 보이지만 파일 크기 감소(종종 25–50%)는 로드 시간과 이메일 전송 가능성을 의미 있게 향상시킵니다. 대부분의 문서 관리 시스템 및 포털 업로드는 품질 60에서 잘 작동합니다.
공격적 압축 (30–50): 내부 아카이브, 장기 저장 백업, 인쇄되지 않을 문서는 이 범위를 사용할 수 있습니다. 품질 40에서 이미지는 눈에 띄게 부드러워지지만, PDF 엔진에 의해 렌더링된 텍스트(이미지로 포함되지 않은)는 여전히 선명하게 유지됩니다. 이 접근 방식은 또한 문서가 이미지로 변환되어 표시 전에 크기 조정될 경우에 적합합니다.
압축 결과를 Python에서 어떻게 확인합니까?
파일 크기를 프로그래밍 방식으로 확인하면 파일이 파이프라인의 다음 단계로 이동하기 전에 압축이 목표에 부합하는지 확인할 수 있습니다. Python의 내장 함수 os.path.getsize는 모든 파일 경로의 바이트 수를 반환하므로, 검증을 위해 추가 라이브러리가 필요하지 않습니다.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/verify-compression.py
import os
from ironpdf import PdfDocument
# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")
pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")
compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100
# Report results to confirm compression was effective
print(f"Original: {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction: {reduction_pct:.1f}%")// 이 코드 조각은 사용할 수 없습니다!
import os
from ironpdf import PdfDocument
# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")
pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")
compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100
# Report results to confirm compression was effective
print(f"Original: {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction: {reduction_pct:.1f}%")출력은 기록되거나 임계값과 비교할 수 있는 명확한 감소 백분율을 제공합니다. 감소가 예상을 밑돌 경우, 문서에 삽입된 이미지가 거의 없거나 전혀 없을 수 있습니다. 이 경우 CompressImages는 래스터 이미지만 대상으로 하므로, 품질 설정에 관계없이 파일 크기는 거의 변하지 않습니다. 텍스트와 벡터 그래픽은 이 방법에 영향을 받지 않습니다.
Python에서 PDF 압축의 다음 단계는 무엇입니까?
IronPDF의 CompressImages 메서드는 Python 개발자에게 PDF 파일 크기를 줄이기 위한 단일하고 명확한 범위의 API를 제공합니다. 저장 공간 절약과 시각적 충실성 간의 균형을 맞추기 위해 품질 매개변수를 조정하고 출력 차원이 고정되면 해상도 스케일링 불리언을 추가하여 두 번째 축소 과정을 제공합니다. IronPDF가 처리하는 더 넓은 범위를 보려면 Python PDF 라이브러리 개요 페이지를 참조하세요.
무료 체험을 시작하세요 IronPDF의 풀 기능 세트와 함께 압축을 테스트해보세요, HTML에서 PDF 변환, 디지털 서명, 양식 처리, 문서 병합 포함. 체험 기간이 끝나면, 라이선싱 옵션 보기 를 통해 배포에 맞는 계획을 찾으세요.
IronPDF로 무엇을 할 수 있는지 준비되셨습니까? IronPDF의 핵심 기능 설명을 위해 전체 Python PDF 튜토리얼을 탐색해보세요.
자주 묻는 질문
Python에서 PDF를 압축하기 위해 IronPDF를 설치하는 방법은 무엇입니까?
터미널에서 pip install ironpdf을 실행하세요. IronPDF for Python은 먼저 .NET 6.0 SDK가 설치되어 있어야 합니다. 설치 후 ironpdf 패키지에서 PdfDocument를 가져와 PDF 압축을 시작하세요.
Python에서 PDF 파일을 압축하는 기본 코드는 무엇입니까?
PdfDocument("your-file.pdf")로 파일을 로드하고, CompressImages(60)을 호출하여 1부터 100까지의 품질 정수를 사용하고, 결과를 SaveAs("compressed.pdf")를 사용하여 저장합니다. 품질 값을 조정하여 파일 크기와 이미지 충실도를 균형 잡습니다.
품질 매개변수는 PDF 압축에 어떤 영향을 미칩니까?
CompressImages 품질 매개변수는 1에서 100까지입니다. 낮은 값은 더 작고 눈에 더 보이는 이미지 소프트닝이 있는 파일을 생성합니다. 높은 값은 더 많은 세부 사항을 보존하고 파일 크기는 커집니다. 40에서 80 사이의 값은 대부분의 실용적인 사용 사례를 포함하며, 60은 일반적인 시작점입니다.
CompressImages에 두 번째 인수를 전달할 수 있습니까?
예. 두 번째 인수로 True를 전달하면 IronPDF가 품질 압축을 적용하기 전에 각 이미지를 페이지에서 보이는 크기로 리샘플링하도록 지시합니다. 이는 두 번째 감소 과정을 추가하여 더 작은 파일을 생성하지만, 이후에는 더 높은 DPI로 페이지를 스케일링하거나 인쇄할 때 아티팩트가 발생할 수 있습니다.
PDF 압축이 텍스트 및 벡터 그래픽에 영향을 미치나요?
CompressImages는 PDF에 포함된 래스터 이미지를 대상으로 합니다. PDF 엔진이 렌더링한 텍스트와 벡터 그래픽에는 이 방법이 영향을 미치지 않으므로 포함된 이미지가 거의 없거나 없는 문서는 크기 감소가 거의 나타나지 않습니다.
Python에서 파일 크기 감소를 확인하는 방법은 무엇입니까?
저장된 파일의 바이트 수를 가져오기 위해 os.path.getsize("compressed.pdf")를 사용하고 원본과 비교합니다. 차이를 원본 크기로 나누면 감소 비율을 부동 소수점으로 나타낼 수 있습니다.
웹 전달에 가장 적합한 품질 범위는 무엇입니까?
품질 설정 50에서 70은 대부분의 웹 전달 및 이메일 상황에 적합합니다. 이 범위는 파일 크기를 25~50% 줄이면서 화면 읽기에 적합한 사진 콘텐츠를 시각적으로 유지합니다.







