Toto je profesionální řešení pro kompresi PDF pomocí Python. Použijte naše optimalizační rozhraní API PDF k vývoji softwaru na vysoké úrovni, nezávislého na platformě v Pythonu. Vyzkoušejte to online zdarma!
Tato knihovna Python poskytuje vývojářům možnost rychle a efektivně programově komprimovat PDF dokumenty. Získejte snadno optimalizovaný výstup PDF připravený pro tisk, archivaci nebo sdílení po síti. Jedná se o samostatné řešení pro zpracování PDF dokumentů pro Python, které nevyžaduje instalaci žádného softwaru třetích stran.
Náš produkt poskytuje vývojářům Python integrované rozhraní API pro snížení velikosti PDF souborů. Komprese PDF se provádí ve dvou průchodech. Během prvního průchodu jsou všechny stránky PDF převedeny do obrazového formátu. Náš produkt využívá adaptivní a vysoce účinné algoritmy komprese obrázků, které umožňují vývojářům získat kompaktní výstup PDF při zachování optimální kvality dokumentu. Při dalším průchodu je sekvence obrázků zkomprimována a zkombinována tak, aby vytvořila obsah nového optimalizovaného PDF souboru.
Komprese PDF je snadná s 'Aspose.Words for Python via .NET'. Následující příklad ukazuje, jak zmenšit velikost PDF souboru v Python:
pip install aspose-words
Kopírovat
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)):
# Nastavte maximální velikost stránky, abyste zabránili změně měřítka aktuální stránky.
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:
# Je na vývojáři, aby si vybral knihovnu pro kompresi obrázků.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimujte obrázek a nastavte jej zpět do tvaru.
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:
# Je na vývojáři, aby si vybral knihovnu pro kompresi obrázků.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimujte obrázek a nastavte jej zpět do tvaru.
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:
# Je na vývojáři, aby si vybral knihovnu pro kompresi obrázků.
image = Image.open(shape.image_data.to_stream())
# ...
# Komprimujte obrázek a nastavte jej zpět do tvaru.
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)):
# Nastavte maximální velikost stránky, abyste zabránili změně měřítka aktuální stránky.
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;
Naše balíčky Python hostujeme v úložištích PyPi. Postupujte prosím podle pokynů krok za krokem, jak nainstalovat "Aspose.Words for Python via .NET" do vašeho vývojářského prostředí.
Tento balíček je kompatibilní s Python ≥3.5 a <3.12. Pokud vyvíjíte software pro Linux, podívejte se prosím na další požadavky pro gcc a libpython v dokumentaci k produktu.
Můžete optimalizovat soubory v mnoha dalších formátech souborů: