Jump to content

Macros/Impress/003/es

From The Document Foundation Wiki
This page is a translated version of the page Macros/Impress/003 and the translation is 100% complete.


Descripción

Esta macro le permite automatizar el recorte de imágenes de manera personalizada. Para ese fin, entre otras cosas utiliza com.sun.star.text.GraphicCrop.[1] Tenga en cuenta que simplemente cambiar el .GraphicCrop de una imagen no se ejecuta de manera perfecta, por lo que la macro a continuación ajusta la posición y el tamaño de la imagen para que sea estática y no se comprima o estire. La macro también está diseñada para tener en cuenta los valores de recorte aplicados previamente a la imagen, con lo que puede ejecutar la macro varias veces en la misma imagen.

Tenga en cuenta que una característica principal faltante de esta macro es que la imagen debe estar en su tamaño original para evitar la compresión/estiramiento de la imagen, tras la ejecución de la macro. (Si encuentra una solución que permita cambiar el tamaño, no dude en editar esta página wiki. ) Tenga en cuenta también que si pega una imagen de mayor tamaño en píxeles que el cuadro porta-objetos en sí, se comprimirá automáticamente, lo que causaría estiramiento de la imagen al ejecutar la macro.

Code

LibreOffice Basic

'Option Explicit

Sub custom_crop()
    '''Aplicar un recorte personalizado a la imagen seleccionada'''

    Dim oGC   As New com.sun.star.text.GraphicCrop
    Dim oPos  As New com.sun.star.awt.Point
    Dim oSize As New com.sun.star.awt.Size

    oImage = ThisComponent.CurrentSelection(0)
    x = oImage.getPosition().X
    y = oImage.getPosition().Y
    w = oImage.getSize().Width
    h = oImage.getSize().Height

    ' Especificar los parámetros de recorte
    leftCrop = 3000
    rightCrop = 0
    topCrop = 0
    bottomCrop = 0

    ' Aplicar el recorte teniendo encuenta los valores de recorte previos
    oGC.Left   = leftCrop   + oImage.GraphicCrop.Left
    oGC.Right  = rightCrop  + oImage.GraphicCrop.Right
    oGC.Top    = topCrop    + oImage.GraphicCrop.Top
    oGC.Bottom = bottomCrop + oImage.GraphicCrop.Bottom
    oImage.GraphicCrop = oGC

    ' Ajustar la posición y tamaño de la imagen para que no se comprima o expanda en el proceso de recorte.
    ' Tenga en cuenta que la imagen debe tener su tamaño original para esta tarea
    oPos.X = x + leftCrop
    oPos.Y = y + topCrop
    oSize.Width  = w - leftCrop - rightCrop
    oSize.Height = h - topCrop  - bottomCrop
    oImage.setPosition(oPos)
    oImage.setSize(oSize)

End Sub ' custom_crop()

Python

- pendiente

Descarga del archivo ODP

Notas

  1. Consulte la documentación de la API sobre API documentation com.sun.star.text.GraphicCrop.