2014-05-14 5 views
5

Generuję pdf z html-stron i chcę ustawić określoną szerokość i wysokość dla każdej strony pliku pdf, nic nie znalazłem w Internecie, ale w pakiecie jest pdf.php zwkhtmltopdf Knp-snappy niestandardowe wysokość/szerokość, która jednostka jest oczekiwana?

protected function configure() 

gdzie te konfiguracje są:

 'page-height'     => null, 
     'page-size'     => null, 
     'page-width'     => null, 

więc nie wiem, która jednostka oczekuje

więc jeśli mogę ustawić go

   'page-height' => 600, 
       'page-width' => 1000, 

gdzie generuję plik pdf, robi się o wiele za duży, więc nie może to być piksele może to ma związek z jakąkolwiek inną opcją? heres moje wezwanie:

  $pdfString=$this->knp_snappy->getOutputFromHtml($html, array(
       'orientation' => 'landscape', 
       'enable-javascript' => true, 
       'javascript-delay' => 1000, 
       'no-stop-slow-scripts' => true, 
       'no-background' => false, 
       'lowquality' => false, 
       'page-height' => 600, 
       'page-width' => 1000, 
       'encoding' => 'utf-8', 
       'images' => true, 
       'cookie' => array(), 
       'dpi' => 300, 
       'image-dpi' => 300, 
       'enable-external-links' => true, 
       'enable-internal-links' => true 
      )); 

muszę mieć konkretną wysokość bo teraz wykresów narysować wycina bo nie wiem dokładnie wysokość wygenerowanego pdf

za wszelką pomoc, dzięki z góry!

Odpowiedz

10

--page-width i --page-height podjęcia prawdziwych jednostek świecie (jak w centymetrach, a nie pikseli)

--page-size przyjmuje wartości jak "A4", "A5", "List", itp

Chociaż to chyba łatwiej nie aby dotknąć tych wartości i po prostu bawić się z układem, którego używasz, lub może użyć --zoom, ale zdecydowanie wybrałbym ulepszenie układu (może mieć układ lub plik CSS specyficzny dla generowania pliku PDF)

+0

dziękuję bardzo, teraz to ma sens, masz podpowiedź, skąd masz te informacje? –

+0

Możesz uruchomić 'wkhtmltopdf -H' z terminala - tutaj jest zrzut pliku wyjściowego: http://wkhtmltopdf.org/usage/wkhtmltopdf.txt – Juanjo

0

ty nie trzeba dotykać pliku Pdf klasy w pakiecie tylko w regulatorze trzeba dodać opcje, gdy dzwonisz do Methode

$response->setContent($this->get('knp_snappy.pdf')->getOutputFromHtml($html,array('page-height' => 200,'page-width' => 50))); 

i to jest acation dziura controlller

/** 
* Displays a form to create a new Delivery entity. 
* 
* @Route("/generate/pdf/ticket/{id}", name="delivery_show_pdf_ticket") 
* @Method("GET") 
* @Template("ShippiesServiceWebAppBundle:Delivery:ticket.html.twig") 
*/ 
public function generatePDFTicketAction($id) 
{ 
    $em = $this->getDoctrine()->getManager(); 

    $entity = $em->getRepository('ShippiesCoreBundle:Delivery')->find($id); 


    $info = array(
     $entity ->getClient()->getCustomerNumber(), 

    ); 
    $infoText = implode('|', $info); 

    $options = array(
     'code' => $infoText, 
     'type' => 'datamatrix', 
     'format' => 'png', 
     'width' => 3, 
     'height' => 3, 
     'color' => array(0, 0, 0), 
    ); 

    $barcode = 
     $this->get('sgk_barcode.generator')->generate($options); 

    $request = $this->getRequest(); 
    $html = $this->render('ShippiesServiceWebAppBundle:Delivery:ticket.html.twig', array('entity' => $entity,'info'=>$infoText,'barcode'=>$barcode,'base_dir' => $this->get('kernel')->getRootDir() . '/../web' . $request->getBasePath())); 
$response = new Response(); 



    $response->setContent($this->get('knp_snappy.pdf')->getOutputFromHtml($html,array('page-height' => 200,'page-width' => 50))); 
$response->headers->set('Content-Type', 'application/pdf'); 
    $response->headers->set('Content-disposition', 'filename=1.pdf'); 

    return $response; 

} 
Powiązane problemy