texto ser reemplazar que proteger plantilla para modifiquen llenar editar documento desde crear copiado como archivos archivo abrir c# ms-word document

c# - ser - ¿Hay alguna manera de generar documentos de Word dinámicamente sin tener palabras en la máquina?



llenar plantilla de word desde c# (8)

Estoy planeando generar un documento de Word en el servidor web de forma dinámica. ¿Hay una buena manera de hacer esto en c #? Sé que podría guiar a Word para hacer esto, pero preferiría otra opción.


Crear los viejos archivos .DOC (pre-Word 2007) es casi imposible sin Word. El formato es demasiado complejo. Microsoft ha publicado la descripción del formato, pero es suficiente para reducir a un programador crecido a lágrimas. Hay una razón para eso también (histórica), pero eso no mejora las cosas.

El nuevo .DOCX sería más fácil, aunque bastante complicado. Sin embargo, dependiendo de las versiones de Word a las que se dirige, también hay otras opciones.

Por un lado, está el .RTF clásico. El formato es bastante complejo, pero está bien documentado y cuenta con un sólido soporte en muchas aplicaciones y plataformas. Y puede usar algunos reemplazos de cadenas en archivos de plantillas para facilitar las cosas (no es binario).

Luego están los "viejos" archivos XML de Word. Creo que funcionaron comenzando con Word XP. Un poco los predecesores de .DOCX. Los he usado, no está mal. Y la documentación está bastante bien.

Finalmente, la forma más fácil que elegiría es hacer un HTML simple. Word puede cargar archivos HTML simplemente comenzando con la versión 2000. De la manera más simple, simplemente cambie la extensión de un archivo HTML a .DOC y lo tiene. También puede agregar algunas etiquetas y comentarios específicos de palabra para que se vea aún mejor en Word. Use la opción HTML Save the ... de Word para ver cuáles son.


En Office 2007, Microsoft introdujo un nuevo formato de archivo llamado Microsoft Open Office XML Format (.docx). Este formato no es compatible con versiones anteriores de Microsoft Word. Como se trata de XML, puede crear o leer sin tener una palabra instalada.


En el pasado, trabajé en una empresa que realmente quería documentos en Word generados, al final quedaron perfectamente satisfechos con los documentos RTF que tenían una extensión ".doc". Word no tiene problemas para reconocerlos y abrirlos.

Los documentos RTF se generaron con iText.net (biblioteca .net gratuita), la API es bastante fácil de usar, funciona extremadamente bien, no necesita palabras en la máquina, además, podría extenderse para generar PDF, HTML y Textos de texto en el futuro con muy poco esfuerzo. Después de cuatro años, la solución que creé todavía está en vigencia, así que eso es un pequeño testimonio a favor de iText.net.

Parece que la página oficial de iText sugiere que iText Sharp es la mejor opción .Net en este momento, así que esa es otra opción


Hay bibliotecas de terceros que harán el trabajo.

Haciendo un Google rápido se le ocurrió esto , por ejemplo.

No he probado ninguno, así que no puedo darte ningún consejo específico, ¡me temo!

Háganos saber cómo le va...


Será mejor que generes un archivo rtf, qué palabra sabrá cómo abrirlo.


Si desea generar documentos de Office 2007, compruebe los formatos de archivo Open XML, son simples archivos XML comprimidos, consulte estos enlaces:

Editar: Compruebe este proyecto, puede servirle como un buen punto de partida:

Parece muy simple y personalizable, mira este fragmento de código:

Paragraph p = new Paragraph(); p.Runs.Add(new Run("Text can have multiple format styles, they can be ")); p.Runs.Add(new Run("bold and italic", TextFormats.Format.Bold | TextFormats.Format.Italic)); doc.Paragraphs.Add(p);



Word abrirá felizmente un HTML con una extensión .doc. Si incluye una hoja de estilo interna, puede tenerla completamente formateada. Hubo una publicación previa sobre este tema:

Exportar a documento de Word en C #