Это профессиональное решение для сжатия EPUB с помощью Python. Используйте наш API оптимизации EPUB для разработки высокоуровневого независимого от платформы программного обеспечения на Python. Попробуйте онлайн бесплатно!
В настоящее время мы не принимаем DOCX файлы на вход, но мы можем создавать DOCX на выходе. Мы планируем реализовать полную поддержку DOCX формата в ближайшем будущем.
Python библиотека является автономным решением и не требует установки стороннего ПО.
Уменьшайте размер файлов DOCX без потери качества. Python библиотека предоставляет разработчикам интегрированный API для оптимизации содержимого DOCX. Оптимизация DOCX происходит за счет сжатия изображений внутри DOCX файлов, а также за счет удаления неиспользуемых данных.
Сжатие электронных книг без потерь и оптимизация контента стали проще благодаря 'Aspose.Words for Python via .NET'. В следующем примере показано, как оптимизировать содержимое DOCX файла на Python:
pip install aspose-words
Копировать
import aspose.words as aw
doc = aw.Document("Input.docx")
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.epub")
import aspose.words as aw
doc = aw.Document("Input.docx")
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.epub", save_options)
import aspose.words as aw
doc = aw.Document("Input.docx")
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.epub")
import aspose.words as aw
doc = aw.Document("Input.docx")
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.epub", save_options)
import aspose.words as aw
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.InsertImage("Input.docx")
save_options = aw.saving.ImageSaveOptions(aw.SaveFormat.DOCX)
shape.get_shape_renderer().save("Output.epub", 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.docx", '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.epub", save_options)
def set_page_size(page_setup, width, height):
page_setup.page_width = width;
page_setup.page_height = height;
Мы размещаем наши пакеты Python в репозиториях PyPi. Следуйте пошаговым инструкциям по установке "Aspose.Words for Python via .NET" в среду разработчика.
Этот пакет совместим с Python ≥3.5 и <3.12. Если вы разрабатываете программное обеспечение для Linux, ознакомьтесь с дополнительными требованиями для gcc и libpython в документации по продукту.
Вы можете оптимизировать файлы во многих других форматах файлов: