Przejdź do zawartości

DocToPdf - wbudowane funkcje

Z Primesoft Wiki
Wersja z 9 mar 2022, 13:16 autorstwa Primesoft (dyskusja | edycje) (dodanie opisu isEmptyRs)

1. Wstawienie zmiennej

Opis funkcji Celem funkcji jest bezpośrednie wstawienie wartości zmiennej z danych wejściowych do dokumentu.
Format funkcji ${pole}

gdzie

pole - nazwa pola z danych wejściowych. W przypadku excela jest to nazwa kolumny.

Przykład wywołania ${adres } → ul. wielka 13/5

2. Zamiana liczby na wartość kwotową (inwords)

Nazwa funkcji inwords
Opis funkcji Funkcja zamienia wartość typu float na słowną wartość kwoty z dopisaniem walut.

Język ustalany z poziomu wywołania job w api. (tylko język polski, pozostałe języki wymagają dodania parametru do funkcji w docx)

Format funkcji ${inwords(number, language, currency)}

gdzie

number - liczba zapisana zgodnie z standardem ISO 4217. Parametr może być zmienną pobraną z danych wejściowych, np. ${inwords(brutto)}

language (parametr opcjonalny) - język tłumaczenia, domyślna wartość en (parametr opcjonalny)

currency (parametr opcjonalny) - waluta tłumaczenia, domyślna wartość USD (parametr opcjonalny)

Przykład wywołania ${inwords('21,20')} → dwadzieścia jeden złotych dwadzieścia groszy

${inwords(brutto)} → dwadzieścia jeden złotych dwadzieścia groszy

${inwords('21.20', ' en','USD' )} → twenty dollars twenty cents

${inwords('134,07', ‘pl’, ‘PLN’)} → sto trzydzieści cztery złote siedem groszy

Obsługiwane lokalizacje Funkcja konwertuje kwotę zapisaną liczbą na zapis słowny. Funkcja wspiera poniższe lokalizacje.
Język Identyfikator Liczba Waluta
Belgian French fr_BE + -
Brazilian Portuguese pt_BR + +
Bulgarian bg + -
Czech cs + -
Danish dk + +
Dutch nl + -
English en + +
Estonian et + -
Georgian ka + +
German de + +
French fr + +
Hungarian hu + +
Indonesian id + -
Italian it + -
Lithuanian lt + +
Latvian lv + -
Malay ms + -
Polish pl + +
Romanian ro + +
Slovak sk + -
Spanish es + +
Russian ru + +
Swedish sv + -
Turkish tr + +
Turkmen tk + +
Ukainian ua + +
Yoruba yo + +

3. Formatowanie liczby (format)

Nazwa funkcji format
Opis funkcji Funkcja przekształca liczbę zmiennoprzecinkową na format waluty określonej lokalizacji.
Format funkcji ${format(liczba, lokalizacja)}

gdzie:

liczba - liczba zmiennoprzecinkowa, która podlega formatowaniu. Może być to zmienna pobrana z danych wejściowych, np. ${format(brutto)}

lokalizacja (parametr opcjonalny) - parametr odpowiedzialny za format wyjściowy przekształcenia zmiennej liczbowej na wartość walutową.

Parametr ten musi być zgodny z "Powszechnym repozytorium danych lokalizacji" (CLDR - Unicode Common Locale Data Repository) wykorzystywanych

przez International Components for Unicode (ICU). Obsługiwane formaty dostępne na http://www.localeplanet.com/icu/ , np. pl, pl_PL, en, en_GB, en_US.

Domyślna wartość en_US.

Domyślnie formatowanie: do dwóch miejsc po przecinku

Przykład wywołania ${format(3000.000)} → 3,000.00

${format(brutto,'pl_PL'} → 3 000,00

${format(100000000,'hi_IN')} → 10,00,00,000.00

4. Kod kreskowy, kod QR (barcode)

Nazwa funkcji barcode
Opis funkcji Funkcja wstawia obraz z kodem kreskowym podanym w parametrze.
Format funkcji ${barcode(parametr, typ kodu, szerokość, wysokość)}

gdzie:

parametr - wartość tekstową lub liczbowa. Parametr może być zmienną pobraną z danych wejściowych.

typ kodu - typ kodu kreskowego. Typ kodu zgodny z jest listą podaną poniżej.

szerokość - szerokość obrazu, który ma zawierać kod kreskowy. Szerokość podawana jest pikselach (px).

wysokość - wysokość obrazu, który ma zawierać kod kreskowy. Wysokość podawana jest pikselach (px).

Lista obsługiwanych typów kodów kreskowych:

  • auspost : AusPost 4 State Customer Code
  • azteccode : Aztec Code
  • azteccodecompact : Compact Aztec Code
  • aztecrune : Aztec Runes
  • bc412 : BC412
  • channelcode : Channel Code
  • codablockf : Codablock F
  • code11 : Code 11
  • code128 : Code 128
  • code16k : Code 16K
  • code2of5 : Code 25
  • code32 : Italian Pharmacode
  • code39 : Code 39
  • code39ext : Code 39 Extended
  • code49 : Code 49
  • code93 : Code 93
  • code93ext : Code 93 Extended
  • codeone : Code One
  • coop2of5 : COOP 2 of 5
  • daft : Custom 4 state symbology
  • databarexpanded : GS1 DataBar Expanded
  • databarexpandedcomposite : GS1 DataBar Expanded Composite
  • databarexpandedstacked : GS1 DataBar Expanded Stacked
  • databarexpandedstackedcomposite : GS1 DataBar Expanded Stacked Composite
  • databarlimited : GS1 DataBar Limited
  • databarlimitedcomposite : GS1 DataBar Limited Composite
  • databaromni : GS1 DataBar Omnidirectional
  • databaromnicomposite : GS1 DataBar Omnidirectional Composite
  • databarstacked : GS1 DataBar Stacked
  • databarstackedcomposite : GS1 DataBar Stacked Composite
  • databarstackedomni : GS1 DataBar Stacked Omnidirectional
  • databarstackedomnicomposite : GS1 DataBar Stacked Omnidirectional Composite
  • databartruncated : GS1 DataBar Truncated
  • databartruncatedcomposite : GS1 DataBar Truncated Composite
  • datalogic2of5 : Datalogic 2 of 5
  • datamatrix : Data Matrix
  • datamatrixrectangular : Data Matrix Rectangular
  • dotcode : DotCode
  • ean13 : EAN-13
  • ean13composite : EAN-13 Composite
  • ean14 : GS1-14
  • ean2 : EAN-2 (2 digit addon)
  • ean5 : EAN-5 (5 digit addon)
  • ean8 : EAN-8
  • ean8composite : EAN-8 Composite
  • flattermarken : Flattermarken
  • gs1-128 : GS1-128
  • gs1-128composite : GS1-128 Composite
  • gs1-cc : GS1 Composite 2D Component
  • gs1datamatrix : GS1 Data Matrix
  • gs1datamatrixrectangular : GS1 Data Matrix Rectangular
  • gs1northamericancoupon : GS1 North American Coupon
  • gs1qrcode : GS1 QR Code
  • hanxin : Han Xin Code
  • hibcazteccode : HIBC Aztec Code
  • hibccodablockf : HIBC Codablock F
  • hibccode128 : HIBC Code 128
  • hibccode39 : HIBC Code 39
  • hibcdatamatrix : HIBC Data Matrix
  • hibcdatamatrixrectangular : HIBC Data Matrix Rectangular
  • hibcmicropdf417 : HIBC MicroPDF417
  • hibcpdf417 : HIBC PDF417
  • hibcqrcode : HIBC QR Code
  • iata2of5 : IATA 2 of 5
  • identcode : Deutsche Post Identcode
  • industrial2of5 : Industrial 2 of 5
  • interleaved2of5 : Interleaved 2 of 5 (ITF)
  • isbn : ISBN
  • ismn : ISMN
  • issn : ISSN
  • itf14 : ITF-14
  • japanpost : Japan Post 4 State Customer Code
  • kix : Royal Dutch TPG Post KIX
  • leitcode : Deutsche Post Leitcode
  • matrix2of5 : Matrix 2 of 5
  • maxicode : MaxiCode
  • micropdf417 : MicroPDF417
  • microqrcode : Micro QR Code
  • msi : MSI Modified Plessey
  • onecode : USPS Intelligent Mail
  • pdf417 : PDF417
  • pdf417compact : Compact PDF417
  • pharmacode : Pharmaceutical Binary Code
  • pharmacode2 : Two-track Pharmacode
  • planet : USPS PLANET
  • plessey : Plessey UK
  • posicode : PosiCode
  • postnet : USPS POSTNET
  • pzn : Pharmazentralnummer (PZN)
  • qrcode : QR Code
  • rationalizedCodabar : Codabar
  • raw : Custom 1D symbology
  • royalmail : Royal Mail 4 State Customer Code
  • sscc18 : SSCC-18
  • symbol : Miscellaneous symbols
  • telepen : Telepen
  • telepennumeric : Telepen Numeric
  • ultracode : Ultracode
  • upca : UPC-A
  • upcacomposite : UPC-A Composite
  • upce : UPC-E
  • upcecomposite : UPC-E Composite
Przykład wywołania ${barcode(wartość kodu kreskowego, typ kodu, szerokość, wysokość)}

${barcode(CodeCode128, 'code128', '80px', '80px')}

${barcode(CodeEan13, 'ean13', '80px', '80px')}

${barcode(CodeInterleaved2of5, 'interleaved2of5', '210px', '210px')}

${barcode(CodeQrcode, 'qrcode', '210px', '210px')}

5. Obraz z zewnętrznego źródła (image)

Nazwa funkcji image
Opis funkcji Funkcja wstawia obraz z podanego źródła (adres url)
Format funkcji ${image(url, szerokość, wysokość, ratio)}

gdzie:

url - adres url wstawianego obrazu. Parametr może być zmienną pobraną z danych wejściowych.

szerokość - szerokość wstawianego obrazu. Szerokość podawana jest miarach: cm, mm, in, pt, pc, px, %, em, ex.

wysokość - wysokość wstawianego obrazu. Wysokość podawana jest pikselach cm, mm, in, pt, pc, px, %, em, ex.

ratio - przyjmuje wartości true/false służy do włączenia obsugi proporcji obrazu. Domyślnie parametr ustawiony na false.

Lista obsługiwanych typów obrazów:

  • Windows Enhanced Metafile (*.emf)
  • Windows Metafile (*.wmf)
  • JPEG File Interchange Format(*.jpg; *.jpeg; *.jfif; *.jpe)
  • Portable Network Graphics (*.png)
  • Windows Bitmap (*.bmp; *.dib; *.rle; *.bmz)
  • Graphics Interchange Format (*.gif; *.gfa)
  • Compressed Windows Enhanced Metafile (*.emz)
  • Compressed Windows Metafile (*.wmz)
  • Compressed Macintosh PICT (*.pcz)
  • Tag Image File Format (*.tif; *.tiff)
  • Computer Graphics Metafile (*.cgm)
  • Encapsulated Postscript (*.eps)
  • Macintosh PICT (*.pct; *.pict)
  • WordPerfect Graphics (*.wpg)
Przykład wywołania ${image(UserLogo1)}

${image(UserLogo2, '200')}

${image(UserLogo3, '100px', '100px')}

${image('https://www.google.pl/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png', '100px', '100px')}

${image(UserLogo3, '100px', '800px', 'true')}

6. Instrukcje warunkowe (if)

Nazwa funkcji if
Opis funkcji Funkcja wykonuję podaną instrukcję warunkową. Jeśli instrukcja kończy się wynikiem true, to objęty funkcją

fragment tekstu jest wstawiany do dokumentu. W przeciwnym wypadku fragment jest usuwany.

Format funkcji ${if(warunek)} tekst, który ma się wyświetlić w przypadku gdy parametr = true ${endif}

gdzie:

warunek - instrukcja warunkową zgodną z biblioteką Symfony Expression Language.

Składnia opisana jest na stronie: https://symfony.com/doc/current/components/expression_language/syntax.html.

W instrukcja warunkowych można wykorzystywać zmienne pobrane z danych wejściowych

Przykład wywołania ${if(Recipient_ZIP_Code=='60-650')}

Treść dla adresatów posiadających kod 60-650

${endif}

7. Tworzenie tabel w dokumencie (RECORDSET)

Nazwa funkcji RECORDSET
Opis funkcji Funkcja wstawia w dokumencie tabelę z rekordami pobranymi z danych wejściowych.
Format funkcji ${recordset(pole, 'nazwa')}

gdzie:

recordset - stała nazwa wykorzystywana do funkcji

pole - nazwa pola z danych wejściowych

nazwa (parametr opcjonalny) - nazwa recordsetu

Przykład wywołania

Przykład tabeli:

Przykładowe dane wejściowe:

Wynik działania funckji

Przykład wywołania

${ recordset (lp)}

${recordset(lp, ‘harmonogram’)}

${format(recordset(kapital, ‘harmonogram’), ‘pl’)}

${format(recordset(kapital, ‘harmonogram’) + recordset(finans, ‘harmonogram’), ‘pl’)}

8. Funkcje arytmetyczne

Opis funkcji Funkcja umożliwia wykonywanie wyrażeń za pomocą expression language
Format funkcji ${wyrażenie}

gdzie:

wyrażenie - podstawowa operacja arytmetyczna, np. ${brutto * vat }

Przykład wywołania ${1 + 2} → 3

${1 – 2} → -1

${2 * 2)} → 4

${4 / 2)} → 2

${4.2 + 1.2)} → 5.4

${4,2 + 1,2)} → 5.4

${evaluate((4 + 2) * 3)} → 18

${ZmiennaA} = 12

${ZmiennaA + ZmiennaB * 3} → 72

9. Funkcja Teraz

Nazwa funkcji now
Opis funkcji Funkcja zwraca obecną datę i czas w którym dokument jest generowany w formacie "Y-m-d H:i:s".
Format funkcji ${now( )}
Przykład wywołania ${now()}

10. Funkcja formatowania czasu

Nazwa funkcji dateformat
Opis funkcji Funkcja umożliwia konwertowanie tekstu reprezentującego znacznik czasu z jednego formatu, na inny.
Format funkcji ${dateformat(czas, format)}

gdzie:

czas - tekst będący reprezentacją znacznika czasowego. Interpretuje znaczniki czasowe zapisane w formatach zrozumiałych dla klasy \DateTime

format - formaty daty zgodny z wbudowanymi formatami dat dla PHP

Wartości domyślne argumentów:

  • czas - obecny znacznik czasowy,
  • format - ISO8601
Przykład wywołania ${dateformat('2020-03-12 15:17:22' ,’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00

${dateformat('03/12/2020 15:17:22', ’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00

${dateformat('12.05.2020 15:17', ’g:ia \o\n l jS F Y’)} → 3:17pm on Tuesday 12th May 2020

${dateformat('2020-03-12 15:17:22', ’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00

${dateformat(now(),’m-d-Y’)} → 07-03-2020

11. Zagnieżdżanie funkcji

Opis funkcji Podane powyżej funkcji można dowolnie zagnieżdżać, np.:

${format( recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’), ‘pl’)}

gdzie funkcje realizowane są w następującej kolejności:

  1. recordset (kapital, ‘harmonogram’)
  2. recordset (finans, ‘harmonogram’)
  3. recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’)
  4. format( recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’), ‘pl’)

12. Funkcja sprawdzająca czy tabela RECORDSET jest wypełniona (IsEmptyRs)

Nazwa funkcji IsEmptyRs
Opis funkcji Funkcja zwraca prawdę lub fałsz w zależności od tego czy w pliku z danymi znajdują się wartości do wstawienia w podany RECORDSET.
Format funkcji

${isEmptyRs(nazwa recordsetu)}

gdzie:

nazwa recordsetu - w przypadku jednego recordsetu bez nazwy należy podać "" (pusty string)

Przykład wywołania ${if(!isEmptyRs('nazwa'))}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

${recordset(pole, 'nazwa')}

${endif}