Zdraím, mám takový problém, dělám na modulu do moodlu ktery bude exportovat obsah kurzů do PDF a nějak se mi nedaří. Dokud jsem měl následující funkce mimo vlastní třídu (strukturovane) tak to fungovalo.
Ted po prvnim $this->pdf->AddPage(); je jen bila stranka
<?php
// Include the main TCPDF library (search for installation path).
require_once('tcpdf/tcpdf.php');
// Extend the TCPDF class to create custom Header and Footer
class MYPDF extends TCPDF {
//Page header
public function Header()
{
// Logo
$image_file = K_PATH_IMAGES.'vspj_logo.jpg';
$this->Image($image_file, 5, 5, 30, '', 'JPG', '', 'T', false, 400, '', false, false, 0, false, false, false);
$this->SetFont('dejavusans', 'B', 20);
// Title
}
public function Head($str)
{
// Set font
$this->SetFont('dejavusans', 'B', 20);
// Title
$this->Cell(0, 15, $str, 0, false, 'C', 0, '', 0, false, 'M', 'M');
}
// Page footer
public function Footer()
{
// Position at 15 mm from bottom
$this->SetY(-15);
// Set font
$this->SetFont('dejavusans', 'I', 8);
// Page number
$this->Cell(0, 10, 'Strana '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
}
class export{
private $pdf;
private $database;
function __construct($DB)
{
$database = $DB;
$this->pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// create new PDF document
// ($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding='UTF-8', $diskcache=false, $this->pdfa=false)
//print_object($this->pdf);
// set document information
$this->pdf->SetCreator(PDF_CREATOR);
$this->pdf->SetAuthor('Michal Paukert');
$this->pdf->SetTitle('Moodle widget module');
$this->pdf->SetSubject('Content to PDF exporter');
$this->pdf->SetKeywords('TCPDF, PDF, export, content');
// set default header data
$this->pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
$this->pdf->setFooterData(array(0,64,0), array(0,64,128));
// set header and footer fonts
$this->pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$this->pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$this->pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$this->pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$this->pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$this->pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$this->pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$this->pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$this->pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set default font subsetting mode
$this->pdf->setFontSubsetting(true);
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$this->pdf->SetFont('dejavusans', '', 14);
// set text shadow effect
//$this->pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));
}
public function Lessons()
{
$this->pdf->AddPage();
$this->pdf->Head("Přednášky");
//Výpis přednášek -- přidat podmínku pro administraci k exportu
$lessons = $database->get_records('lesson', array('course' => $course->id));
foreach($lessons as $lessonitem)
{
$this->pdf->SetFont('helvetica', '', 14, '', true); //Nastavení fontu
$html = '<strong>'.$lessonitem->name.'</strong> <br />'; //Název přednášky
$this->pdf->writeHTML($html, true, 0, true, 0); //Zápis do PDF
$items = $database->get_records('lesson_pages', array('lessonid' => $lessonitem->id)); //Stránky v přednáškách
//PDF ->addPage();
foreach($items as $item)
{
$this->pdf->SetFont('dejavusans', '', 12, '', true);//Nastavení fontu
$html = '<strong>'.$item->title.'</strong><br />'; //Název stránky přednášky
$this->pdf->writeHTML($html, true, 0, true, 0); //Zápis do PDF
$html = $item->contents;
$this->pdf->SetFont('dejavusans', '', 10, '', true); //Nastavení fontu
$this->pdf->writeHTML($html, true, 0, true, 0); //Zápis do PDF
}
}
}
public function Pages()
{
$this->pdf->AddPage();
$this->pdf->Head("Stránky");
//----------------------------------------------------------------------------------------------
//Výpis stránek -- přidat podmínku pro administraci k exportu
$pages = $database->get_records('page', array('course' => $course->id));
foreach($pages as $page)
{
$this->pdf->SetFont('dejavusans', '', 12, '', true);//Nastavení fontu
$html = '<strong>'.$page->name.'</strong> <br />'; //Název stránky
$this->pdf->writeHTML($html, true, 0, true, 0); //Zápis do PDF
$this->pdf->SetFont('helvetica', '', 10, '', true);//Nastavení fontu
$html = $page->content.'<br />'; //Obsah stránky
$this->pdf->writeHTML($html, true, 0, true, 0); //Zápis do PDF
}
}
public function Glossary()
{
$this->pdf->AddPage();
$this->pdf->Head("Slovníky");
//----------------------------------------------------------------------------------------------
//Výpis slovniků -- přidat podmínku pro administraci k exportu
$glossary = $database->get_records('glossary', array('course' => $course->id));
foreach($glossary as $glossitem)
{
$this->pdf->SetFont('dejavusans', '', 12, '', true);//Nastavení fontu
$html = '<strong>'.$glossitem->name.'</strong> <br />'; //Název slovníku
$items = $database->get_records('glossary_entries', array('glossaryid' => $glossitem->id)); //Položky ve slovníku
$this->pdf->writeHTML($html, true, 0, true, 0); //Zápis do PDF
foreach($items as $item)
{
$this->pdf->SetFont('dejavusans', '', 10, '', true);//Nastavení fontu
$html = $item->concept.' - '.strip_tags($item->definition).'<br />'; //Položky ve slovníku
$this->pdf->writeHTML($html, true, 0, true, 0); //Zápis do PDF
}
}
}
public function Output($course)
{
$this->pdf->lastPage();
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$this->pdf->Output($course, 'I');
}
}
a tam kde to volám mám
require_once("class.export.php");
//print_object($DB);
$export = new export($DB);
$export->Lessons();
$export->Pages();
$export->Glossary();
$export->Output($COURSE->fullname);