Esta es una solución profesional para comprimir DOCX usando Python. Utilice nuestra API de optimización DOCX para desarrollar software independiente de plataforma de alto nivel en Python. ¡Pruébelo online gratis!
Haga que los archivos grandes DOCX más pequeños sin pérdida de calidad. Elimine los datos innecesarios y no utilizados. Reduzca el tamaño de un DOCX archivo en el código. La Python biblioteca proporciona a los desarrolladores una API integrada para optimizar el contenido de DOCX.
La Python biblioteca es una solución independiente y no requiere la instalación de ningún software de terceros.
La compresión sin pérdidas y la optimización profunda del contenido son fáciles con 'Aspose.Words for Python via .NET'. El siguiente ejemplo demuestra cómo optimizar el contenido de un DOCX archivo en Python:
pip install aspose-words
Copiar
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:
# Depende del desarrollador elegir la biblioteca para la compresión de imágenes.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimir imagen y volver a configurarla en la forma.
shape.image_data.set_image("yourCompressedImage")
save_options = aw.saving.OoxmlSaveOptions
save_options.compression_level = aw.saving.CompressionLevel.MAXIMUM
doc.save("Output.docx", 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:
# Depende del desarrollador elegir la biblioteca para la compresión de imágenes.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimir imagen y volver a configurarla en la forma.
shape.image_data.set_image("yourCompressedImage")
save_options = aw.saving.PdfSaveOptions
save_options.cache_background_graphics = true
doc.save("Output.docx", 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:
# Depende del desarrollador elegir la biblioteca para la compresión de imágenes.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimir imagen y volver a configurarla en la forma.
shape.image_data.set_image("yourCompressedImage")
doc.save("Output.docx")
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:
# Depende del desarrollador elegir la biblioteca para la compresión de imágenes.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprimir imagen y volver a configurarla en la forma.
shape.image_data.set_image("yourCompressedImage")
save_options = aw.saving.OoxmlSaveOptions
save_options.compression_level = aw.saving.CompressionLevel.MAXIMUM
doc.save("Output.docx", 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.docx", 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)):
# Establecer el tamaño máximo de página para evitar la escala de la imagen de la página actual.
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.docx", save_options)
def set_page_size(page_setup, width, height):
page_setup.page_width = width;
page_setup.page_height = height;
Alojamos nuestros paquetes de Python en repositorios de PyPi. Siga las instrucciones paso a paso sobre cómo instalar "Aspose.Words for Python via .NET" en su entorno de desarrollador.
Este paquete es compatible con Python ≥3.5 y <3.12. Si desarrolla software para Linux, consulte los requisitos adicionales para gcc y libpython en la documentación del producto.
Puede optimizar archivos en muchos otros formatos de archivo: