如何使用 ONLYOFFICE 宏缩放 docx 文档中的图像
2024年10月12日作者: Mona
最近,我们创建了一个用于在演示文稿编辑器中缩放图像的宏。接下来,我们将扩展此功能,创建一个宏,以便更便捷地修改文档中的图像,包括调整图像大小、裁剪等。让我们来看看如何构建这个简单的宏。
构建宏
const processImage = (images, width = 100, height = 100) => {
images.forEach((element) => {
我们首先定义 processImage() 函数,该函数负责处理文档中图像的修改,通过 forEach() 方法遍历文档中的每个图像。
element.SetSize(width * 36000, height * 36000);
// Optional settings for flipping and wrapping
// element.SetVertFlip(true);
// element.SetHorFlip(true);
// element.SetWrappingStyle("inline");
在 forEach 循环中,调用 SetSize() 方法,将每张图片的大小调整为所需的宽度和高度,默认值为 100 x 100 毫米,当然,您也可以根据需求自行调整这些参数。
注意:SetSize() 方法采用 EMUs(英制单位) 为尺寸单位。因此,您需要将提供的宽度和高度(以毫米为单位)乘以 36,000 以转换为 EMUs。如果不进行转换,直接传入毫米值将无效。
const document = Api.GetDocument();
const allImg = document.GetAllImages();
接下来是宏的主要部分。我们首先获取 document 变量中的文档,并将文档中的所有图像存储到 allImg 数组中。
if (!allImg || allImg.length === 0) {
console.error(
`No images found in your document. Add some images and try again.`
);
return;
}
接下来,我们执行一个 if 判断,以确保 allImg 数组存在且不为空。如果任何一个条件不满足,则宏的执行将被终止。
processImage(allImg);
最后,我们调用之前定义的 processImage() 函数,并传入 allImg 数组。
完整的宏代码
以下是完整的宏代码:
(function () {
const processImage = (images, width = 100, height = 100) => {
images.forEach((element) => {
try {
// Resizes the image to the passed height and width. The *36000 converts to EMUs (Office Open XML unit).
element.SetSize(width * 36000, height * 36000);
// Optional settings for flipping and wrapping
// element.SetVertFlip(true);
// element.SetHorFlip(true);
// element.SetWrappingStyle("inline"); //other available wrapping styles : "square" | "tight" | "through" | "topAndBottom" | "behind" | "inFront"
} catch (error) {
console.error(
`Could not tweak one or more images. Please check your document once.`
);
}
});
};
const document = Api.GetDocument();
const allImg = document.GetAllImages();
if (!allImg || allImg.length === 0) {
console.error(
`No images found in your document. Add some images and try again.`
);
return;
}
processImage(allImg);
})();
现在,让我们在 Youtube 看看宏的运行过程。
至此,我们已完成了宏的制作!这个简单的宏能够帮助您一键调整文档中的图像。ONLYOFFICE API 是一个功能强大的工具,能够处理各种任务,并为开发更多宏和插件提供了无限可能。使用此 API,您可以充分发挥 ONLYOFFICE 的全部功能,提高工作效率,简化工作流程。
如果您有任何问题或创新想法,欢迎与我们分享。我们重视您的反馈,并期待与您合作。祝探索顺利!