Repository navigation
Best Practices de
Hammad Maqbool edited this page Oct 29, 2026
·
1 revision
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
Diese Gewohnheiten ergeben sich direkt aus der Funktionsweise von docxi, und die meisten verhindern ein Problem, das unter Fehlerbehebung beschrieben ist. Sie sind nach Themen gruppiert. Die Hinweise zur Seiteneinrichtung gelten für alle, die zu Sicherheit und Performance vor allem für Produktionsanwendungen.
-
Übergeben Sie alle vier Ränder zusammen. Der Hash, den Sie an
Docxi::Document.newübergeben, ersetzt die Standardwerte, und jeder der Wertetop,right,bottomundleft, den Sie weglassen, wird leer geschrieben. -
Setzen Sie Kopf- und Fußzeile der ersten Seite. docxi aktiviert immer eine eigene erste Seite. Wenn Seite 1 eine Kopf- oder Fußzeile braucht, rufen Sie zusätzlich
add_first_headerundadd_first_footerauf.
-
Verwenden Sie
space: truefür führende oder nachgestellte Leerzeichen. Sonst entfernt Word sie, und die Wörter zweier Textläufe stoßen aneinander. -
Legen Sie gemeinsame Formatierung auf den Absatz. Optionen an
p, etwasize:oderfont:, gelten für jeden Textlauf darin, also müssen Sie weniger wiederholen. -
Verwenden Sie
p.brfür Zeilenumbrüche unddocument.br(page: true)für Seitenumbrüche.document.brohnepage: trueerzeugt ungültiges XML.
-
Setzen Sie Rahmen auf Zeilen oder Zellen, nicht auf die Tabelle. In 0.1.0 wird
borders:auf Tabellenebene auf jede Zelle angewendet statt auf den äußeren Rand der Tabelle. -
Geben Sie
columns_widthfür jede Spalte an. Die Zellen übernehmen ihre Breite daraus, und die Tabellen behalten das erwartete Layout.
- Verwenden Sie PNG-Dateien. Jedes Bild wird als PNG-Teil gespeichert.
-
Setzen Sie die Größe von Inline-Bildern mit
style:, zum Beispielstyle: { width: "120pt", height: "60pt" }. Das ist die einzige Bildgröße, die in 0.1.0 wie erwartet funktioniert. -
Übergeben Sie einen Pfad statt eines geöffneten
File, wenn das Dokument mehrmals gerendert werden könnte. IO-Bilder werden währendrendergelesen, und ein zweites Rendern erhält ein leeres Bild. -
Bilder in Kopfzeilen, Tabellenzellen und positionierte Bilder bis 0.2.0. Breite und Höhe werden beide als
width * height * 14.92EMU berechnet, daher sind sie quadratisch. Für ein quadratisches Bild mitSZoll Kantenlänge übergeben Siewidthundheightjeweils alsMath.sqrt(S * 914400 / 14.92).round, für einen Zoll also etwa 248.
-
Übergeben Sie keine nicht vertrauenswürdigen Strings an
add_media. Ein Pfad lässt docxi diese Datei von Ihrem Server lesen, und eine URL lässt Ihren Server sie herunterladen. Übergeben Sie ein IO, das Sie selbst geöffnet haben, oder prüfen Sie den Wert vorher. Siehe Sicherheit. -
Text wird für Sie maskiert. Strings, die an
textübergeben werden, werden als XML-Text geschrieben, Benutzereingaben können also die Dokumentstruktur nicht verändern.
-
Erzeugen Sie große Dokumente in einem Hintergrundjob. Das ganze Dokument wird beim Aufruf von
renderim Speicher aufgebaut. Siehe Integrationen. -
Einmal rendern, dann die Bytes wiederverwenden. Behalten Sie
word.render.string, wenn Sie das Dokument mehrmals senden oder speichern müssen. -
Legen Sie eine kompatible Version fest, mit
gem "docxi", "~> 0.1". -
Testen Sie, was Sie erzeugen. Eine
.docx-Datei ist ein Zip aus XML-Dateien, Tests können sie also entpacken und das XML prüfen. Die Tests von docxi selbst arbeiten so. Siehe Architektur.
docxi wiki · README · Installation · Troubleshooting · Report an issue · MIT License
Start
Build documents
Help
Project
Links
Languages