So skalieren Sie Bilder in DOCX-Dokumenten mit einem ONLYOFFICE-Makro
In jüngster Vergangenheit haben wir ein Makro entwickelt, um Bilder in unserem Presentation Editor zu skalieren. Im Rahmen unserer Serie zu Bildbearbeitungs-Makros zeigen wir Ihnen nun, wie Sie ein Makro erstellen, um Bilder auch in Dokumenten einfach zu bearbeiten. Mit diesem einfachen Makro lassen sich Bildanpassungen wie das Ändern der Größe, das Zuschneiden und vieles mehr vornehmen. Schauen wir uns an, wie wir dieses Makro aufbauen.
Das Makro erstellen
const processImage = (images, width = 100, height = 100) => {
images.forEach((element) => {
Zuerst definieren wir die Funktion processImage(), die für die Bildbearbeitung im Dokument zuständig ist. Diese Funktion durchläuft jede Bilddatei im Dokument mithilfe der forEach() -Methode und ermöglicht so die individuelle Anpassung der Bilder.
element.SetSize(width * 36000, height * 36000);
// Optional settings for flipping and wrapping
// element.SetVertFlip(true);
// element.SetHorFlip(true);
// element.SetWrappingStyle("inline");
Innerhalb der forEach -Schleife verwenden wir die SetSize() -Methode, um jedes Bild auf die gewünschte Breite und Höhe zu skalieren. Die Parameter für Breite und Höhe lassen sich an Ihre individuellen Anforderungen anpassen, jedoch ist die Standardeinstellung 100 x 100 mm.
Hinweis: Die in der SetSize() Methode verwendeten Maßeinheiten sind in EMUs (English Metric Units) angegeben. Die angegebenen Werte in Millimetern werden mit 36.000 multipliziert, um sie in EMUs umzurechnen. Wenn Sie die Werte direkt in Millimetern eingeben, funktioniert die Skalierung nicht korrekt.
const document = Api.GetDocument();
const allImg = document.GetAllImages();
Nun folgt der Hauptteil des Makros. Zunächst rufen wir das Dokument in der Variablen document ab und speichern alle darin enthaltenen Bilder im Array allImg.
if (!allImg || allImg.length === 0) {
console.error(
`No images found in your document. Add some images and try again.`
);
return;
}
Als Nächstes führen wir eine if -Schleife aus, um sicherzustellen, dass das Array allImg existiert und nicht leer ist. Sollte eine dieser Bedingungen nicht erfüllt sein, wird die Ausführung des Makros gestoppt.
processImage(allImg);
Zum Schluss rufen wir die Funktion processImage() (wie oben definiert) auf und übergeben das Array allImg als Argument.
Der vollständige Makro-Code
Hier ist der Code für das gesamte Makro:
(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);
})();
Nun schauen wir uns an, wie unser Makro arbeitet.
Und das war’s! Ein einfaches Makro, das Ihnen erlaubt, Bilder in Ihren Textdokumenten anzupassen. Die ONLYOFFICE API ist ein leistungsstarkes Tool, das eine Vielzahl von Aufgaben bewältigen kann und unzählige Möglichkeiten zur Entwicklung weiterer Makros und Plugins eröffnet. Mit dieser API können Sie das volle Potenzial von ONLYOFFICE ausschöpfen, Ihre Produktivität steigern und Ihre Workflows optimieren.
Falls Sie Fragen oder kreative Ideen haben, freuen wir uns über Ihr Feedback und darauf, mit Ihnen zusammenzuarbeiten. Viel Erfolg bei Ihren Entdeckungen und Tests!
Nützliche Links
Erstellen Sie Ihr kostenloses ONLYOFFICE-Konto
Öffnen und bearbeiten Sie gemeinsam Dokumente, Tabellen, Folien, Formulare und PDF-Dateien online.