2009-07-08 213 views
3

我试图手动生成一个RTF文档,并最终会以编程方式进行。我打算改进pyRTF,以便它可以生成“目录”,我认为它不能。将目录添加到RTF文档

我无法使用RTF控制字(\ tc,\ tcf和\ tcl。)来生成TOC。 http://msdn.microsoft.com/en-us/library/aa140283(office.10).aspx给出有关TOC的详细信息,但我找不到或制作任何具有TOC的RTF示例。

那么是否有一个简单的示例显示带有TOC的RTF?

回答

2

我正在创建一个超链接到各个页面上的标题的书签表。

例如

'{\\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

这段代码进入我的电脑上一个无限循环。 – Ags1 2016-09-27 11:23:16