2010-01-28 11 views
5

Estoy creando un sistema de autoría de periódico. Hoy estoy usando la biblioteca Aspose.Words para generar periódicos usando el formato Docx como salida, basado en muchos otros documentos como entrada.Obtener la altura del texto e imágenes renderizados en MS Word

La idea básica es cargar una gran cantidad de documentos de artículos en una lista, luego generar un docx final con el periódico.

Necesitamos obtener la altura total de un texto (con imágenes y tablas) dentro de las columnas. Como las bibliotecas como Aspose.Words se ocupan del formato Docx como DOM, no hay forma de saber cómo se organizará el texto dentro de las columnas. Entonces no puedo saber la altura real.

Hemos trabajado a nuestra manera para alcanzar esta altura. Estoy usando la función MeasureString() del espacio de nombres System.Drawing.Graphics. Devuelve el ancho y la altura utilizados por la cadena y puedo estimar cuántas líneas (y puntos o pulgadas) usará dentro de una columna.

Pero es muy pobre y necesitamos una solución más decente. Estamos pensando en utilizar OpenXML SDK para obtener esta altura, ¿o sí?

Aspose.Words no admite una forma de conocerlo y todas las clases de Render son privadas para la biblioteca.

¿Puedes pensar en una nueva forma de obtener esta altura?

Gracias, Daniel Koch

+1

Agregaron una característica desde que se publicó esta pregunta, a Aspose.Words: ahora expone parte del motor de diseño y mucho más del material de renderizado. Puede obtener números de página y renderizar en objetos gráficos, imágenes y demás. Sin embargo, todavía no estoy seguro de cómo conseguir la altura de un objeto. – BrainSlugs83

Respuesta

0

Gracias a todos por su respuesta.

Lo terminé cambiando Aspose.Words a PDFLib. Ahora puedo controlar páginas, columnas o cualquier cosa usando Postscript Points.

Mantenemos Aspose.Words solo para la importación de contenido, pero no es para imprimir boletín.

1

Esta propiedad no se expone en Open XML o el SDK (o VBA/VSTO para el caso). Cómo se calcula exactamente la altura no está en ninguna documentación. Posiblemente la forma en que lo está haciendo es una forma de proceder.

Otra forma posible es colocar sus TextColumns en una Columna/Celda de Tabla y obtener esa altura (pero si son dos columnas de texto en la celda y la primera "llena" la celda de arriba a abajo y la segunda no 't, todavía tendrá el problema de no poder calcular el tamaño de la segunda).

0

Tengo casi el mismo problema que tú .. Pero en mi caso estoy tratando con preguntas dentro de un examen de prueba .. Bueno, hoy en día, estamos usando RTF para construir las preguntas y un RichTextBox mide la altura .. Solo así (http://blogs.technet.com/david_bennett/archive/2005/04/06/403402.aspx) .. Y quiero migrar a DOCX .. Pero todavía no tengo suerte sobre cómo medir la pregunta con tablas e imágenes ... :-( Ahora mismo estoy estudiando los Miembros del documento (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document_members.aspx), para tratar de ver con la automatización de Word ..

Saludos,

Bruno

+0

Aspose.Words también funciona con RTF. – BrainSlugs83

Cuestiones relacionadas