Це професійне рішення для стиснення 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 у документації продукту.
Ви можете оптимізувати файли в багатьох інших форматах: