2009-07-08 7 views
3

J'essaye de générer un document RTF à la main et je le ferai finalement par programmation. Je prévois d'améliorer pyRTF afin qu'il puisse générer une "table des matières", ce que je ne peux pas faire.Ajouter une table des matières au document RTF

Je ne peux pas utiliser les mots de contrôle RTF (\ tc, \ tcf et \ tcl.) Pour générer une table des matières. http://msdn.microsoft.com/en-us/library/aa140283(office.10).aspx donne des détails sur TOC mais je n'ai pas pu trouver ou faire d'exemple RTF qui ont une table des matières.

Y a-t-il donc un échantillon simple montrant un RTF avec TOC?

Répondre

2

Je crée une table avec des liens hypertexte vers des signets à titre sur diverses pages.

par exemple.

'{\\field{\\*\\fldinst HYPERLINK \\\\l "%s"} {\\fldrslt %s}}'%(bookmark, text) 
"{\\field{\\*\\fldinst PAGEREF %s }}"%bookmark 
1
{\rtf1\ansi\deff0\adeflang1045 
{\fonttbl {\f0\fsserif\fcharset238 Verdana;}} 

\titlepage\line\line\line\line\line 
{\pard \s1\f0\b\scaps\fs80\qc 
{\field{\*\fldinst HYPERLINK \\l "toc"} {\fldrslt\ul0 Title Page\line\fs30\scaps0\b0 go to Table of Contents}} 
\par} 

\page{\*\bkmkstart page2}{\*\bkmkend page2}\line\line\line\line\line{\pard\f0\fs80\b\scaps\qc\sa10000{\field{\*\fldinst HYPERLINK \\l "toc"} {\fldrslt Page \chpgn}}\par} 
\page{\*\bkmkstart page3}{\*\bkmkend page3}\line\line\line\line\line{\pard\f0\fs80\b\scaps\qc\sa10000{\field{\*\fldinst HYPERLINK \\l "toc"} {\fldrslt Page \chpgn}}\par} 
\page{\*\bkmkstart page4}{\*\bkmkend page4}\line\line\line\line\line{\pard\f0\fs80\b\scaps\qc\sa10000{\field{\*\fldinst HYPERLINK \\l "toc"} {\fldrslt Page \chpgn}}\par} 
\page{\*\bkmkstart page5}{\*\bkmkend page5}\line\line\line\line\line{\pard\f0\fs80\b\scaps\qc\sa10000{\field{\*\fldinst HYPERLINK \\l "toc"} {\fldrslt Page \chpgn}}\par} 

\page{\*\bkmkstart toc}{\*\bkmkend toc}{\pard\sa1000\f0\fs50\b\qc{\field{\*\fldinst TOC}{\fldrslt Table of Contents}}\par} 
{\pard\f0\fs28\fi0\trowd\cellx8000\cellx8600 
\pard\intbl\ql {\field{\*\fldinst HYPERLINK \\l "page2"} {\fldrslt\ul0 Link to anchor #page2}}\cell\pard\intbl\qr {\field{\*\fldinst PAGEREF page2}}\cell\row 
\pard\intbl\ql {\field{\*\fldinst HYPERLINK \\l "page3"} {\fldrslt\ul0 Link to anchor #page3}}\cell\pard\intbl\qr {\field{\*\fldinst PAGEREF page3}}\cell\row 
\pard\intbl\ql {\field{\*\fldinst HYPERLINK \\l "page4"} {\fldrslt\ul0 Link to anchor #page4}}\cell\pard\intbl\qr {\field{\*\fldinst PAGEREF page4}}\cell\row 
\pard\intbl\ql {\field{\*\fldinst HYPERLINK \\l "page5"} {\fldrslt\ul0 Link to anchor #page5}}\cell\pard\intbl\qr {\field{\*\fldinst PAGEREF page5}}\cell\row 
\par} 
} 
+0

Cet extrait de code passe dans une boucle infinie sur mon ordinateur. – Ags1

Questions connexes