EN | CS | Přihlásit | Registrovat

PdfResponse

PdfResponse pomocí jednoho řádku vyrendruje šablonu do PDF.

Autor Honza Kuchař
Demo http://projekty.mujserver.net/…cument_root/
Licence LGPL
SVN https://svn.mujserver.net:8443/…sponse/trunk (verze pro PHP 5.2.x) (uživatel: guest, heslo: (nechat prázdné))
Diskuse http://addons.nette.org/cs/pdfresponse?…

Instalace

  1. Stáhněte ze SVN.
  2. Překopírujte složku libs/PdfResponse (ne není to chyba, tato složka má opravdu 17MB)
  3. Začněte používat.

JavaScript v souborech PDF

Zdrojové projekty

Závisí PdfResponse:
mPDF http://mpdf.bpm1.com/
JavaScript support plugin http://www.fpdf.de/…s/addons/36/
Závisí mPDF:
FPDF http://www.fpdf.org/
html2pdf http://html2fpdf.sourceforge.net/
UFPDF http://acko.net/node/56

Použití PdfResponse

Nejjednodušší použití

// In presenter

class MyPresenter extends Presenter {

function actionPdf() {
$html = "<b>ahoj světe!</b>"; // HTML v UTF-8

// Jako 1. parament PDFResponse můžeme předat html v UTF8 nebo objekt implementující rozhraní ITemplate
$this->terminate(new PDFResponse($html));
}
}

Použití s konfigurací

V presenteru můžete šablonu vyrenderovat do PDF např. následující způsobem:

// In presenter

class MyPresenter extends Presenter {

function actionPdf() {
$template = $this->createTemplate()->setFile(APP_DIR."/templates/pdf.phtml");

$pdf = new PDFResponse($template);

// Všechny tyto konfigurace jsou nepovinné:

// Orientace stránky
$pdf->pageOrientaion = PDFResponse::ORIENTATION_LANDSCAPE;
// Formát stránky
$pdf->pageFormat = "A0";
// Okraje stránky
$pdf->pageMargins = "100,0,100,0,20,60";

// Způsob zobrazení PDF
$pdf->displayLayout = "continuous";
// Velikost zobrazení
$pdf->displayZoom = "fullwidth";

// Název dokumentu
$pdf->documentTitle = "Nadpis stránky";
// Dokument vytvořil:
$pdf->documentAuthor = "Jan Kuchař";

// Callback - těsně před odesláním výstupu do prohlížeče
//$pdfRes->onBeforeComplete[] = "test";

$pdf->mPDF->IncludeJS("app.alert('This is alert box created by JavaScript in this PDF file!',3);");
$pdf->mPDF->IncludeJS("app.alert('Now opening print dialog',1);");
$pdf->mPDF->OpenPrintDialog();

// Zde končí nepovinná konfigurace

// Ukončíme presenter -> předáme řízení PDFresponse
$this->terminate($pdf);
}
}

Komentáře Comments feed

Jan Tvrdík | 23. 2. 2010, 19:00 | comment

Řádek self::$mPDFPath = dirname(__FILE__)."/mpdf/mpdf.php"; bych vyhodil. Takovéto magické nastavení tam imho nemá co dělat.

Honza Kuchař | 24. 2. 2010, 8:48 | comment

Máš to tam. Ale teď to zase člověk musí nastavit, pokud to nemá ve složce libs/PdfResponse/mpdf/mpdf.php. (zakomentoval jsem to, kdyby to chtěl někdo raději s původním chováním)

micman | 4. 3. 2010, 9:05 | comment

Nedaří se checkout: # svn co https://guest@svn.mujserver.net:8443/…sponse/trunk

svn: OPTIONS of ‚https://gues­t@svn.mujserver­.net:8443/svn/Net­te_PDFResponse/trun­k‘: could not connect to server (https://svn.mujserver.net:8443)

Honza Kuchař | 5. 3. 2010, 15:20 | comment

Už to jede.

Login to submit a comment