2009-07-08 145 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