PDF и части документа HTML и дыры

Этот пример показывает как:

  • Задайте шаблон части документа, который имеет дыры.

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

  • Вставьте часть документа TOC.

Этот пример использует шаблон 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 добавляет любое фиксированное содержимое в шаблоне между предыдущей дырой (или начало части документа) и текущей дырой к документу.

Смотрите также

Похожие темы