2011-12-01 204 views
14

Necesito crear una tabla en un archivo RTF. Sin embargo, no estoy familiarizado con RΤF. Este es un ejemplo de un archivo de texto que se supone que estos archivos RTF para reemplazar:Usar tablas en RTF

       GENERAL JOURNAL 
                     Page 1 

Date  Description        Post Ref Debit  Credit 
------------------------------------------------------------------------------ 
2011 
Dec 1 Utilities Expense       512  250.00 
      Cash         111     250.00 
       Paid electric bill for November, 
       Check No. 1234 

    2 Cash          111  35.00 
      Accounts Receivable/Customer Name  115/√    30.00 
      Interest Income       412     5.00 
       Receipt of payment on account 
       from Customer, Check No. 5678 

     . . . 

La tabla se supone que tiene fronteras, pero no sé cómo hacer esto tampoco. Algunas células tienen que tener fronteras especiales en la parte inferior como en este archivo:

        Company Name 
         Schedule of Accounts Receivable 
           December 31, 2011 

Name                 Balance 
------------------------------------------------------------------------------ 
Adams, John                354.24 
Jefferson, Thomas              58.35 
Washington, George              754.58 
                     -------- 
                     1167.17 
                     ======== 

Soy consciente de la \cell, \row etc., pero no puedo encontrar la manera de utilizarlos de manera adecuada como la documentación que he encontrado no es muy bueno. Por favor ayuda.

+0

¿Y qué tiene eso que ver con C++? –

+0

Estoy escribiendo los archivos (TXT y RTF) programáticamente en C++ –

+1

[Aquí] (http://en.wikipedia.org/wiki/Rich_Text_Format#External_links) puede encontrar algunos enlaces a varias versiones de la especificación RTF. –

Respuesta

21

Este sitio es útil: http://www.pindari.com/rtf3.html

{\rtf1\ansi\deff0 
\trowd 
\cellx1000 
\cellx2000 
\cellx3000 
\intbl cell 1\cell 
\intbl cell 2\cell 
\intbl cell 3\cell 
\row 
} 

Esto dará:

--------------------------- 
|cell 1 | cell 2 | cell 3 | 
--------------------------- 

Una fila se delimted con \trowd ... \row

Cada celda termina con \cell

\cellx determina el lado derecho de la celda correspondiente en twips

+2

Algo curioso ... Encuentre y descargue el documento de especificaciones de Microsoft RTF 1.9.1. Luego, guárdalo como RTF. Tenga en cuenta que sus filas de tabla NO comienzan y finalizan así. En cambio, todos comienzan con \ ltrrow ... – MaxOvrdrv

+3

Las definiciones de tabla RTF son una verdadera pesadilla. Pensé que lo tenía resuelto y luego me encontré con tablas anidadas :-( – Santosh

+0

Dato curioso: las tablas anidadas no estaban en la especificación RTF original. Se agregaron más tarde de una manera comptable hacia atrás. Eso es en parte por lo que son un completo desastre – user2847643

1

La edición directamente en RTF se vuelve rápidamente ilegible. Pehaps este enfoque práctico funciona mejor: - Crear un ejemplo maqueta (en Excel o Word) utilizando identificadores únicos como marcadores de posición (ejemplo "(P1)") - A continuación, guardar como RTF - Abrir la RTF en libreta - copie los códigos RTF "tal como están" y reemplace los marcadores de posición con valores reales en su programa

+0

La otra respuesta es más general. Esto es lo que realmente hago en casos como este. Siempre que pueda crear una tabla, guardar como rtf, puede aprender cómo se hace. Advertencia: ¡inserte generosamente saltos de línea después de los corchetes! – pauljohn32