Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d33ad436

Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt

  • ID d33ad436ea3f511f21bfdaa3987b9102db1f0731
  • Vorgänger 07948c34
  • Nachfolger 1de28336

Unterstützung für die Ausgabe der ReportGenerator-Ergebnisse als PDF via html2ps entfernt.

Unterschiede anzeigen:

SL/ReportGenerator.pm
9 9

  
10 10
# Cause locales.pl to parse these files:
11 11
# parse_html_template('report_generator/html_report')
12
# parse_html_template('report_generator/pdf_report')
13 12

  
14 13
sub new {
15 14
  my $type = shift;
......
26 25
    'allow_pdf_export'      => 1,
27 26
    'allow_csv_export'      => 1,
28 27
    'html_template'         => 'report_generator/html_report',
29
    'pdf_template'          => 'report_generator/pdf_report',
30 28
    'pdf_export'            => {
31 29
      'paper_size'          => 'a4',
32 30
      'orientation'         => 'landscape',
......
342 340

  
343 341
  my @export_variables = $self->{form}->flatten_variables(@{ $self->{export}->{variable_list} });
344 342

  
345
  my $allow_pdf_export = $opts->{allow_pdf_export} && (-x $main::html2ps_bin) && (-x $main::ghostscript_bin);
343
  my $allow_pdf_export = $opts->{allow_pdf_export};
346 344

  
347 345
  eval { require PDF::API2; require PDF::Table; };
348 346
  $allow_pdf_export |= 1 if (! $@);
......
602 600
  return $allowed_paper_sizes{$requested_paper_size} ? $requested_paper_size : $default_paper_size;
603 601
}
604 602

  
605
sub render_pdf_with_html2ps {
606
  my $self      = shift;
607
  my $variables = $self->prepare_html_content();
608
  my $form      = $self->{form};
609
  my $myconfig  = $self->{myconfig};
610
  my $opt       = $self->{options}->{pdf_export};
611

  
612
  my $opt_number     = $opt->{number}                     ? 'number : 1'    : '';
613
  my $opt_landscape  = $opt->{orientation} eq 'landscape' ? 'landscape : 1' : '';
614

  
615
  my $opt_paper_size = $self->verify_paper_size($opt->{paper_size}, 'a4');
616

  
617
  my $html2ps_config = <<"END"
618
\@html2ps {
619
  option {
620
    titlepage: 0;
621
    hyphenate: 0;
622
    colour: 1;
623
    ${opt_landscape};
624
    ${opt_number};
625
  }
626
  paper {
627
    type: ${opt_paper_size};
628
  }
629
  break-table: 1;
630
}
631

  
632
\@page {
633
  margin-top:    $opt->{margin_top}cm;
634
  margin-left:   $opt->{margin_left}cm;
635
  margin-bottom: $opt->{margin_bottom}cm;
636
  margin-right:  $opt->{margin_right}cm;
637
}
638

  
639
BODY {
640
  font-family: Helvetica;
641
  font-size:   $opt->{font_size}pt;
642
}
643

  
644
END
645
  ;
646

  
647
  my $printer_command;
648
  if ($opt->{print} && $opt->{printer_id}) {
649
    $form->{printer_id} = $opt->{printer_id};
650
    $form->get_printer_code($myconfig);
651
    $printer_command = $form->{printer_command};
652
  }
653

  
654
  my $cfg_file_name = Common::tmpname() . '-html2ps-config';
655
  my $cfg_file      = IO::File->new($cfg_file_name, 'w') || $form->error($locale->text('Could not write the html2ps config file.'));
656

  
657
  $cfg_file->print($html2ps_config);
658
  $cfg_file->close();
659

  
660
  my $html_file_name = Common::tmpname() . '.html';
661
  my $html_file      = IO::File->new($html_file_name, 'w');
662

  
663
  if (!$html_file) {
664
    unlink $cfg_file_name;
665
    $form->error($locale->text('Could not write the temporary HTML file.'));
666
  }
667

  
668
  $html_file->print($form->parse_html_template($self->{options}->{pdf_template}, $variables));
669
  $html_file->close();
670

  
671
  my $cmdline =
672
    "\"${main::html2ps_bin}\" -f \"${cfg_file_name}\" \"${html_file_name}\" | " .
673
    "\"${main::ghostscript_bin}\" -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=${opt_paper_size} -sOutputFile=- -c .setpdfwrite -";
674

  
675
  my $gs = IO::File->new("${cmdline} |");
676
  if ($gs) {
677
    my $content;
678

  
679
    if (!$printer_command) {
680
      my $filename = $self->get_attachment_basename();
681
      print qq|content-type: application/pdf\n|;
682
      print qq|content-disposition: attachment; filename=${filename}.pdf\n\n|;
683

  
684
      while (my $line = <$gs>) {
685
        print $line;
686
      }
687

  
688
    } else {
689
      while (my $line = <$gs>) {
690
        $content .= $line;
691
      }
692
    }
693

  
694
    $gs->close();
695
    unlink $cfg_file_name, $html_file_name;
696

  
697
    if ($printer_command && $content) {
698
      $self->_print_content('printer_command' => $printer_command,
699
                            'content'         => $content,
700
                            'copies'          => $opt->{copies});
701
      $form->{report_generator_printed} = 1;
702
    }
703

  
704
  } else {
705
    unlink $cfg_file_name, $html_file_name;
706
    $form->error($locale->text('Could not spawn html2ps or GhostScript.'));
707
  }
708
}
709

  
710 603
sub _print_content {
711 604
  my $self   = shift;
712 605
  my %params = @_;
......
724 617

  
725 618
  eval { require PDF::API2; require PDF::Table; };
726 619

  
727
  if ($@) {
728
    return $self->render_pdf_with_html2ps(@_);
729
  } else {
730
    return $self->render_pdf_with_pdf_api2(@_);
731
  }
620
  return $self->render_pdf_with_pdf_api2(@_);
732 621
}
733 622

  
734 623
sub unescape_string {
......
943 832

  
944 833
The template to be used for HTML reports. Default is 'report_generator/html_report'.
945 834

  
946
=item pdf_template
947

  
948
The template to be used for PDF reports. Default is 'report_generator/pdf_report'.
949

  
950 835
=back
951 836

  
952 837
=head2 PDF Options
locale/de/all
335 335
  'Could not print dunning.'    => 'Die Mahnungen konnten nicht gedruckt werden.',
336 336
  'Could not rename %s to %s. Reason: %s' => 'Die Datei &quot;%s&quot; konnte nicht in &quot;%s&quot; umbenannt werden. Grund: %s',
337 337
  'Could not spawn ghostscript.' => 'Die Anwendung "ghostscript" konnte nicht gestartet werden.',
338
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
339 338
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
340 339
  'Could not update prices!'    => 'Preise konnten nicht aktualisiert werden!',
341
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
342
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
343 340
  'Country'                     => 'Land',
344 341
  'Create Buchungsgruppen'      => 'Buchungsgruppe erfassen',
345 342
  'Create Chart of Accounts'    => 'Kontenplan anlegen',
locale/de/ap
40 40
  'Confirmation'                => 'Auftragsbest?tigung',
41 41
  'Contact'                     => 'Kontakt',
42 42
  'Continue'                    => 'Weiter',
43
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
44 43
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
45
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
46
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
47 44
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
48 45
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
49 46
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/ar
41 41
  'Confirmation'                => 'Auftragsbest?tigung',
42 42
  'Contact'                     => 'Kontakt',
43 43
  'Continue'                    => 'Weiter',
44
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
45 44
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
46
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
47
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
48 45
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
49 46
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
50 47
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/ca
21 21
  'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
22 22
  'Chart of Accounts'           => 'Konten?bersicht',
23 23
  'Confirmation'                => 'Auftragsbest?tigung',
24
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
25 24
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
26
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
27
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
28 25
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
29 26
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
30 27
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/ct
24 24
  'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
25 25
  'Confirmation'                => 'Auftragsbest?tigung',
26 26
  'Contact'                     => 'Kontakt',
27
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
28 27
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
29
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
30
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
31 28
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
32 29
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
33 30
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/dn
39 39
  'Continue'                    => 'Weiter',
40 40
  'Could not print dunning.'    => 'Die Mahnungen konnten nicht gedruckt werden.',
41 41
  'Could not spawn ghostscript.' => 'Die Anwendung "ghostscript" konnte nicht gestartet werden.',
42
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
43 42
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
44
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
45
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
46 43
  'Country'                     => 'Land',
47 44
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
48 45
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
locale/de/do
43 43
  'Confirmation'                => 'Auftragsbest?tigung',
44 44
  'Contact'                     => 'Kontakt',
45 45
  'Continue'                    => 'Weiter',
46
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
47 46
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
48
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
49
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
50 47
  'Country'                     => 'Land',
51 48
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
52 49
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
locale/de/fu
19 19
  'Cc'                          => 'Cc',
20 20
  'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
21 21
  'Confirmation'                => 'Auftragsbest?tigung',
22
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
23 22
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
24
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
25
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
26 23
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
27 24
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
28 25
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/gl
43 43
  'Contact'                     => 'Kontakt',
44 44
  'Continue'                    => 'Weiter',
45 45
  'Contra'                      => 'gegen',
46
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
47 46
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
48
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
49
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
50 47
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
51 48
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
52 49
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/ic
47 47
  'Confirmation'                => 'Auftragsbest?tigung',
48 48
  'Contact'                     => 'Kontakt',
49 49
  'Continue'                    => 'Weiter',
50
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
51 50
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
52 51
  'Could not update prices!'    => 'Preise konnten nicht aktualisiert werden!',
53
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
54
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
55 52
  'Country'                     => 'Land',
56 53
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
57 54
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
locale/de/login
57 57
  'Confirmation'                => 'Auftragsbest?tigung',
58 58
  'Contact'                     => 'Kontakt',
59 59
  'Continue'                    => 'Weiter',
60
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
61 60
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
62
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
63
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
64 61
  'Country'                     => 'Land',
65 62
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
66 63
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
locale/de/oe
53 53
  'Confirmation'                => 'Auftragsbest?tigung',
54 54
  'Contact'                     => 'Kontakt',
55 55
  'Continue'                    => 'Weiter',
56
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
57 56
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
58
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
59
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
60 57
  'Country'                     => 'Land',
61 58
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
62 59
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
locale/de/projects
20 20
  'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
21 21
  'Confirmation'                => 'Auftragsbest?tigung',
22 22
  'Contact'                     => 'Kontakt',
23
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
24 23
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
25
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
26
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
27 24
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
28 25
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
29 26
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/reportgenerator
14 14
  'Cc'                          => 'Cc',
15 15
  'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
16 16
  'Confirmation'                => 'Auftragsbest?tigung',
17
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
18 17
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
19
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
20
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
21 18
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
22 19
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
23 20
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/rp
37 37
  'Contact'                     => 'Kontakt',
38 38
  'Continue'                    => 'Weiter',
39 39
  'Copies'                      => 'Kopien',
40
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
41 40
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
42
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
43
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
44 41
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
45 42
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
46 43
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
locale/de/todo
56 56
  'Confirmation'                => 'Auftragsbest?tigung',
57 57
  'Contact'                     => 'Kontakt',
58 58
  'Continue'                    => 'Weiter',
59
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
60 59
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
61
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
62
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
63 60
  'Country'                     => 'Land',
64 61
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
65 62
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
locale/de/wh
24 24
  'Comment'                     => 'Kommentar',
25 25
  'Confirmation'                => 'Auftragsbest?tigung',
26 26
  'Contact'                     => 'Kontakt',
27
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
28 27
  'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
29
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
30
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
31 28
  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
32 29
  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
33 30
  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
templates/webpages/report_generator/pdf_report_de.html
1
[% USE HTML %]<html>
2
 <body>
3

  
4
  <div width="100%">[% TITLE %]</div>
5

  
6
  [%- IF TOP_INFO_TEXT %]
7
  <p>[% TOP_INFO_TEXT %]</p>
8
  [%- END %]
9

  
10
  <p>
11
   <table width="100%">
12
    <tr>
13
     [%- FOREACH col = COLUMN_HEADERS %]
14
     <th>[% IF col.link %]<a href="[% col.link %]">[% END %][% col.text %][% IF col.link %]</a>[% END %]</th>
15
     [%- END %]
16
    </tr>
17

  
18
    [%- FOREACH row = ROWS %]
19
    <tr>
20
     [%- FOREACH col = row.COLUMNS %]
21
     <td[% IF col.align %] align="[% col.align %]"[% END %][% IF col.valign %] valign="[% col.valign %]"[% END %]>
22
      [%- FOREACH cell_row = col.CELL_ROWS %][%- cell_row.data %][%- UNLESS loop.last %]<br>[%- END %][%- END %]
23
     </td>
24
     [%- END %]
25
    </tr>
26
    [%- END %]
27

  
28
   </table>
29
  </p>
30

  
31
  [%- IF BOTTOM_INFO_TEXT %]
32
  <p>[% BOTTOM_INFO_TEXT %]</p>
33
  [%- END %]
34

  
35
 </body>
36
</html>
templates/webpages/report_generator/pdf_report_master.html
1
[% USE HTML %]<html>
2
 <body>
3

  
4
  <div width="100%">[% TITLE %]</div>
5

  
6
  [%- IF TOP_INFO_TEXT %]
7
  <p>[% TOP_INFO_TEXT %]</p>
8
  [%- END %]
9

  
10
  <p>
11
   <table width="100%">
12
    <tr>
13
     [%- FOREACH col = COLUMN_HEADERS %]
14
     <th>[% IF col.link %]<a href="[% col.link %]">[% END %][% col.text %][% IF col.link %]</a>[% END %]</th>
15
     [%- END %]
16
    </tr>
17

  
18
    [%- FOREACH row = ROWS %]
19
    <tr>
20
     [%- FOREACH col = row.COLUMNS %]
21
     <td[% IF col.align %] align="[% col.align %]"[% END %][% IF col.valign %] valign="[% col.valign %]"[% END %]>
22
      [%- FOREACH cell_row = col.CELL_ROWS %][%- cell_row.data %][%- UNLESS loop.last %]<br>[%- END %][%- END %]
23
     </td>
24
     [%- END %]
25
    </tr>
26
    [%- END %]
27

  
28
   </table>
29
  </p>
30

  
31
  [%- IF BOTTOM_INFO_TEXT %]
32
  <p>[% BOTTOM_INFO_TEXT %]</p>
33
  [%- END %]
34

  
35
 </body>
36
</html>

Auch abrufbar als: Unified diff