Moodle TCPDF exort – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Moodle TCPDF exort – PHP – Fórum – Programujte.comMoodle TCPDF exort – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Hacky0
Newbie
24. 6. 2013   #1
-
0
-

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);
Nahlásit jako SPAM
IP: 83.240.77.–
Reklama
Reklama
Řešení
Hacky0
Newbie
24. 6. 2013   #2
-
0
-
Vyřešeno Nejlepší odpověď

#1 Hacky
stacilo pridat $this-> v promennych vyreseno..

Nahlásit jako SPAM
IP: 83.240.77.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Podobná vlákna

Moodle TCPDF export — založil Hacky

TCPDF, Debian, locale — založil Jirka

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý