2009-07-08 6 views
3

RTF 문서를 수동으로 생성하려고 시도하고 결국 프로그래밍 방식으로 처리합니다. pyRTF를 개선하여 "목차"를 생성 할 수 있다고 생각합니다.RTF 문서에 목차 추가

TOC를 생성하기 위해 RTF 제어 단어 (\ tc, \ tcf 및 \ tcl.)를 사용할 수 없습니다. http://msdn.microsoft.com/en-us/library/aa140283(office.10).aspx은 목차에 대한 세부 정보를 제공하지만 목차가있는 예제 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