2014-05-03 10 views
7

Korzystanie Symfony2.3.4Generowanie PDF z CSS i obrazy

jestem generując dokumenty PDF z tego pakietu: SpraedPDFGeneratorBundle i to jest jej głównym klasa php (chyba): PDFGenerator.php

udało mi się je generować dobrze, ale nie wiem jak ustawić parametr fontPath do generowania pliku PDF zmodyfikowanego css z niektórymi obrazami w nim. tutaj:

///XController.php 
$pdfGenerator = $this->get('spraed.pdf.generator'); 
$pdf = $pdfGenerator->generatePDF($postData/* , 
'UTF-8', array(<SOME_PATH_I_GUESS>) */); 

pierwszy param jest dane html być wyjście do pliku PDF, drugi Jakbym zgadłeś, ale nie jestem pewien, a trzeci jest FontPath.

Rzecz obraz jest też coś, co cenię wskazówki dotyczące ...

Czy ktoś kiedykolwiek pracował z tej wiązki albo pół żartem; jeśli tak, czy możesz mi pomóc?

Odpowiedz

5

Dobrze, znalazłem odpowiedź.

Pytasz dwie rzeczy: Jak dodać obrazy i Jak dodać nowe czcionki.

Dodawanie obrazów

To całkiem proste. Zakładając, że używasz gałązka, trzeba by wykonać następujące czynności:

<img src="{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset("img/MyImage.png") }}" /> 

Oczywiście można też zrobić to makro, więc nie powtórzyć się w każdym miejscu, o tak.

{% macro image(uri) %} 
{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset(uri) }} 
{% endmacro %} 

I go używać jak to

{% import '::imgurimacro.html.twig' as img %} 
... 
<img src="{{ img.image('img/MyImage.png') }}" /> 

i powinno działać.

Dodawanie czcionek

Ten jest nieco bardziej skomplikowany. Najpierw upewnij się, że masz najnowszą wersję Spraed PDF Generator. W composer.json:

"spraed/pdf-generator-bundle": "dev-master" 

Kiedy należy dodać czcionki do nowego pliku PDF, wykonaj następujące czynności:

$pdf = $pdfGenerator->generatePDF($postData , 'UTF-8', array('C:\Windows\Fonts\Font1.ttf', 'C:\Windows\Fonts\Font2.ttf')); 

Następnie należy utworzyć fonts folderu (lub dowolną nazwę swojego wyboru) w web folder (lub gdziekolwiek umieszczasz swoje zasoby) i dodaj tam pliki .ttf.

W pliku gałązka, dodać następujące jako styl CSS: "Hello World"

@font-face { 
    font-family: "MyFontFamily"; 
    src: {{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset('fonts/Font1.ttf') }}; 
} 

Teraz, kiedy piszesz

<p style="font-family: MyFontFamily">Hello World!</p> 

Należy wydrukować użycie zarejestrowanej czcionki w pliku pdf.

Powiązane problemy