X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=topdf.php;h=0126bc616b6a0f45dcf110c36b1d213e08f2d7f5;hb=e14559f16ec474f993208fde7c9065c2aa3d385a;hp=744ef4a2a5907aa41effced4aaa76221b9b3da03;hpb=ed6483fa05ff6f489a7cfc4ff72fdc4d4d8f3889;p=timetracker.git diff --git a/topdf.php b/topdf.php index 744ef4a2..0126bc61 100644 --- a/topdf.php +++ b/topdf.php @@ -159,7 +159,7 @@ if ($totals_only) { if ($bean->getAttribute('chinvoice')) { $colspan++; $html .= ''.$i18n->getKey('label.invoice').''; } $html .= ''; $html .= ''; - + foreach ($items as $item) { // Print a subtotal for a block of grouped values. $cur_date = $item['date']; @@ -234,11 +234,11 @@ if ($totals_only) { } if ($bean->getAttribute('chinvoice')) $html .= ''.htmlspecialchars($item['invoice']).''; $html .= ''; - + $prev_date = $item['date']; if ($print_subtotals) $prev_grouped_by = $item['grouped_by']; } - + // Print a terminating subtotal. if ($print_subtotals) { $html .= ''; @@ -283,7 +283,7 @@ if ($totals_only) { if ($bean->getAttribute('chinvoice')) $html .= ''; $html .= ''; } - + // Print totals. $html .= ' '; $html .= ''; @@ -302,13 +302,18 @@ if ($totals_only) { if ($user->canManageTeam() || $user->isClient()) $html .= $totals['cost']; else - $html .= $totals['expenses']; + $html .= $totals['expenses']; $html .= ''; } if ($bean->getAttribute('chinvoice')) $html .= ''; $html .= ''; $html .= ''; } + +// Output footer. +if (!defined('REPORT_FOOTER') || !(REPORT_FOOTER == false)) // By default we print it unless explicitely defined as false. + $html .= '

'.$i18n->getKey('form.mail.footer').'

'; + // By this time we have html ready. // Determine title for report. @@ -328,21 +333,21 @@ header('Content-Disposition: attachment; filename="timesheet.pdf"'); // Beginning of TCPDF code here. // Extend TCPDF class so that we can use custom header and footer. -class MyyPDF extends TCPDF { +class ttPDF extends TCPDF { public $image_file = 'images/tt_logo.png'; // Image file for the logo in header. public $page_word = 'Page'; // Localized "Page" word in footer, ex: Page 1/2. - + // SetImageFile - sets image file name. public function SetImageFile($imgFile) { $this->image_file = $imgFile; } - + // SetPageWord - sets page word for footer. public function SetPageWord($pageWord) { $this->page_word = $pageWord; } - + // Page header. public function Header() { // Print logo, which is the only element of our custom header. @@ -354,14 +359,14 @@ class MyyPDF extends TCPDF { // Position at 15 mm from bottom. $this->SetY(-15); // Set font. - $this->SetFont('helvetica', 'I', 8); + $this->SetFont('freeserif', 'I', 8); // Print localized page number. $this->Cell(0, 10, $this->page_word.' '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M'); } } // Create new PDF document. -$pdf = new MyyPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); +$pdf = new ttPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // If custom logo file exists - set it. if (file_exists('images/'.$user->team_id.'.png')) @@ -369,8 +374,6 @@ if (file_exists('images/'.$user->team_id.'.png')) // Set page word for the footer. $pdf->SetPageWord($i18n->getKey('label.page')); -// TODO: currently, we have problems rendering PDF in some languages such as Russian (headers, page word). -// Not sure how to fix it... One option is to switch to mPDF - consider. // Set document information. $pdf->SetCreator(PDF_CREATOR); @@ -393,8 +396,8 @@ $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // Add a page. $pdf->AddPage(); -// Set font. -$pdf->SetFont('helvetica', '', 10); +// Set font (freeserif seems to work for all languages). +$pdf->SetFont('freeserif', '', 10); // helvetica here does not work for Russian. // Write HTML. $pdf->writeHTML($html, true, false, false, false, ''); @@ -404,4 +407,3 @@ $pdf->writeHTML($html, true, false, false, false, ''); $pdf->Output('timesheet.pdf', 'D'); // D is for downloads. // End of of TCPDF code. -?> \ No newline at end of file