Repository navigation
Best Practices es
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
Estos hábitos salen directamente de cómo funciona docxi, y la mayoría evita alguno de los problemas que aparecen en Solución de problemas. Están agrupados por tema. Los consejos de configuración de página sirven para todo el mundo, y los de seguridad y rendimiento importan sobre todo en aplicaciones en producción.
-
Pasa los cuatro márgenes juntos. El hash que pasas a
Docxi::Document.newsustituye a los valores predeterminados, y cualquiera detop,right,bottomyleftque omitas se escribe vacío. -
Define el encabezado y el pie de página de la primera página. docxi siempre activa una primera página distinta. Si la página 1 necesita encabezado o pie de página, llama también a
add_first_headeryadd_first_footer.
-
Usa
space: truepara los espacios iniciales o finales. De lo contrario, Word los elimina y las palabras de dos fragmentos se juntan. -
Pon el formato común en el párrafo. Las opciones que se pasan a
p, comosize:ofont:, se aplican a todos sus fragmentos, así que hay menos que repetir. -
Usa
p.brpara los saltos de línea ydocument.br(page: true)para los saltos de página.document.brsinpage: truegenera XML que no es válido.
-
Define los bordes en las filas o en las celdas, no en la tabla. En la 0.1.0, los
borders:a nivel de tabla se aplican a cada celda en lugar de al contorno de la tabla. -
Indica
columns_widthpara todas las columnas. Las celdas toman su ancho de ahí, así que las tablas mantienen el diseño que esperas.
- Usa archivos PNG. Todas las imágenes se guardan como una parte PNG.
-
Define el tamaño de las imágenes en línea con
style:, por ejemplostyle: { width: "120pt", height: "60pt" }. Es el único tamaño de imagen que funciona como cabría esperar en la 0.1.0. -
Pasa una ruta en lugar de un
Fileabierto si el documento puede generarse más de una vez. Las imágenes IO se leen duranterender, y una segunda generación obtiene una imagen vacía. -
Imágenes de encabezado, de celdas de tabla y posicionadas hasta la 0.2.0. Su ancho y su alto se calculan como
width * height * 14.92EMU, así que salen cuadradas. Para obtener una imagen cuadrada deSpulgadas, pasawidthyheightiguales aMath.sqrt(S * 914400 / 14.92).round, que es aproximadamente 248 para una pulgada.
-
No pases cadenas no confiables a
add_media. Una ruta hace que docxi lea ese archivo de tu servidor, y una URL hace que tu servidor la descargue. Pasa un IO que hayas abierto tú, o comprueba antes el valor. Consulta Seguridad. -
El texto se escapa automáticamente. Las cadenas que se pasan a
textse escriben como texto XML, así que la entrada de los usuarios no puede cambiar la estructura del documento.
-
Genera los documentos grandes en una tarea en segundo plano. Todo el documento se construye en memoria cuando llamas a
render. Consulta Integraciones. -
Genera una vez y reutiliza los bytes. Guarda
word.render.stringsi necesitas enviar o almacenar el documento más de una vez. -
Fija una versión compatible con
gem "docxi", "~> 0.1". -
Prueba lo que generas. Un
.docxes un ZIP de archivos XML, así que las pruebas pueden descomprimirlo y comprobar el XML. Las propias pruebas de docxi funcionan así. Consulta Arquitectura.
docxi wiki · README · Installation · Troubleshooting · Report an issue · MIT License
Start
Build documents
Help
Project
Links
Languages