PHP třída pro generování faktur.


Dostupné metody

Přehled dostupných metod.

Hlavní:


Příklad volání: $pdf->pridejPolozku("Nejaky nazev",1,140.57,'Ks',9,'Popis polozky', 123456);
  • generuj(bool $output) - vygeneruje PDF dokument, pokud je $output (dostupný od verze 2.3.001) true, tak provede výstup do PDF a odeslání na e-mail (pokud je nastaveno)
  • pridejPolozku(str nazev, int mnozstvi = 1, float cena, str mj = '', float dph = 0, str popis = '', int ean = null) - přidá položku faktury, def hodnoty uvedeny v popisu funkce
  • outputPDF() - dostupná od verze 2.3.001 - provede výstup vygenerovaného dokumentu do PDF a odeslání na e-mail (pokud je nastaveno)
  • clearData() - dostupná od verze 2.3.001 - vyčistí data předchozí faktury (adresy odběratele, koncového příjemce, položky faktury, platební informace)

Nastavení:


Příklad volání: $pdf->nastaveni->SetObrazek('logo-pes2.jpg', 6.2, 6.2, 'F',20,20);
  • SetZaokrouhleni(int value, int typ, int zpusob, int rozpusteni, bool pocitatJakoPolozku)
    parametry "typ" a "zpusob" dostupné od verze 2.1.002
    parametry "rozpusteni" a "pocitatJakoPolozku" dostupné od verze 2.2.001
    nastavení zaokrouhlování (0=nezaokrouhlovat, 1=na koruny, 2=na padesátníky), def 0.
    Typ: určuje jakým způsobem pracovat se zaokrouhlením (1 = v polozkach uvadet zaokrouhlena cisla, ale pocitat s nezaokrouhlenymi, 2 = v polozkach uvadet zaokrouhlena cisla a pocitat s temito zaokrouhlenymi cisly, 3 = v polozkach uvadet zaokrouhlena cisla a pocitat s temito zaokrouhlenymi cisly, zaokrouhlit celkovou castku), def. 1.
    Zpusob: zpusob zaokrouhlování (1 = matematicke zaokrouhlení, 2 = zaokrouhlovat nahoru, 3 = zaokrouhlovat dolů), def. 1
    rozpusteni: ur4uje do které sazby započítat zaokrouhlení (1 = nejvyšší sazby na dokladu, 2 = nejnižsí sazby na dokladu, 3 = do sazby s nejvyšší celkovou částkou na dokladu, 4 = do nulové sazby)
    pocitatJakoPolozku: true/false
  • SetSazbyDPH(array) - nastavení sazeb DPH - def array('0' => 'Nulová sazba', '15' => 'První snížená sazba', '10' => 'Druhá snížená sazba', '21' => 'Základní sazba')
  • SetZaokrouhlovatDPH(bool) - funkce zrušena od verze 2.2.001
    vypnutí/zapnutí zaokrouhlování DPH, def false. Pouze ve verzi 2.1.004: pokud je nastaveno na false, tak u plátců DPH dochází k automatickému rozpuštění zaokrouhlení do sazeb DPH
  • SetShrnutiDPH(bool) - zobrazení shrnutí DPH, def true
  • SetObrazek(cesta, hor_pozice, ver_pozice, [opakovat='F' || 'L' || 'A'], [šířka],[výška]) - vykreslí obrázek na zadanou pozici, opakování: F=první strana, L=poslední strana, A=všechny, def F, pokud do hodnoty ver_pozice zadáme text začínající písmenem C a následovaný znakem + nebo - a číslem, tak bude jako vertikální pozice použita pozice podpisové čáry +/- dané číslo (příklad: zadání 'c-15' znaméná 15mm před podpisovou čarou), toto funguje pouze při nastavení opakování na poslední stranu ('L'). Od verze 2.0 je možné tuto funkci volat opakovaně a vložit tak více různých obrázků.
  • SetTextUPodpisu(text, [int velikost_pisma = 8],[styl = '' || 'B']) - vypíše text vlevo od podpisu, styl: B=tučné, nic=normální
  • SetTextKonec(text, [int velikost_pisma = 8],[styl = '' || 'B']) - vypíše text na konci faktury, styl: B=tučné, nic=normální
  • SetCisloFaktury(mixed) - nastaví číslo faktury
  • SetUhrazenoZalohou(float) - výše uhrazených záloh, def 0
  • SetVzdalenostPolozek(float) - vzdalenost jednotlivých položek, def 0
  • SetPodtrzeni(array || false) - nastavit barvu podtržení položek (false=nepodtrhávat), struktura pole: array(0-255,0-255,0-255), def false
  • SetFillcolor(array || false) - DEPRECATED od verze 2.0. Funkci nahrazuje nová funkce SetStyle. - nastavit barvu podbarvení sudých položek (false=nepodbarvovat), struktura pole: array(0-255,0-255,0-255), def array(192,192,192)
  • SetPlatceDPH(bool) - plátce či neplátce DPH, def false
  • SetKodovani(str) - DEPRECATED od verze 1.3, která již nepoužívá ICONV. - nastavení kódování vstupních textů (pro ICONV), def UTF-8
  • SetAutor(str) - nastavení autora PDF dokumentu
  • SetTitulek(str) - titulek PDF dokumentu
  • SetMena(str) - zobrazovaná měna, def CZK
  • SetJmenosouboru(str || false) - DEPRECATED od verze 2.1.004. Použijte nové metody SetNazevSouboru a SetOutputType - název souboru do kterého se má uložit výstup, nebo false pro přímé zobrazení, def false
  • SetNazevSouboru(str) - Dostupná od verze 2.1.004 - název souboru pro uložení. Použije se pro uložení na server a také v interaktivním zobrazení když dá uživatel uložit lokálně.
  • SetOutputType(str) - Dostupná od verze 2.1.004 - určuje výstupní možnosti - D = force download, I = interaktivní zobrazení v prohlížeči (pokud je možné), F = uložení na server, FI = kombinace F a I, FD = kombinace F a D, E = vrátí výstup jako base64 mime multi-part email attachment (RFC 2045).
  • SetZobrazeneSloupce(bool $mj, bool $pocetMj, bool $cenaMj) - Povolení zobrazení konkrétních sloupců u výpisu položek, přidáno ve verzi 24.001
  • SetZobrazovatMJ(bool) - vypnutí / zapnutí zobrazování M.J., počtu M.J. a ceny za M.J.
  • SetSleva(float sleva, [0 || 1 přímo částka nebo procenta], [0 || 1 || 2 kde vypsat], [0 || 1 vypisovat i při nulové slevě]) - Možnost přidání slevy. První parametr určuje slevu samotnou, druhý zda se jedná o procentuální slevu, nebo o slevu přímou, třetí určuje kde vypsat slevu 0 = v položkách, 1 = dole před celkovou cenou, 2 = dole i v položkách, posledním parametrem můžete zajistit vypsání i nulové slevy. Poznámka: pokud je procentuální sleva, tak se automaticky uvede dole u celkové ceny a procenta jsou započítána přímo do cen jednotlivých položek.
  • SetSendEemail(bool) - vypnutí / zapnutí odeslání vygenerované faktury emailem. Fakturu lze emailem zaslat jen když je SetOutputType nastaveno na F nebo FI (pouze v případě uložení PDF na server).
  • SetShrnutiPrazdne(bool) - určuje, zda vypisovat ve shrnutí DPH i položky v sazbách s nulovým základem, def true
  • SetStyle(str, str || array) - dostupná od verze 2.0 - nastavení stylu. Jako první parametr se zadává styl, který chceme nastavit ('fillColor' = barva pozadí rámečků hlavních nadpisů, 'fontColor' = barva písma hlavích nadpisů, 'priceFillColor' = barva pozadí rámečku u celkové ceny, 'priceFontColor' = barva písma u celkové ceny, 'itemFillColor' = barva podbarvení sudých položek, 'itemFontColor' = barva písma sudých položek). Druhým parametrem může být pole s RGB barvami, nebo string HTML barvy (např. FFBBEE), itemFillColor připouští také parametr (bool)false.
  • SetJazyk(str jazyk) - dostupná od verze 2.1 - nastavení jazyka faktury. Uvedený jazyk musí existovat jako soubor ve složce "langs" - viz. vzorové soubory v této složce.
  • SetQRPlatba(bool vypisovat, float x, float y, str umisteni('F' || 'L' || 'PU' || 'PA'), float velikost, int styl (1 || 2 || 3) - dostupná od verze 2.1 - vypsání QR platby. X,y = souřadnice na které bude QR kód vypsán. Umisteni: 'F' = první strana, 'L' = poslední strana, 'PU' = platební údaje - Y souřadnice je pevně nastavena do sekce s platebními údaji, 'PA' = v patičce stránky za posledním vypsaným textem - v této pozici je velikost kód zphledňována pro celkovou výšku patičky a přechody na novou stránku. Velikost = velikost strany QR kódu, doporučujeme tuto velikost nastavit na hodnotu cca 30 a více pro lepší čitelnost, v případě malého rozměru kódu nelze zaručit jeho úspěšné načtení všemi zařízeními. Styl: 1 = orámovaný kód s popisem pod kódem, 2 = bez orámování s popisem napravo od kódu, 3 = bez orámování s popisem pod kódem. IBAN je automaticky generován z čísla účtu, v případě nemožnosti vygenerovat IBAN nebude QR kód vykreslen.
  • SetTypDokladu(int typDokladu) - dostupná od verze 2.1.002 - určuje typ dokladu. 1 = faktura, 2 = proforma. Od verze 2.1.004 je možné zadávat také typy 3 = opravný daňový doklad / dobropis, 4 = storno faktura. Také je od této verze možné zadávat typy slovně (faktura, proforma, odd, storno).
  • SetDoplnujiciInformace(int|str puvodniDoklad, [str duvod = '']) - dostupná od verze 2.1.004 - určuje doplňující informace k dokladům typu ODD/dobropis a STORNO. První parametr udává číslo původního dokladu a druhý údává důvod opravy dokladu.
  • SetCarovyKod(int kod, [float X = 10, float Y = 1, float sirka = 30, float vyska = 10]) - dostupná od verze 2.1.004 - Čárový kód faktury. Vygeneruje čárový kód (code_128) a umístí jej na pozici X,Y. Velikost čárového kódu je dána parametry sirka a vyska.
  • SetReverseCharge(bool val, [string text = '']) - dostupná od verze 2.2.001 - Pokud je první parametr true, tak uvede fakturu do režimu přenesené daňové povinnosti dle $ 92e zákona o DPH. Parametr text určuje text, který se v této souvislosti vypíše pod shrnutím DPH - pokud není zadán, tak se použije přednastavený.
  • SetCastkySDPH(bool val) - dostupná od verze 2.2.005 - Pokud je nastaveno na true, tak částka zadaná v metodě pridejPolozku se bere jako částka s DPH a základ daně + daň jsou dopočítány pomocí koeficientu.
  • SetEET(array data) - dostupná od verze 2.2.005 - Zadání údajů z EET, tyto budou vypsány na konci faktury. Předdefinované klíče pole jsou ([fik],[pkp],[bkp],[rezim],[pokladna],[provozovna], [datum]), pokud zadáte vlastní prvek pole, tak klíč bude vypsán tučně a bude následován hodnotou.
  • setPozicePoznamky(string $val) - dostupná od verze 2.3.001 - Určuje pozici poznámky u položek - možnosti: top | bottom.
  • setBorders(bool $draw, float $width, string $color, float $dash) - dostupná od verze 2.3.001 - Orámování názvu hlavních sekcí. $draw - zapnutí/vypnutí orámování, $width - tloušťka čáry, $color - HEX barva orámování, $dash - šířka přerušení

Dodavatel:


Příklad volání: $pdf->dodavatel->SetJmeno("Petr Daněk");
  • SetFirma(str) - název firmy
  • SetZeme(str) - země, def Česká republika
  • SetTelefon(str) - telefon
  • SetEmail(str) - e-mail
  • SetWeb(str)
  • SetJmeno(str)
  • SetUlice(str)
  • SetPSC(str)
  • SetMesto(str)
  • SetIC(str)
  • SetDIC(str)

Odběratel:


Příklad volání: $pdf->odberatel->SetJmeno('Jiří Vavřín');
  • SetFirma(str) - název firmy
  • SetZeme(str) - země, def Česká republika
  • SetJmeno(str)
  • SetUlice(str)
  • SetPSC(str)
  • SetMesto(str)
  • SetIC(str)
  • SetDIC(str)

Konečný příjemce:


Vypíše se pouze, pokud je nastaveno:
$pdf->nastaveni->SetKonecnyPrijemceVypisovat(true);
$pdf->nastaveni->SetKonecnyPrijemceOdlisnaAdresa(true);

Příklad volání: $pdf->konecnyPrijemce->SetJmeno('Jiří Vavřín');
  • SetFirma(str) - název firmy
  • SetZeme(str) - země, def Česká republika
  • SetJmeno(str)
  • SetUlice(str)
  • SetPSC(str)
  • SetMesto(str)
  • SetIC(str)
  • SetDIC(str)

Informace:


Příklad volání: $pdf->informace->SetVystaveni(date("d.m.Y",time()));
  • SetObjednavka(mixed) - číslo objednávky, na jejímž základě byla vydána faktura
  • SetZedne(str) - den uskutečnění objednávky
  • SetVystaveni(str) - datum vystavení faktury
  • SetSplatnost(str) - datum splatnosti
  • SetPlneni(str) - datum uskutečnění zdanitelného plnění
  • AddParametr(str $nazev, str $hodnota) - přidání vlastního parametru do sekce informace.

Platební údaje:


Příklad volání: $pdf->platebniUdaje->SetZpusobuhrady("Převodem");
  • SetZpusobuhrady(str) - způsob úhrady
  • SetKS(str) - konstantní symbol
  • SetVS(str) - variabilní symbol
  • SetSS(str) - specifický symbol
  • SetCislouctu(str) - číslo účtu - bez kódu banky
  • SetKodbanky(str)
  • AddParametr(str $nazev, str $hodnota) - přidání vlastního parametru do sekce platební údaje.

E-mail:


Příklad volání: $pdf->email->SetAddress("kenod@kenod.net");
  • SetAddress(str) - e-mailová adresa na kterou se zašle faktura.
  • SetPhpMailerPath(str) - cesta ke knihovně PHPMailer (např. $pdf->email->SetPhpMailerPath("faktury/PHPMailer/class.phpmailer.php");)
  • SetFrom(str) - e-mailová adresa odesílatele
  • SetFromName(str) - název odesílatele
  • SetSubject(str) - předmět e-mailu
  • SetBody(str) - tělo e-mailu

Elektronický podpis PDF:


Funkce elektronického podpisu jsou zatím v testovacím stádiu. Funkce jsou dostupné od verze 1.3.
Příklad volání: $pdf->nastaveni->SetPodpis('tcpdf.crt');
  • SetPodpis(str) - pokud je zadána cesta k souboru certifikátu (*.crt), je načten jeho obsah, jinak je použit přímo samotný řetězec. Certifikát musí být ve formátu PEM
  • SetPodpisHeslo(str) - heslo soukromého klíče
  • SetPodpisInfo((str)$name = '', (str)$loc = '', (str)$reason = '', (str)$contact = '') - zadání doplňujících informací - jméno, místo, důvod podpisu a kontakt na podepisovatele
Pokud máte nainstalovaný cestifikát v systému je potřeba jej exportovat a uložit jako PEM. Nejprve je potřeba certifikát uložit do formátu PFX (návod), poté jej příkazem openssl pkcs12 -in vstupni.pfx -out vystupni.crt -nodes převedeme do konečného formátu, který je možný použít pro podpis PDF.