Python 에서 PDF 를 압축하는 코드

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

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

코드 스니펫 보기

Python 에서 PDF 압축

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

Python 를 사용하여 PDF 크기 줄이기

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

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

PDF 파일을 압축하기 위한 Python 의 코드 예
최적화/압축하려는 파일 업로드
코드 실행
목록에서 대상 형식 선택
50%
pip install aspose-words
복사
import aspose.words as aw

renderer = aw.pdf2word.fixedformats.PdfFixedRenderer()
pdf_read_options = aw.pdf2word.fixedformats.PdfFixedOptions()
pdf_read_options.image_format = aw.pdf2word.fixedformats.FixedImageFormat.JPEG
pdf_read_options.jpeg_quality = 50

with open ("Input.pdf", 'rb') as pdf_stream:
    pages_stream = renderer.save_pdf_as_images(pdf_stream, pdf_read_options);

builder = aw.DocumentBuilder()
for i in range(0, len(pages_stream)):
    # 현재 페이지 이미지 크기 조정을 피하기 위해 최대 페이지 크기를 설정합니다.
    max_page_dimension = 1584
    page_setup = builder.page_setup
    set_page_size(page_setup, max_page_dimension, max_page_dimension)

    page_image = builder.insert_image(pages_stream[i])

    set_page_size(page_setup, page_image.width, page_image.height)
    page_setup.top_margin = 0
    page_setup.left_margin = 0
    page_setup.bottom_margin = 0
    page_setup.right_margin = 0

    if i != len(pages_stream) - 1:
        builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE)

save_options = aw.saving.PdfSaveOptions()
save_options.cache_background_graphics = true

builder.document.save("Output.pdf", save_options)

def set_page_size(page_setup, width, height):

    page_setup.page_width = width;
    page_setup.page_height = height;
import aspose.words as aw doc = aw.Document("Input.pdf") doc.cleanup() shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)] for shape in shapes: if shape.isImage: # 이미지 압축을 위한 라이브러리를 선택하는 것은 개발자의 몫입니다. image = Image.open(shape.image_data.to_stream()) # ... # 이미지를 압축하고 모양으로 되돌립니다. shape.image_data.set_image("yourCompressedImage") save_options = aw.saving.PdfSaveOptions save_options.cache_background_graphics = true doc.save("Output.pdf", save_options) import aspose.words as aw doc = aw.Document("Input.pdf") doc.cleanup() shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)] for shape in shapes: if shape.isImage: # 이미지 압축을 위한 라이브러리를 선택하는 것은 개발자의 몫입니다. image = Image.open(shape.image_data.to_stream()) # ... # 이미지를 압축하고 모양으로 되돌립니다. shape.image_data.set_image("yourCompressedImage") doc.save("Output.pdf") import aspose.words as aw doc = aw.Document("Input.pdf") doc.cleanup() shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)] for shape in shapes: if shape.isImage: # 이미지 압축을 위한 라이브러리를 선택하는 것은 개발자의 몫입니다. image = Image.open(shape.image_data.to_stream()) # ... # 이미지를 압축하고 모양으로 되돌립니다. shape.image_data.set_image("yourCompressedImage") save_options = aw.saving.OoxmlSaveOptions save_options.compression_level = aw.saving.CompressionLevel.MAXIMUM doc.save("Output.pdf", save_options) import aspose.words as aw doc = aw.Document() builder = aw.DocumentBuilder(doc) shape = builder.InsertImage("Input.pdf") save_options = aw.saving.ImageSaveOptions(aw.SaveFormat.PDF) shape.get_shape_renderer().save("Output.pdf", save_options) import aspose.words as aw renderer = aw.pdf2word.fixedformats.PdfFixedRenderer() pdf_read_options = aw.pdf2word.fixedformats.PdfFixedOptions() pdf_read_options.image_format = aw.pdf2word.fixedformats.FixedImageFormat.JPEG pdf_read_options.jpeg_quality = 50 with open ("Input.pdf", 'rb') as pdf_stream: pages_stream = renderer.save_pdf_as_images(pdf_stream, pdf_read_options); builder = aw.DocumentBuilder() for i in range(0, len(pages_stream)): # 현재 페이지 이미지 크기 조정을 피하기 위해 최대 페이지 크기를 설정합니다. max_page_dimension = 1584 page_setup = builder.page_setup set_page_size(page_setup, max_page_dimension, max_page_dimension) page_image = builder.insert_image(pages_stream[i]) set_page_size(page_setup, page_image.width, page_image.height) page_setup.top_margin = 0 page_setup.left_margin = 0 page_setup.bottom_margin = 0 page_setup.right_margin = 0 if i != len(pages_stream) - 1: builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE) save_options = aw.saving.PdfSaveOptions() save_options.cache_background_graphics = true builder.document.save("Output.pdf", save_options) def set_page_size(page_setup, width, height): page_setup.page_width = width; page_setup.page_height = height;
코드 실행

PDF 압축 방법

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

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

우리 는 PyPi Python 패키지를 호스팅합니다. "Aspose.Words for Python via .NET" 개발자 환경에 설치하는 방법에 대한 단계별 지침 을 따르십시오.

시스템 요구 사항

이 패키지는 Python ≥3.5 및 <3.12 와 호환됩니다. Linux용 소프트웨어를 개발하는 경우 제품 설명서 에서 gcc 및 libpython 에 대한 추가 요구 사항을 살펴보십시오.

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

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

5%

Aspose 제품 업데이트 구독

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

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