Advertisement
Guest User

Untitled

a guest
Feb 27th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.94 KB | None | 0 0
  1. <?php
  2.  
  3. class PdfSablona
  4. {
  5.  
  6.     private $kodovani;
  7.     private $stitky = array();
  8.    
  9.     public function __construct($kodovani = "UTF-8")
  10.     {
  11.         $this->kodovani = $kodovani;
  12.     }
  13.    
  14.    
  15.     public function pridejStitek($kod, $pocetSloupcu, $opakovani)
  16.     {
  17.         $this->stitky[] = new Stitek($kod, $pocetSloupcu, $opakovani);
  18.     }
  19.    
  20.    
  21.     public function vratStitky()
  22.     {
  23.         return $this->stitky;
  24.     }
  25.    
  26.    
  27.     public function vygenerujHtml()
  28.     {
  29.         $html = "";
  30.        
  31.         $html .= "<html>
  32.            <head>
  33.            <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
  34.            <style type=\"text/css\">
  35.              .column-left{ font-size: 22px; text-align:center; float: left; width: 51%; border-bottom: 1px dotted black; padding-left:0px; padding-top: 7px; padding-bottom: 6px;}
  36.              .column-right{ font-size: 22px; text-align:center; float: right; width: 48%; border-bottom: 1px dotted black; padding-left:0px; padding-top: 7px;  padding-bottom: 6px;border-left: 1px dotted black;}
  37.              .column{ font-size: 22px; text-align:center; width: 100%; border-bottom: 1px dotted black; padding-left:0px; padding-top: 7px;  padding-bottom: 6px;}
  38.            </style>
  39.            </head>
  40.            <body>
  41.            <div class=\"wrap\">
  42.         ";
  43.        
  44.         foreach ($this->stitky as $stitek) {
  45.             $kod = $stitek->vratKod();
  46.        
  47.             for ($i = 0;$i < $stitek->vratOpakovani(); $i++) {
  48.            
  49.                 if($stitek->vratPocetSloupcu() == 1){
  50.                     $html .= "<div class=\"column\">" . $kod . "</div>";
  51.                 } else{
  52.                     $html .= "<div class=\"column-left\">" . $kod . "</div>";
  53.                     $html .= "<div class=\"column-right\">". $kod . "</div>";
  54.                 }
  55.                
  56.             }
  57.         }
  58.            
  59.         $html .= "
  60.            </div>
  61.            </body>
  62.            </html>
  63.         ";
  64.        
  65.         return mb_convert_encoding($html, $this->kodovani);
  66.     }
  67.    
  68.    
  69.     public function __toString()
  70.     {
  71.         $html = $this->vygenerujHtml();
  72.        
  73.         return $html;
  74.     }
  75.  
  76. }
  77.  
  78.  
  79. class Stitek
  80. {
  81.  
  82.     private $kod;
  83.     private $opakovani;
  84.     private $pocetSloupcu;
  85.  
  86.    
  87.     public function __construct($kod, $opakovani, $pocetSloupcu)
  88.     {
  89.         $this->kod = $kod;
  90.         $this->opakovani = $opakovani;
  91.         $this->pocetSloupcu = $pocetSloupcu;
  92.     }
  93.    
  94.    
  95.     public function vratKod()
  96.     {
  97.         return $this->kod;
  98.     }
  99.    
  100.    
  101.     public function vratOpakovani()
  102.     {
  103.         return $this->opakovani;
  104.     }
  105.    
  106.    
  107.     public function vratPocetSloupcu()
  108.     {
  109.         return $this->pocetSloupcu;
  110.     }
  111.    
  112. }
  113.  
  114.  
  115. // use case
  116. $sablona = new PdfSablona("UTF-8");
  117. $pole = [];
  118. $pole[] = '16561-1-5';
  119. $pole[] = 'asda5s5464-2-2';
  120. $pole[] = 'asvsdvd4-2-8';
  121.  
  122. foreach ($pole as $klic => $hodnota)
  123. {
  124.     $hodnoty = explode('-', $hodnota);
  125.     $sablona->pridejStitek($hodnoty[0], $hodnoty[1], $hodnoty[2]);
  126. }
  127.  
  128. $pdf = new mPDF('utf-8', array(100,128), '','',0,0,2,0,0,0);
  129. $pdf->WriteHTML($sablona);  // díky metodě __toString() to může být přímo takhle, případně by se dalo i $sablona->vygenerujHtml()
  130. $content = $pdf->Output('');
  131.  
  132. file_put_contents("temp/a.pdf",$content);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement