exponenta event banner

Детали и отверстия документа PDF и HTML

В этом примере показано, как:

  • Определите шаблон детали документа с отверстиями.

  • Вставьте деталь документа в отчет программным путем и заполните отверстия.

  • Вставка детали документа оглавления.

В этом примере используется шаблон PDF и отчет. Однако этот же процесс можно использовать для HTML-отчетов. Замените информацию о типе документа соответствующей информацией HTML во всем примере.

Добавление шаблона в библиотеку шаблонов деталей документа PDF

В этом примере начните с пакета шаблона PDF по умолчанию.

  1. Создайте копию пакета шаблонов по умолчанию.

    mlreportgen.dom.Document.createTemplate('myPDFtemplate','pdf');
  2. Распакуйте пакет шаблонов.

    unzipTemplate('myPDFtemplate.pdftx');
  3. В текущей папке откройте распакованную папку шаблонов myPDFtemplate. Открытый docpart_templates.html в HTML или текстовом редакторе.

    dplibrary элемент определяет библиотеку деталей документа. dptemplate элемент определяет каждый шаблон детали документа. Эта библиотека деталей документа имеет два шаблона деталей документа:

    • rgChapter, который определяет шаблон детали для глав

    • ReportTOC, которая определяет оглавление

    <html>
    <body>
       <dplibrary>
    
    	  <dptemplate name="rgChapter">
          <h1 class="rgChapterTitle">
          <hole id="rgChapterTitlePrefix" default-style-name="rgChapterTitlePrefix" />
            <span> </span>
          <hole id="rgChapterTitleNumber" default-style-name="rgChapterTitleNumber" />
            <span>. </span>
          <hole id="rgChapterTitleText" default-style-name="rgChapterTitleText" />
          </h1>
          <hole id="rgChapterContent"/>
         </dptemplate>
        
       <dptemplate name="ReportTOC">
           <TOC number-of-levels ="3" leader-pattern="dots" />
       </dptemplate>
    
       </dplibrary>
    
    </body>
    </html>
    
  4. Создание шаблона детали документа с именем Author. Деталь документа может содержать любое сочетание фиксированного текста и отверстий. Этот шаблон детали документа содержит фиксированный текст Author и отверстие для имени автора.

    <dptemplate name="Author">
          <p class="Author">
          <span>Author: </span><hole id="AuthorName" />  
          </p>
                
     </dptemplate>
    
  5. Добавление нового шаблона детали документа в библиотеку. Поскольку при вызове из API вы ссылаетесь на часть документа по имени, шаблоны можно поместить в библиотеке в любом порядке. Используйте уникальное имя для каждого шаблона детали документа.

     <dplibrary>
            
    	  <dptemplate name="rgChapter">
          <h1 class="rgChapterTitle">
          <hole id="rgChapterTitlePrefix" default-style-name="rgChapterTitlePrefix" />
            <span> </span>  
          <hole id="rgChapterTitleNumber" default-style-name="rgChapterTitleNumber" />
            <span>. </span>
          <hole id="rgChapterTitleText" default-style-name="rgChapterTitleText" />
          </h1>
          <hole id="rgChapterContent"/>
       </dptemplate>
       <dptemplate name="ReportTOC">
          <TOC number-of-levels ="3" leader-pattern="dots" />
      </dptemplate>
      <dptemplate name="Author">
          <p class="Author">
          <span>Author: </span><hole id="AuthorName" />  
          </p>
      </dptemplate>
    
    </dplibrary>
    
  6. Переупаковка шаблона в новый шаблон с именем myPDFtemplate2.pdftx.

    zipTemplate('myPDFtemplate2.pdftx','myPDFtemplate');

Использование шаблона детали документа в программе отчетов

Использовать mlreportgen.dom.DocumentPart для использования шаблона детали документа. Вам нужно:

  • Имя пакета шаблона, содержащего часть документа. В этом примере имя пакета шаблона: myPDFtemplate2.

  • Имена вызываемых шаблонов деталей документа и порядок заполнения отверстий. В этом примере вызывается:

    • Шаблон детали документа rgChapter и заполните первые три отверстия в порядке префикса, номера и заголовка

    • ReportTOC шаблон детали документа, который вставляет оглавление

    • Author созданный шаблон детали документа и заполнение одного отверстия

import mlreportgen.dom.*
d = Document('myDocPartEx','pdf','myPDFtemplate2');
open(d);

% Assign the rgChapter document part template to the variable dp
dp = DocumentPart(d,'rgChapter');

% Move to each hole in this document part and append content 
moveToNextHole(dp);
append(dp,'Chapter');
moveToNextHole(dp);
append(dp,'5');
moveToNextHole(dp);
append(dp,'Creating Document Part Templates');

% Append this document part to the document
append(d,dp);

% Append the document part ReportTOC to the document
append(d,DocumentPart(d,'ReportTOC'));

% You can append any allowable object between document parts or holes
append(d,Paragraph('Append any allowable object or a document part.'));
append(d,Paragraph('Append a document part next:'));

% Assign the Author document part template to the variable dp2
dp2 = DocumentPart(d,'Author');

% Move to the next hole and fill it
% Append the document part to the document
moveToNextHole(dp2);
append(dp2,'Charles Brown');
append(d,dp2);

close(d);
rptview(d.OutputPath);

Author шаблон детали документа содержит фиксированный текст, предшествующий отверстию. moveToNextHole добавляет в документ любое фиксированное содержимое в шаблоне между предыдущим отверстием (или началом детали документа) и текущим отверстием.

См. также

Связанные темы