이 Python 라이브러리는 개발자에게 PDF 문서를 프로그래밍 방식으로 빠르고 효율적으로 압축할 수 있는 기능을 제공합니다. 네트워크를 통해 인쇄, 보관 또는 공유할 수 있도록 최적화된 PDF 출력을 쉽게 얻을 수 있습니다. 타사 소프트웨어를 설치할 필요가 없는 Python 용 독립형 PDF 문서 처리 솔루션입니다.
당사 제품은 Python 개발자에게 PDF 파일의 크기를 줄이기 위한 통합 API를 제공합니다. PDF 압축은 두 단계로 수행됩니다. 첫 번째 패스 동안 PDF 의 모든 페이지가 이미지 형식으로 변환됩니다. 당사 제품은 개발자가 문서의 최적 품질을 유지하면서 컴팩트한 PDF 출력을 얻을 수 있도록 하는 적응형 및 고효율 이미지 압축 알고리즘을 사용합니다. 다음 단계에서는 일련의 이미지가 압축되고 결합되어 최적화된 새 PDF 파일의 내용을 형성합니다.
'Aspose.Words for Python via .NET' 으로 PDF 압축이 쉬워졌습니다. 다음 예는 Python 에서 PDF 파일의 크기를 줄이는 방법을 보여줍니다.
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;
이 패키지는 Python ≥3.5 및 <3.12 와 호환됩니다. Linux용 소프트웨어를 개발하는 경우 제품 설명서 에서 gcc 및 libpython 에 대한 추가 요구 사항을 살펴보십시오.
다른 많은 파일 형식으로 파일을 최적화할 수 있습니다.