From a1beb6a2e040f325c2d0924fdc266d003095c709 Mon Sep 17 00:00:00 2001 From: Rodrigo Martins Date: Wed, 1 Jan 2025 21:15:15 -0300 Subject: [PATCH] Primeiro commit Signed-off-by: Rodrigo Martins --- .gitignore | 7 + clientes/autocomplete.php | 58 + clientes/client_details.php | 221 + clientes/delete_client.php | 40 + clientes/delete_note.php | 29 + clientes/edit_client.php | 218 + clientes/edit_note.php | 30 + clientes/list_clients.php | 331 + clientes/register_client.php | 203 + composer.json | 5 + composer.lock | 91 + create.php | 19 + favicon.ico | Bin 0 -> 4286 bytes include/logo-nova.png | Bin 0 -> 17890 bytes include/logo.png | Bin 0 -> 14623 bytes include/user-picture.png | Bin 0 -> 798 bytes index.php | 92 + login.php | 124 + logo.svg | 1 + logout.php | 7 + menu.php | 29 + output.txt | 78439 ++++++++++++++++ prova/list_files.php | 144 + prova/process_queue.php | 508 + prova/process_queue.php.bak | 507 + prova/status.php | 81 + prova/status_check.php | 34 + prova/upload.php | 126 + prova/upload_prova.php | 80 + root/.cache/ots/version | 1 + script.js | 12 + script/formatacoes.js | 35 + style.css | 211 + style.js | 8 + style_menu.css | 180 + top_menu.js | 37 + top_menu.php | 66 + upload.html | 80 + vendor/autoload.php | 25 + vendor/composer/ClassLoader.php | 579 + vendor/composer/InstalledVersions.php | 359 + vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 24 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 9 + vendor/composer/autoload_real.php | 38 + vendor/composer/autoload_static.php | 34 + vendor/composer/installed.json | 81 + vendor/composer/installed.php | 32 + vendor/composer/platform_check.php | 26 + vendor/tecnickcom/tcpdf/CHANGELOG.TXT | 3152 + vendor/tecnickcom/tcpdf/LICENSE.TXT | 860 + vendor/tecnickcom/tcpdf/README.md | 83 + vendor/tecnickcom/tcpdf/VERSION | 1 + vendor/tecnickcom/tcpdf/composer.json | 52 + .../tecnickcom/tcpdf/config/tcpdf_config.php | 235 + .../examples/barcodes/example_1d_html.php | 57 + .../examples/barcodes/example_1d_png.php | 56 + .../examples/barcodes/example_1d_svg.php | 57 + .../examples/barcodes/example_1d_svgi.php | 57 + .../barcodes/example_2d_datamatrix_html.php | 57 + .../barcodes/example_2d_datamatrix_png.php | 56 + .../barcodes/example_2d_datamatrix_svg.php | 57 + .../barcodes/example_2d_datamatrix_svgi.php | 57 + .../barcodes/example_2d_pdf417_html.php | 57 + .../barcodes/example_2d_pdf417_png.php | 56 + .../barcodes/example_2d_pdf417_svg.php | 57 + .../barcodes/example_2d_pdf417_svgi.php | 57 + .../barcodes/example_2d_qrcode_html.php | 56 + .../barcodes/example_2d_qrcode_png.php | 56 + .../barcodes/example_2d_qrcode_svg.php | 56 + .../barcodes/example_2d_qrcode_svgi.php | 56 + .../barcodes/tcpdf_barcodes_1d_include.php | 46 + .../barcodes/tcpdf_barcodes_2d_include.php | 46 + .../examples/config/tcpdf_config_alt.php | 230 + .../tcpdf/examples/data/cert/tcpdf.crt | 40 + .../tcpdf/examples/data/cert/tcpdf.fdf | Bin 0 -> 1286 bytes .../tcpdf/examples/data/cert/tcpdf.p12 | Bin 0 -> 1749 bytes .../tcpdf/examples/data/chapter_demo_1.txt | 19 + .../tcpdf/examples/data/chapter_demo_2.txt | 23 + .../tcpdf/examples/data/table_data_demo.txt | 15 + .../tcpdf/examples/data/utf8test.txt | 128 + .../tecnickcom/tcpdf/examples/example_001.php | 110 + .../tecnickcom/tcpdf/examples/example_002.php | 91 + .../tecnickcom/tcpdf/examples/example_003.php | 122 + .../tecnickcom/tcpdf/examples/example_004.php | 123 + .../tecnickcom/tcpdf/examples/example_005.php | 160 + .../tecnickcom/tcpdf/examples/example_006.php | 347 + .../tecnickcom/tcpdf/examples/example_007.php | 117 + .../tecnickcom/tcpdf/examples/example_008.php | 99 + .../tecnickcom/tcpdf/examples/example_009.php | 148 + .../tecnickcom/tcpdf/examples/example_010.php | 152 + .../tecnickcom/tcpdf/examples/example_011.php | 141 + .../tecnickcom/tcpdf/examples/example_012.pdf | Bin 0 -> 13214 bytes .../tecnickcom/tcpdf/examples/example_012.php | 207 + .../tecnickcom/tcpdf/examples/example_013.php | 231 + .../tecnickcom/tcpdf/examples/example_014.php | 197 + .../tecnickcom/tcpdf/examples/example_015.php | 164 + .../tecnickcom/tcpdf/examples/example_016.php | 136 + .../tecnickcom/tcpdf/examples/example_017.php | 120 + .../tecnickcom/tcpdf/examples/example_018.php | 130 + .../tecnickcom/tcpdf/examples/example_019.php | 100 + .../tecnickcom/tcpdf/examples/example_020.php | 149 + .../tecnickcom/tcpdf/examples/example_021.php | 93 + .../tecnickcom/tcpdf/examples/example_022.php | 148 + .../tecnickcom/tcpdf/examples/example_023.php | 115 + .../tecnickcom/tcpdf/examples/example_024.php | 142 + .../tecnickcom/tcpdf/examples/example_025.php | 120 + .../tecnickcom/tcpdf/examples/example_026.php | 146 + .../tecnickcom/tcpdf/examples/example_027.php | 420 + .../tecnickcom/tcpdf/examples/example_028.php | 140 + .../tecnickcom/tcpdf/examples/example_029.php | 126 + .../tecnickcom/tcpdf/examples/example_030.php | 190 + .../tecnickcom/tcpdf/examples/example_031.php | 105 + .../tecnickcom/tcpdf/examples/example_032.php | 93 + .../tecnickcom/tcpdf/examples/example_033.php | 107 + .../tecnickcom/tcpdf/examples/example_034.php | 98 + .../tecnickcom/tcpdf/examples/example_035.php | 113 + .../tecnickcom/tcpdf/examples/example_036.php | 91 + .../tecnickcom/tcpdf/examples/example_037.php | 149 + .../tecnickcom/tcpdf/examples/example_038.php | 94 + .../tecnickcom/tcpdf/examples/example_039.php | 106 + .../tecnickcom/tcpdf/examples/example_040.php | 118 + .../tecnickcom/tcpdf/examples/example_041.php | 93 + .../tecnickcom/tcpdf/examples/example_042.php | 104 + .../tecnickcom/tcpdf/examples/example_043.php | 87 + .../tecnickcom/tcpdf/examples/example_044.php | 130 + .../tecnickcom/tcpdf/examples/example_045.php | 143 + .../tecnickcom/tcpdf/examples/example_046.php | 125 + .../tecnickcom/tcpdf/examples/example_047.php | 119 + .../tecnickcom/tcpdf/examples/example_048.php | 316 + .../tecnickcom/tcpdf/examples/example_049.php | 128 + .../tecnickcom/tcpdf/examples/example_050.php | 212 + .../tecnickcom/tcpdf/examples/example_051.php | 148 + .../tecnickcom/tcpdf/examples/example_052.php | 123 + .../tecnickcom/tcpdf/examples/example_053.php | 110 + .../tecnickcom/tcpdf/examples/example_054.php | 131 + .../tecnickcom/tcpdf/examples/example_055.php | 118 + .../tecnickcom/tcpdf/examples/example_056.php | 135 + .../tecnickcom/tcpdf/examples/example_057.php | 270 + .../tecnickcom/tcpdf/examples/example_058.php | 97 + .../tecnickcom/tcpdf/examples/example_059.php | 193 + .../tecnickcom/tcpdf/examples/example_060.php | 110 + .../tecnickcom/tcpdf/examples/example_061.php | 267 + .../tecnickcom/tcpdf/examples/example_062.php | 142 + .../tecnickcom/tcpdf/examples/example_063.php | 133 + .../tecnickcom/tcpdf/examples/example_064.php | 178 + .../tecnickcom/tcpdf/examples/example_065.php | 100 + .../tecnickcom/tcpdf/examples/example_066.php | 88 + .../tecnickcom/tcpdf/examples/example_067.php | 223 + .../tcpdf/examples/images/_blank.png | Bin 0 -> 137 bytes .../tcpdf/examples/images/alpha.png | Bin 0 -> 23862 bytes .../tcpdf/examples/images/image_demo.jpg | Bin 0 -> 573845 bytes .../examples/images/image_with_alpha.png | Bin 0 -> 243788 bytes .../tecnickcom/tcpdf/examples/images/img.png | Bin 0 -> 194711 bytes .../tcpdf/examples/images/logo_example.gif | Bin 0 -> 21022 bytes .../tcpdf/examples/images/logo_example.jpg | Bin 0 -> 32732 bytes .../tcpdf/examples/images/logo_example.png | Bin 0 -> 17829 bytes .../tcpdf/examples/images/tcpdf_box.ai | 214 + .../tcpdf/examples/images/tcpdf_box.svg | 69 + .../tcpdf/examples/images/tcpdf_cell.png | Bin 0 -> 38367 bytes .../tcpdf/examples/images/tcpdf_logo.jpg | Bin 0 -> 17633 bytes .../tcpdf/examples/images/tcpdf_signature.png | Bin 0 -> 67764 bytes .../tcpdf/examples/images/testsvg.svg | 328 + .../tecnickcom/tcpdf/examples/images/tux.svg | 1487 + vendor/tecnickcom/tcpdf/examples/index.php | 117 + vendor/tecnickcom/tcpdf/examples/lang/afr.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/ara.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/aze.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/bel.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/bra.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/bul.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/cat.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/ces.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/chi.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/cym.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/dan.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/eng.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/est.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/eus.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/far.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/fra.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/ger.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/gle.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/glg.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/hat.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/heb.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/hrv.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/hun.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/hye.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/ind.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/ita.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/jpn.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/kat.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/kor.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/mkd.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/mlt.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/msa.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/nld.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/nob.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/pol.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/por.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/ron.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/rus.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/slv.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/spa.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/sqi.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/srp.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/swa.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/swe.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/ukr.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/urd.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/yid.php | 44 + vendor/tecnickcom/tcpdf/examples/lang/zho.php | 44 + .../tcpdf/examples/tcpdf_include.php | 49 + .../tcpdf/fonts/ae_fonts_2.0/COPYING | 343 + .../tcpdf/fonts/ae_fonts_2.0/ChangeLog | 863 + .../tcpdf/fonts/ae_fonts_2.0/README | 58 + .../tecnickcom/tcpdf/fonts/aealarabiya.ctg.z | Bin 0 -> 1849 bytes vendor/tecnickcom/tcpdf/fonts/aealarabiya.php | 16 + vendor/tecnickcom/tcpdf/fonts/aealarabiya.z | Bin 0 -> 56189 bytes vendor/tecnickcom/tcpdf/fonts/aefurat.ctg.z | Bin 0 -> 1843 bytes vendor/tecnickcom/tcpdf/fonts/aefurat.php | 16 + vendor/tecnickcom/tcpdf/fonts/aefurat.z | Bin 0 -> 74520 bytes vendor/tecnickcom/tcpdf/fonts/cid0cs.php | 17 + vendor/tecnickcom/tcpdf/fonts/cid0ct.php | 17 + vendor/tecnickcom/tcpdf/fonts/cid0jp.php | 17 + vendor/tecnickcom/tcpdf/fonts/cid0kr.php | 17 + vendor/tecnickcom/tcpdf/fonts/courier.php | 12 + vendor/tecnickcom/tcpdf/fonts/courierb.php | 12 + vendor/tecnickcom/tcpdf/fonts/courierbi.php | 12 + vendor/tecnickcom/tcpdf/fonts/courieri.php | 12 + .../tcpdf/fonts/dejavu-fonts-ttf-2.33/AUTHORS | 53 + .../tcpdf/fonts/dejavu-fonts-ttf-2.33/BUGS | 3 + .../tcpdf/fonts/dejavu-fonts-ttf-2.33/LICENSE | 99 + .../tcpdf/fonts/dejavu-fonts-ttf-2.33/NEWS | 1315 + .../tcpdf/fonts/dejavu-fonts-ttf-2.33/README | 59 + .../fonts/dejavu-fonts-ttf-2.33/langcover.txt | 242 + .../fonts/dejavu-fonts-ttf-2.33/unicover.txt | 215 + .../tcpdf/fonts/dejavu-fonts-ttf-2.34/AUTHORS | 54 + .../tcpdf/fonts/dejavu-fonts-ttf-2.34/BUGS | 3 + .../tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE | 99 + .../tcpdf/fonts/dejavu-fonts-ttf-2.34/NEWS | 1373 + .../tcpdf/fonts/dejavu-fonts-ttf-2.34/README | 59 + .../fonts/dejavu-fonts-ttf-2.34/langcover.txt | 249 + .../fonts/dejavu-fonts-ttf-2.34/unicover.txt | 226 + .../tecnickcom/tcpdf/fonts/dejavusans.ctg.z | Bin 0 -> 10454 bytes vendor/tecnickcom/tcpdf/fonts/dejavusans.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavusans.z | Bin 0 -> 375806 bytes .../tecnickcom/tcpdf/fonts/dejavusansb.ctg.z | Bin 0 -> 10200 bytes vendor/tecnickcom/tcpdf/fonts/dejavusansb.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavusansb.z | Bin 0 -> 347269 bytes .../tecnickcom/tcpdf/fonts/dejavusansbi.ctg.z | Bin 0 -> 9101 bytes .../tecnickcom/tcpdf/fonts/dejavusansbi.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavusansbi.z | Bin 0 -> 326692 bytes .../tcpdf/fonts/dejavusanscondensed.ctg.z | Bin 0 -> 10454 bytes .../tcpdf/fonts/dejavusanscondensed.php | 16 + .../tcpdf/fonts/dejavusanscondensed.z | Bin 0 -> 330293 bytes .../tcpdf/fonts/dejavusanscondensedb.ctg.z | Bin 0 -> 10200 bytes .../tcpdf/fonts/dejavusanscondensedb.php | 16 + .../tcpdf/fonts/dejavusanscondensedb.z | Bin 0 -> 326753 bytes .../tcpdf/fonts/dejavusanscondensedbi.ctg.z | Bin 0 -> 9101 bytes .../tcpdf/fonts/dejavusanscondensedbi.php | 16 + .../tcpdf/fonts/dejavusanscondensedbi.z | Bin 0 -> 312796 bytes .../tcpdf/fonts/dejavusanscondensedi.ctg.z | Bin 0 -> 9343 bytes .../tcpdf/fonts/dejavusanscondensedi.php | 16 + .../tcpdf/fonts/dejavusanscondensedi.z | Bin 0 -> 308709 bytes .../tcpdf/fonts/dejavusansextralight.ctg.z | Bin 0 -> 3989 bytes .../tcpdf/fonts/dejavusansextralight.php | 16 + .../tcpdf/fonts/dejavusansextralight.z | Bin 0 -> 173046 bytes .../tecnickcom/tcpdf/fonts/dejavusansi.ctg.z | Bin 0 -> 9343 bytes vendor/tecnickcom/tcpdf/fonts/dejavusansi.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavusansi.z | Bin 0 -> 326859 bytes .../tcpdf/fonts/dejavusansmono.ctg.z | Bin 0 -> 6361 bytes .../tecnickcom/tcpdf/fonts/dejavusansmono.php | 16 + .../tecnickcom/tcpdf/fonts/dejavusansmono.z | Bin 0 -> 198919 bytes .../tcpdf/fonts/dejavusansmonob.ctg.z | Bin 0 -> 6120 bytes .../tcpdf/fonts/dejavusansmonob.php | 16 + .../tecnickcom/tcpdf/fonts/dejavusansmonob.z | Bin 0 -> 193788 bytes .../tcpdf/fonts/dejavusansmonobi.ctg.z | Bin 0 -> 4983 bytes .../tcpdf/fonts/dejavusansmonobi.php | 16 + .../tecnickcom/tcpdf/fonts/dejavusansmonobi.z | Bin 0 -> 145530 bytes .../tcpdf/fonts/dejavusansmonoi.ctg.z | Bin 0 -> 5221 bytes .../tcpdf/fonts/dejavusansmonoi.php | 16 + .../tecnickcom/tcpdf/fonts/dejavusansmonoi.z | Bin 0 -> 147290 bytes .../tecnickcom/tcpdf/fonts/dejavuserif.ctg.z | Bin 0 -> 6458 bytes vendor/tecnickcom/tcpdf/fonts/dejavuserif.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavuserif.z | Bin 0 -> 205777 bytes .../tecnickcom/tcpdf/fonts/dejavuserifb.ctg.z | Bin 0 -> 6199 bytes .../tecnickcom/tcpdf/fonts/dejavuserifb.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavuserifb.z | Bin 0 -> 191695 bytes .../tcpdf/fonts/dejavuserifbi.ctg.z | Bin 0 -> 6206 bytes .../tecnickcom/tcpdf/fonts/dejavuserifbi.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavuserifbi.z | Bin 0 -> 193465 bytes .../tcpdf/fonts/dejavuserifcondensed.ctg.z | Bin 0 -> 6458 bytes .../tcpdf/fonts/dejavuserifcondensed.php | 16 + .../tcpdf/fonts/dejavuserifcondensed.z | Bin 0 -> 184689 bytes .../tcpdf/fonts/dejavuserifcondensedb.ctg.z | Bin 0 -> 6199 bytes .../tcpdf/fonts/dejavuserifcondensedb.php | 16 + .../tcpdf/fonts/dejavuserifcondensedb.z | Bin 0 -> 175232 bytes .../tcpdf/fonts/dejavuserifcondensedbi.ctg.z | Bin 0 -> 6206 bytes .../tcpdf/fonts/dejavuserifcondensedbi.php | 16 + .../tcpdf/fonts/dejavuserifcondensedbi.z | Bin 0 -> 195428 bytes .../tcpdf/fonts/dejavuserifcondensedi.ctg.z | Bin 0 -> 6435 bytes .../tcpdf/fonts/dejavuserifcondensedi.php | 16 + .../tcpdf/fonts/dejavuserifcondensedi.z | Bin 0 -> 197832 bytes .../tecnickcom/tcpdf/fonts/dejavuserifi.ctg.z | Bin 0 -> 6435 bytes .../tecnickcom/tcpdf/fonts/dejavuserifi.php | 16 + vendor/tecnickcom/tcpdf/fonts/dejavuserifi.z | Bin 0 -> 195509 bytes .../tcpdf/fonts/freefont-20100919/AUTHORS | 235 + .../tcpdf/fonts/freefont-20100919/COPYING | 674 + .../tcpdf/fonts/freefont-20100919/CREDITS | 581 + .../tcpdf/fonts/freefont-20100919/ChangeLog | 6325 ++ .../tcpdf/fonts/freefont-20100919/INSTALL | 86 + .../tcpdf/fonts/freefont-20100919/README | 108 + .../tcpdf/fonts/freefont-20120503/AUTHORS | 242 + .../tcpdf/fonts/freefont-20120503/COPYING | 674 + .../tcpdf/fonts/freefont-20120503/CREDITS | 597 + .../tcpdf/fonts/freefont-20120503/ChangeLog | 14707 +++ .../tcpdf/fonts/freefont-20120503/INSTALL | 98 + .../tcpdf/fonts/freefont-20120503/README | 127 + .../fonts/freefont-20120503/TROUBLESHOOTING | 115 + .../tcpdf/fonts/freefont-20120503/USAGE | 185 + vendor/tecnickcom/tcpdf/fonts/freemono.ctg.z | Bin 0 -> 7904 bytes vendor/tecnickcom/tcpdf/fonts/freemono.php | 16 + vendor/tecnickcom/tcpdf/fonts/freemono.z | Bin 0 -> 304768 bytes vendor/tecnickcom/tcpdf/fonts/freemonob.ctg.z | Bin 0 -> 3968 bytes vendor/tecnickcom/tcpdf/fonts/freemonob.php | 16 + vendor/tecnickcom/tcpdf/fonts/freemonob.z | Bin 0 -> 161601 bytes .../tecnickcom/tcpdf/fonts/freemonobi.ctg.z | Bin 0 -> 3528 bytes vendor/tecnickcom/tcpdf/fonts/freemonobi.php | 16 + vendor/tecnickcom/tcpdf/fonts/freemonobi.z | Bin 0 -> 170654 bytes vendor/tecnickcom/tcpdf/fonts/freemonoi.ctg.z | Bin 0 -> 4364 bytes vendor/tecnickcom/tcpdf/fonts/freemonoi.php | 16 + vendor/tecnickcom/tcpdf/fonts/freemonoi.z | Bin 0 -> 221911 bytes vendor/tecnickcom/tcpdf/fonts/freesans.ctg.z | Bin 0 -> 8661 bytes vendor/tecnickcom/tcpdf/fonts/freesans.php | 16 + vendor/tecnickcom/tcpdf/fonts/freesans.z | Bin 0 -> 807705 bytes vendor/tecnickcom/tcpdf/fonts/freesansb.ctg.z | Bin 0 -> 5192 bytes vendor/tecnickcom/tcpdf/fonts/freesansb.php | 16 + vendor/tecnickcom/tcpdf/fonts/freesansb.z | Bin 0 -> 238874 bytes .../tecnickcom/tcpdf/fonts/freesansbi.ctg.z | Bin 0 -> 4626 bytes vendor/tecnickcom/tcpdf/fonts/freesansbi.php | 16 + vendor/tecnickcom/tcpdf/fonts/freesansbi.z | Bin 0 -> 194919 bytes vendor/tecnickcom/tcpdf/fonts/freesansi.ctg.z | Bin 0 -> 4927 bytes vendor/tecnickcom/tcpdf/fonts/freesansi.php | 16 + vendor/tecnickcom/tcpdf/fonts/freesansi.z | Bin 0 -> 424478 bytes vendor/tecnickcom/tcpdf/fonts/freeserif.ctg.z | Bin 0 -> 12610 bytes vendor/tecnickcom/tcpdf/fonts/freeserif.php | 16 + vendor/tecnickcom/tcpdf/fonts/freeserif.z | Bin 0 -> 1835770 bytes .../tecnickcom/tcpdf/fonts/freeserifb.ctg.z | Bin 0 -> 7834 bytes vendor/tecnickcom/tcpdf/fonts/freeserifb.php | 16 + vendor/tecnickcom/tcpdf/fonts/freeserifb.z | Bin 0 -> 688505 bytes .../tecnickcom/tcpdf/fonts/freeserifbi.ctg.z | Bin 0 -> 5104 bytes vendor/tecnickcom/tcpdf/fonts/freeserifbi.php | 16 + vendor/tecnickcom/tcpdf/fonts/freeserifbi.z | Bin 0 -> 345721 bytes .../tecnickcom/tcpdf/fonts/freeserifi.ctg.z | Bin 0 -> 5353 bytes vendor/tecnickcom/tcpdf/fonts/freeserifi.php | 16 + vendor/tecnickcom/tcpdf/fonts/freeserifi.z | Bin 0 -> 536112 bytes vendor/tecnickcom/tcpdf/fonts/helvetica.php | 13 + vendor/tecnickcom/tcpdf/fonts/helveticab.php | 12 + vendor/tecnickcom/tcpdf/fonts/helveticabi.php | 12 + vendor/tecnickcom/tcpdf/fonts/helveticai.php | 12 + .../tcpdf/fonts/hysmyeongjostdmedium.php | 48 + .../tecnickcom/tcpdf/fonts/kozgopromedium.php | 65 + .../tcpdf/fonts/kozminproregular.php | 63 + .../tecnickcom/tcpdf/fonts/msungstdlight.php | 38 + vendor/tecnickcom/tcpdf/fonts/pdfacourier.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfacourier.z | Bin 0 -> 37531 bytes .../tecnickcom/tcpdf/fonts/pdfacourierb.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfacourierb.z | Bin 0 -> 39588 bytes .../tecnickcom/tcpdf/fonts/pdfacourierbi.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfacourierbi.z | Bin 0 -> 44697 bytes .../tecnickcom/tcpdf/fonts/pdfacourieri.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfacourieri.z | Bin 0 -> 35283 bytes .../tecnickcom/tcpdf/fonts/pdfahelvetica.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfahelvetica.z | Bin 0 -> 25258 bytes .../tecnickcom/tcpdf/fonts/pdfahelveticab.php | 15 + .../tecnickcom/tcpdf/fonts/pdfahelveticab.z | Bin 0 -> 25613 bytes .../tcpdf/fonts/pdfahelveticabi.php | 15 + .../tecnickcom/tcpdf/fonts/pdfahelveticabi.z | Bin 0 -> 32971 bytes .../tecnickcom/tcpdf/fonts/pdfahelveticai.php | 15 + .../tecnickcom/tcpdf/fonts/pdfahelveticai.z | Bin 0 -> 29093 bytes vendor/tecnickcom/tcpdf/fonts/pdfasymbol.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfasymbol.z | Bin 0 -> 30488 bytes vendor/tecnickcom/tcpdf/fonts/pdfatimes.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfatimes.z | Bin 0 -> 39032 bytes vendor/tecnickcom/tcpdf/fonts/pdfatimesb.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfatimesb.z | Bin 0 -> 38174 bytes vendor/tecnickcom/tcpdf/fonts/pdfatimesbi.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfatimesbi.z | Bin 0 -> 40718 bytes vendor/tecnickcom/tcpdf/fonts/pdfatimesi.php | 15 + vendor/tecnickcom/tcpdf/fonts/pdfatimesi.z | Bin 0 -> 35922 bytes .../tcpdf/fonts/pdfazapfdingbats.php | 15 + .../tecnickcom/tcpdf/fonts/pdfazapfdingbats.z | Bin 0 -> 50768 bytes .../tecnickcom/tcpdf/fonts/stsongstdlight.php | 39 + vendor/tecnickcom/tcpdf/fonts/symbol.php | 12 + vendor/tecnickcom/tcpdf/fonts/times.php | 12 + vendor/tecnickcom/tcpdf/fonts/timesb.php | 12 + vendor/tecnickcom/tcpdf/fonts/timesbi.php | 12 + vendor/tecnickcom/tcpdf/fonts/timesi.php | 12 + .../tecnickcom/tcpdf/fonts/uni2cid_ac15.php | 6 + .../tecnickcom/tcpdf/fonts/uni2cid_ag15.php | 6 + .../tecnickcom/tcpdf/fonts/uni2cid_aj16.php | 6 + .../tecnickcom/tcpdf/fonts/uni2cid_ak12.php | 6 + .../tecnickcom/tcpdf/fonts/zapfdingbats.php | 12 + .../tcpdf/include/barcodes/datamatrix.php | 1176 + .../tcpdf/include/barcodes/pdf417.php | 996 + .../tcpdf/include/barcodes/qrcode.php | 2843 + vendor/tecnickcom/tcpdf/include/sRGB.icc | Bin 0 -> 6922 bytes .../tecnickcom/tcpdf/include/tcpdf_colors.php | 462 + .../tcpdf/include/tcpdf_filters.php | 481 + .../tcpdf/include/tcpdf_font_data.php | 18447 ++++ .../tecnickcom/tcpdf/include/tcpdf_fonts.php | 2657 + .../tecnickcom/tcpdf/include/tcpdf_images.php | 359 + .../tecnickcom/tcpdf/include/tcpdf_static.php | 2641 + vendor/tecnickcom/tcpdf/tcpdf.php | 24793 +++++ vendor/tecnickcom/tcpdf/tcpdf_autoconfig.php | 245 + vendor/tecnickcom/tcpdf/tcpdf_barcodes_1d.php | 2356 + vendor/tecnickcom/tcpdf/tcpdf_barcodes_2d.php | 349 + vendor/tecnickcom/tcpdf/tcpdf_import.php | 104 + vendor/tecnickcom/tcpdf/tcpdf_parser.php | 815 + vendor/tecnickcom/tcpdf/tools/.htaccess | 10 + .../tcpdf/tools/convert_fonts_examples.txt | 28 + .../tecnickcom/tcpdf/tools/tcpdf_addfont.php | 269 + 425 files changed, 193665 insertions(+) create mode 100644 .gitignore create mode 100644 clientes/autocomplete.php create mode 100644 clientes/client_details.php create mode 100644 clientes/delete_client.php create mode 100644 clientes/delete_note.php create mode 100644 clientes/edit_client.php create mode 100644 clientes/edit_note.php create mode 100644 clientes/list_clients.php create mode 100644 clientes/register_client.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 create.php create mode 100644 favicon.ico create mode 100644 include/logo-nova.png create mode 100644 include/logo.png create mode 100644 include/user-picture.png create mode 100644 index.php create mode 100644 login.php create mode 100644 logo.svg create mode 100644 logout.php create mode 100644 menu.php create mode 100644 output.txt create mode 100644 prova/list_files.php create mode 100644 prova/process_queue.php create mode 100644 prova/process_queue.php.bak create mode 100644 prova/status.php create mode 100644 prova/status_check.php create mode 100644 prova/upload.php create mode 100644 prova/upload_prova.php create mode 100644 root/.cache/ots/version create mode 100644 script.js create mode 100644 script/formatacoes.js create mode 100644 style.css create mode 100644 style.js create mode 100644 style_menu.css create mode 100644 top_menu.js create mode 100644 top_menu.php create mode 100644 upload.html create mode 100644 vendor/autoload.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/InstalledVersions.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/composer/installed.php create mode 100644 vendor/composer/platform_check.php create mode 100644 vendor/tecnickcom/tcpdf/CHANGELOG.TXT create mode 100644 vendor/tecnickcom/tcpdf/LICENSE.TXT create mode 100644 vendor/tecnickcom/tcpdf/README.md create mode 100644 vendor/tecnickcom/tcpdf/VERSION create mode 100644 vendor/tecnickcom/tcpdf/composer.json create mode 100644 vendor/tecnickcom/tcpdf/config/tcpdf_config.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_html.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_png.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_svg.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_svgi.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_html.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_png.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_svg.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_svgi.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_html.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_png.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_svg.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_svgi.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_html.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_png.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_svg.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_svgi.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/tcpdf_barcodes_1d_include.php create mode 100644 vendor/tecnickcom/tcpdf/examples/barcodes/tcpdf_barcodes_2d_include.php create mode 100644 vendor/tecnickcom/tcpdf/examples/config/tcpdf_config_alt.php create mode 100644 vendor/tecnickcom/tcpdf/examples/data/cert/tcpdf.crt create mode 100644 vendor/tecnickcom/tcpdf/examples/data/cert/tcpdf.fdf create mode 100644 vendor/tecnickcom/tcpdf/examples/data/cert/tcpdf.p12 create mode 100644 vendor/tecnickcom/tcpdf/examples/data/chapter_demo_1.txt create mode 100644 vendor/tecnickcom/tcpdf/examples/data/chapter_demo_2.txt create mode 100644 vendor/tecnickcom/tcpdf/examples/data/table_data_demo.txt create mode 100644 vendor/tecnickcom/tcpdf/examples/data/utf8test.txt create mode 100644 vendor/tecnickcom/tcpdf/examples/example_001.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_002.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_003.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_004.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_005.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_006.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_007.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_008.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_009.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_010.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_011.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_012.pdf create mode 100644 vendor/tecnickcom/tcpdf/examples/example_012.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_013.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_014.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_015.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_016.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_017.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_018.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_019.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_020.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_021.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_022.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_023.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_024.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_025.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_026.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_027.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_028.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_029.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_030.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_031.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_032.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_033.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_034.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_035.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_036.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_037.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_038.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_039.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_040.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_041.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_042.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_043.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_044.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_045.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_046.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_047.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_048.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_049.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_050.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_051.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_052.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_053.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_054.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_055.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_056.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_057.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_058.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_059.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_060.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_061.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_062.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_063.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_064.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_065.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_066.php create mode 100644 vendor/tecnickcom/tcpdf/examples/example_067.php create mode 100644 vendor/tecnickcom/tcpdf/examples/images/_blank.png create mode 100644 vendor/tecnickcom/tcpdf/examples/images/alpha.png create mode 100644 vendor/tecnickcom/tcpdf/examples/images/image_demo.jpg create mode 100644 vendor/tecnickcom/tcpdf/examples/images/image_with_alpha.png create mode 100644 vendor/tecnickcom/tcpdf/examples/images/img.png create mode 100644 vendor/tecnickcom/tcpdf/examples/images/logo_example.gif create mode 100644 vendor/tecnickcom/tcpdf/examples/images/logo_example.jpg create mode 100644 vendor/tecnickcom/tcpdf/examples/images/logo_example.png create mode 100644 vendor/tecnickcom/tcpdf/examples/images/tcpdf_box.ai create mode 100644 vendor/tecnickcom/tcpdf/examples/images/tcpdf_box.svg create mode 100644 vendor/tecnickcom/tcpdf/examples/images/tcpdf_cell.png create mode 100644 vendor/tecnickcom/tcpdf/examples/images/tcpdf_logo.jpg create mode 100644 vendor/tecnickcom/tcpdf/examples/images/tcpdf_signature.png create mode 100644 vendor/tecnickcom/tcpdf/examples/images/testsvg.svg create mode 100644 vendor/tecnickcom/tcpdf/examples/images/tux.svg create mode 100644 vendor/tecnickcom/tcpdf/examples/index.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/afr.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/ara.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/aze.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/bel.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/bra.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/bul.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/cat.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/ces.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/chi.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/cym.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/dan.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/eng.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/est.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/eus.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/far.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/fra.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/ger.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/gle.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/glg.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/hat.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/heb.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/hrv.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/hun.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/hye.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/ind.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/ita.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/jpn.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/kat.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/kor.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/mkd.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/mlt.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/msa.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/nld.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/nob.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/pol.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/por.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/ron.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/rus.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/slv.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/spa.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/sqi.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/srp.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/swa.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/swe.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/ukr.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/urd.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/yid.php create mode 100644 vendor/tecnickcom/tcpdf/examples/lang/zho.php create mode 100644 vendor/tecnickcom/tcpdf/examples/tcpdf_include.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/ae_fonts_2.0/COPYING create mode 100644 vendor/tecnickcom/tcpdf/fonts/ae_fonts_2.0/ChangeLog create mode 100644 vendor/tecnickcom/tcpdf/fonts/ae_fonts_2.0/README create mode 100644 vendor/tecnickcom/tcpdf/fonts/aealarabiya.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/aealarabiya.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/aealarabiya.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/aefurat.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/aefurat.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/aefurat.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/cid0cs.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/cid0ct.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/cid0jp.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/cid0kr.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/courier.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/courierb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/courierbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/courieri.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.33/AUTHORS create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.33/BUGS create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.33/LICENSE create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.33/NEWS create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.33/README create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.33/langcover.txt create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.33/unicover.txt create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/AUTHORS create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/BUGS create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/NEWS create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/README create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/langcover.txt create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/unicover.txt create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusans.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusans.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansb.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansbi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensed.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensed.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensed.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedb.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedbi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusanscondensedi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansextralight.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansextralight.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansextralight.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmono.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmono.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmono.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonob.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonob.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonob.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonobi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonobi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonobi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonoi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonoi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavusansmonoi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserif.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserif.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserif.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifb.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifbi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensed.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensed.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensed.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedb.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedbi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifcondensedi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/dejavuserifi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20100919/AUTHORS create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20100919/COPYING create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20100919/CREDITS create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20100919/ChangeLog create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20100919/INSTALL create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20100919/README create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/AUTHORS create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/COPYING create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/CREDITS create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/ChangeLog create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/INSTALL create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/README create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING create mode 100644 vendor/tecnickcom/tcpdf/fonts/freefont-20120503/USAGE create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemono.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemono.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemono.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonob.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonob.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonob.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonobi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonobi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonobi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonoi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonoi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freemonoi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesans.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesans.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesans.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansb.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansbi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freesansi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserif.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserif.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserif.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifb.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifbi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifi.ctg.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/freeserifi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/helvetica.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/helveticab.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/helveticabi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/helveticai.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/hysmyeongjostdmedium.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/kozgopromedium.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/kozminproregular.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/msungstdlight.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourier.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourier.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourierb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourierb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourierbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourierbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourieri.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfacourieri.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelvetica.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelvetica.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelveticab.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelveticab.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelveticabi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelveticabi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelveticai.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfahelveticai.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfasymbol.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfasymbol.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimes.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimes.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimesb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimesb.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimesbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimesbi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimesi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfatimesi.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfazapfdingbats.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/pdfazapfdingbats.z create mode 100644 vendor/tecnickcom/tcpdf/fonts/stsongstdlight.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/symbol.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/times.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/timesb.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/timesbi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/timesi.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/uni2cid_ac15.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/uni2cid_ag15.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/uni2cid_aj16.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/uni2cid_ak12.php create mode 100644 vendor/tecnickcom/tcpdf/fonts/zapfdingbats.php create mode 100644 vendor/tecnickcom/tcpdf/include/barcodes/datamatrix.php create mode 100644 vendor/tecnickcom/tcpdf/include/barcodes/pdf417.php create mode 100644 vendor/tecnickcom/tcpdf/include/barcodes/qrcode.php create mode 100644 vendor/tecnickcom/tcpdf/include/sRGB.icc create mode 100644 vendor/tecnickcom/tcpdf/include/tcpdf_colors.php create mode 100644 vendor/tecnickcom/tcpdf/include/tcpdf_filters.php create mode 100644 vendor/tecnickcom/tcpdf/include/tcpdf_font_data.php create mode 100644 vendor/tecnickcom/tcpdf/include/tcpdf_fonts.php create mode 100644 vendor/tecnickcom/tcpdf/include/tcpdf_images.php create mode 100644 vendor/tecnickcom/tcpdf/include/tcpdf_static.php create mode 100644 vendor/tecnickcom/tcpdf/tcpdf.php create mode 100644 vendor/tecnickcom/tcpdf/tcpdf_autoconfig.php create mode 100644 vendor/tecnickcom/tcpdf/tcpdf_barcodes_1d.php create mode 100644 vendor/tecnickcom/tcpdf/tcpdf_barcodes_2d.php create mode 100644 vendor/tecnickcom/tcpdf/tcpdf_import.php create mode 100644 vendor/tecnickcom/tcpdf/tcpdf_parser.php create mode 100644 vendor/tecnickcom/tcpdf/tools/.htaccess create mode 100644 vendor/tecnickcom/tcpdf/tools/convert_fonts_examples.txt create mode 100644 vendor/tecnickcom/tcpdf/tools/tcpdf_addfont.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a1ca48 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +uploads/* +processed/* +original/* +ots_cache/* +cgnat.php +*.rsc +phpinfo.php \ No newline at end of file diff --git a/clientes/autocomplete.php b/clientes/autocomplete.php new file mode 100644 index 0000000..f43458d --- /dev/null +++ b/clientes/autocomplete.php @@ -0,0 +1,58 @@ +connect_error) { + echo json_encode([]); + exit(); +} + +// Obter o termo de pesquisa +$term = isset($_GET['term']) ? trim($_GET['term']) : ''; + +if ($term === '') { + echo json_encode([]); + exit(); +} + +// Preparar a consulta para buscar nomes, CPFs ou emails que correspondam ao termo +$stmt = $mysqli->prepare(" + SELECT id, name, cpf, email + FROM clients + WHERE name LIKE CONCAT('%', ?, '%') + OR cpf LIKE CONCAT('%', ?, '%') + OR email LIKE CONCAT('%', ?, '%') + LIMIT 10 +"); +$stmt->bind_param("sss", $term, $term, $term); +$stmt->execute(); +$result = $stmt->get_result(); + +// Construir o array de sugestões +$suggestions = []; +while ($row = $result->fetch_assoc()) { + $suggestions[] = [ + 'id' => htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), + 'label' => htmlspecialchars($row['name'] . ' - ' . $row['cpf'] . ' - ' . $row['email'], ENT_QUOTES, 'UTF-8'), + 'value' => htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8') // Valor exibido no input + ]; +} + +echo json_encode($suggestions); + +// Fechar o statement e a conexão +$stmt->close(); +$mysqli->close(); +?> diff --git a/clientes/client_details.php b/clientes/client_details.php new file mode 100644 index 0000000..25f3a6f --- /dev/null +++ b/clientes/client_details.php @@ -0,0 +1,221 @@ + + + + + + Detalhes do Cliente + + + + + + + +
+ connect_error) { + die("Connection failed: " . $mysqli->connect_error); + } + + if (isset($_GET['id'])) { + $client_id = $_GET['id']; + $result = $mysqli->query("SELECT * FROM clients WHERE id = $client_id"); + + if ($result->num_rows > 0) { + $client = $result->fetch_assoc(); + echo "

Detalhes do Cliente: " . htmlspecialchars($client['name'] ?? '') . "

"; + echo ""; + echo ""; + echo "
"; + + if (!empty($client['cpf'])) { + echo "
CPF: " . htmlspecialchars($client['cpf'] ?? '') . "
"; // Adicione id="numero-cpf" + } + if (!empty($client['rg'])) { + echo "
RG: " . htmlspecialchars($client['rg'] ?? '') . " (" . htmlspecialchars($client['rg_emissor'] ?? '') . ")
"; + } + if (!empty($client['sexo'])) { + echo "
Sexo: " . htmlspecialchars($client['sexo'] ?? '') . "
"; + } + if (!empty($client['estado_civil'])) { + echo "
Estado Civil: " . htmlspecialchars($client['estado_civil'] ?? '') . "
"; + } + if (!empty($client['phone'])) { + echo "
Telefone: " . htmlspecialchars($client['phone'] ?? '') . ($client['whatsapp'] ? " (WhatsApp)" : "") . "
"; // Adicione id="numero-telefone" + } + if (!empty($client['email'])) { + echo "
Email: " . htmlspecialchars($client['email'] ?? '') . "
"; + } + if (!empty($client['senha_meu_inss'])) { + echo "
Senha do Meu INSS: " . htmlspecialchars($client['senha_meu_inss'] ?? '') . "
"; + } + if (!empty($client['perfil_instagram'])) { + echo "
Perfil do Instagram: @" . htmlspecialchars($client['perfil_instagram'] ?? '') . "
"; + } + if (!empty($client['tipo_logradouro']) || !empty($client['endereco']) || !empty($client['bairro']) || !empty($client['cidade']) || !empty($client['estado']) || !empty($client['cep'])) { + echo "
Endereço: " . htmlspecialchars($client['tipo_logradouro'] ?? '') . " " . htmlspecialchars($client['endereco'] ?? '') . ", " . htmlspecialchars($client['bairro'] ?? '') . ", " . htmlspecialchars($client['cidade'] ?? '') . " - " . htmlspecialchars($client['estado'] ?? '') . ", " . htmlspecialchars($client['cep'] ?? '') . "
"; + } + if (!empty($client['certidao_nascimento'])) { + echo "
Certidão de Nascimento/Casamento: " . htmlspecialchars($client['certidao_nascimento'] ?? '') . "
"; + } + if (!empty($client['pis_pasep'])) { + echo "
PIS/PASEP: " . htmlspecialchars($client['pis_pasep'] ?? '') . "
"; + } + if (!empty($client['inss_beneficio'])) { + echo "
Número do Benefício INSS: " . htmlspecialchars($client['inss_beneficio'] ?? '') . "
"; + } + if (!empty($client['filiacao_pai'])) { + echo "
Filiação (Pai): " . htmlspecialchars($client['filiacao_pai'] ?? '') . "
"; + } + if (!empty($client['filiacao_mae'])) { + echo "
Filiação (Mãe): " . htmlspecialchars($client['filiacao_mae'] ?? '') . "
"; + } + echo "
"; + + // Abas + echo "
+ + + + +
"; + + // Conteúdo das abas + echo "
"; + echo "

Notas

"; + + // Formulário de nova nota + echo "
+ + +
"; + + // Inserir nova nota no banco de dados + if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['note'])) { + $note = $_POST['note']; + $stmt = $mysqli->prepare("INSERT INTO notes (client_id, note) VALUES (?, ?)"); + $stmt->bind_param("is", $client_id, $note); + $stmt->execute(); + $stmt->close(); + } + + // Listar notas + $notes_result = $mysqli->query("SELECT * FROM notes WHERE client_id = $client_id"); + if ($notes_result->num_rows > 0) { + while ($note = $notes_result->fetch_assoc()) { + echo "
"; + echo "

" . htmlspecialchars($note['note'] ?? '') . " (" . $note['created_at'] . ")

"; + echo "
"; + echo ""; + echo ""; + echo "
"; + echo "
"; + } + } else { + echo "

Sem notas.

"; + } + + echo "
"; + + echo ""; + + echo ""; + + echo ""; + } else { + echo "

Cliente não encontrado.

"; + } + } else { + echo "

ID do cliente não fornecido.

"; + } + + $mysqli->close(); + ?> +
+ + + diff --git a/clientes/delete_client.php b/clientes/delete_client.php new file mode 100644 index 0000000..067fdd3 --- /dev/null +++ b/clientes/delete_client.php @@ -0,0 +1,40 @@ +connect_error) { + die("Falha na conexão: " . $mysqli->connect_error); + } + + // Preparar a declaração para evitar injeção de SQL + $stmt = $mysqli->prepare("DELETE FROM clients WHERE id = ?"); + $stmt->bind_param("i", $client_id); + + if ($stmt->execute()) { + // Redirecionar de volta para a lista de clientes após a exclusão + header("Location: index.php?page=list_clients&msg=Cliente+excluído+com+sucesso"); + exit(); + } else { + echo "Erro ao excluir cliente: " . $mysqli->error; + } + + $stmt->close(); + $mysqli->close(); +} else { + // Redirecionar se o ID não foi fornecido + header("Location: index.php?page=list_clients"); + exit(); +} +?> diff --git a/clientes/delete_note.php b/clientes/delete_note.php new file mode 100644 index 0000000..84d5867 --- /dev/null +++ b/clientes/delete_note.php @@ -0,0 +1,29 @@ +connect_error) { + die("Connection failed: " . $mysqli->connect_error); +} + +if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['id'])) { + $note_id = $_POST['id']; + + $stmt = $mysqli->prepare("DELETE FROM notes WHERE id = ?"); + $stmt->bind_param("i", $note_id); + $stmt->execute(); + $stmt->close(); + + echo "Nota excluída com sucesso!"; +} else { + echo "Dados inválidos."; +} + +$mysqli->close(); +?> diff --git a/clientes/edit_client.php b/clientes/edit_client.php new file mode 100644 index 0000000..c83153f --- /dev/null +++ b/clientes/edit_client.php @@ -0,0 +1,218 @@ +connect_error) { + die("Connection failed: " . $mysqli->connect_error); +} + +// Verificar se o ID do cliente foi fornecido +if (isset($_GET['id'])) { + $client_id = $_GET['id']; + + // Verificar se o formulário foi enviado + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + // Obter os dados do formulário + $name = $_POST['name']; + $cpf = $_POST['cpf']; + $rg = $_POST['rg']; + $rg_emissor = $_POST['rg_emissor']; + $sexo = $_POST['sexo']; + $estado_civil = $_POST['estado_civil']; + $phone = $_POST['phone']; + $whatsapp = isset($_POST['whatsapp']) ? 1 : 0; + $email = $_POST['email']; + $senha_meu_inss = $_POST['senha_meu_inss']; + $perfil_instagram = $_POST['perfil_instagram']; + $tipo_logradouro = $_POST['tipo_logradouro']; + $endereco = $_POST['endereco']; + $bairro = $_POST['bairro']; + $cidade = $_POST['cidade']; + $estado = $_POST['estado']; + $cep = $_POST['cep']; + $certidao_nascimento = $_POST['certidao_nascimento']; + $pis_pasep = $_POST['pis_pasep']; + $inss_beneficio = $_POST['inss_beneficio']; + $filiacao_pai = $_POST['filiacao_pai']; + $filiacao_mae = $_POST['filiacao_mae']; + + // Atualizar os dados do cliente no banco de dados + $stmt = $mysqli->prepare("UPDATE clients SET name=?, cpf=?, rg=?, rg_emissor=?, sexo=?, estado_civil=?, phone=?, whatsapp=?, email=?, senha_meu_inss=?, perfil_instagram=?, tipo_logradouro=?, endereco=?, bairro=?, cidade=?, estado=?, cep=?, certidao_nascimento=?, pis_pasep=?, inss_beneficio=?, filiacao_pai=?, filiacao_mae=? WHERE id=?"); + $stmt->bind_param("ssssssssssssssssssssssi", $name, $cpf, $rg, $rg_emissor, $sexo, $estado_civil, $phone, $whatsapp, $email, $senha_meu_inss, $perfil_instagram, $tipo_logradouro, $endereco, $bairro, $cidade, $estado, $cep, $certidao_nascimento, $pis_pasep, $inss_beneficio, $filiacao_pai, $filiacao_mae, $client_id); + if ($stmt->execute()) { + $stmt->close(); + $mysqli->close(); + header("Location: index.php?page=client_details&id=$client_id"); + exit(); + } else { + echo "

Erro ao atualizar cliente.

"; + } + $stmt->close(); + } + + // Obter os dados do cliente do banco de dados + $result = $mysqli->query("SELECT * FROM clients WHERE id = $client_id"); + if ($result->num_rows > 0) { + $client = $result->fetch_assoc(); + } else { + echo "

Cliente não encontrado.

"; + exit(); + } +} else { + echo "

ID do cliente não fornecido.

"; + exit(); +} +$mysqli->close(); +?> + + + + + Editar Cliente + + + +
+

Editar Cliente:

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + + > +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + diff --git a/clientes/edit_note.php b/clientes/edit_note.php new file mode 100644 index 0000000..109b3e6 --- /dev/null +++ b/clientes/edit_note.php @@ -0,0 +1,30 @@ +connect_error) { + die("Connection failed: " . $mysqli->connect_error); +} + +if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['id']) && isset($_POST['note'])) { + $note_id = $_POST['id']; + $note = $_POST['note']; + + $stmt = $mysqli->prepare("UPDATE notes SET note = ? WHERE id = ?"); + $stmt->bind_param("si", $note, $note_id); + $stmt->execute(); + $stmt->close(); + + echo "Nota atualizada com sucesso!"; +} else { + echo "Dados inválidos."; +} + +$mysqli->close(); +?> diff --git a/clientes/list_clients.php b/clientes/list_clients.php new file mode 100644 index 0000000..04e82a2 --- /dev/null +++ b/clientes/list_clients.php @@ -0,0 +1,331 @@ +connect_error) { + die("Falha na conexão: " . htmlspecialchars($mysqli->connect_error, ENT_QUOTES, 'UTF-8')); +} + +// Preparar a consulta com pesquisa e paginação +if ($search !== '') { + // Utilizar consultas preparadas para prevenir SQL Injection + $stmt = $mysqli->prepare(" + SELECT * + FROM clients + WHERE name LIKE CONCAT('%', ?, '%') + OR cpf LIKE CONCAT('%', ?, '%') + OR email LIKE CONCAT('%', ?, '%') + LIMIT ? OFFSET ? + "); + $stmt->bind_param("sssii", $search, $search, $search, $limit, $offset); +} else { + $stmt = $mysqli->prepare("SELECT * FROM clients LIMIT ? OFFSET ?"); + $stmt->bind_param("ii", $limit, $offset); +} + +// Definir os parâmetros de limite e offset +$limit = RESULTS_PER_PAGE; + +// Executar a consulta +$stmt->execute(); +$result = $stmt->get_result(); +?> + + + + + Listagem de Clientes + + + + + + + + + + + + + +
+

Lista de Clientes

+
+ + +
+ num_rows > 0) { + echo " + + + + + + + "; + + // Iterar sobre cada cliente + while($row = $result->fetch_assoc()) { + // Escapar saídas para prevenir XSS + $id = htmlspecialchars($row["id"], ENT_QUOTES, 'UTF-8'); + $nome = htmlspecialchars($row["name"], ENT_QUOTES, 'UTF-8'); + $cpf = htmlspecialchars($row["cpf"], ENT_QUOTES, 'UTF-8'); + $telefone = htmlspecialchars($row["phone"], ENT_QUOTES, 'UTF-8'); + $email = htmlspecialchars($row["email"], ENT_QUOTES, 'UTF-8'); + + echo " + + + + + + "; + } + + echo "
NomeCPFTelefoneEmailAções
$nome$cpf$telefone$email + + + + +
+ + +
+
"; + + // Fechar o statement + $stmt->close(); + } else { + echo "

Nenhum cliente encontrado.

"; + } + + // Contar o total de clientes para a paginação + if ($search !== '') { + $count_stmt = $mysqli->prepare(" + SELECT COUNT(*) + FROM clients + WHERE name LIKE CONCAT('%', ?, '%') + OR cpf LIKE CONCAT('%', ?, '%') + OR email LIKE CONCAT('%', ?, '%') + "); + $count_stmt->bind_param("sss", $search, $search, $search); + } else { + $count_stmt = $mysqli->prepare("SELECT COUNT(*) FROM clients"); + } + + $count_stmt->execute(); + $count_stmt->bind_result($total_clients); + $count_stmt->fetch(); + $count_stmt->close(); + + // Calcular o total de páginas + $total_pages = ceil($total_clients / RESULTS_PER_PAGE); + + // Exibir links de paginação se houver mais de uma página + if ($total_pages > 1) { + echo ""; + } + + // Fechar a conexão com o banco de dados + $mysqli->close(); + ?> +
+ + + diff --git a/clientes/register_client.php b/clientes/register_client.php new file mode 100644 index 0000000..4c0ff0d --- /dev/null +++ b/clientes/register_client.php @@ -0,0 +1,203 @@ + + + + + + Cadastro de Clientes + + + +
+

Cadastro de Clientes

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + connect_error) { + die("Connection failed: " . $mysqli->connect_error); + } + + $stmt = $mysqli->prepare("INSERT INTO clients (name, cpf, rg, rg_emissor, tipo_logradouro, endereco, bairro, cidade, estado, cep, phone, whatsapp, email, sexo, estado_civil, senha_meu_inss, perfil_instagram, certidao_nascimento, pis_pasep, inss_beneficio, filiacao_pai, filiacao_mae) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); + if ($stmt) { + $stmt->bind_param("ssssssssssssssssssssss", $name, $cpf, $rg, $rg_emissor, $tipo_logradouro, $endereco, $bairro, $cidade, $estado, $cep, $phone, $whatsapp, $email, $sexo, $estado_civil, $senha_meu_inss, $perfil_instagram, $certidao_nascimento, $pis_pasep, $inss_beneficio, $filiacao_pai, $filiacao_mae); + if ($stmt->execute()) { + header("Location: index.php?page=client_details&id=$client_id"); + } else { + echo "

Erro ao cadastrar cliente.

"; + } + $stmt->close(); + } else { + echo "

Erro ao preparar a consulta.

"; + } + + $mysqli->close(); + + } + ?> +
+ + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..73e36fd --- /dev/null +++ b/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "tecnickcom/tcpdf": "^6.7" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..62435b0 --- /dev/null +++ b/composer.lock @@ -0,0 +1,91 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "a607f866b3f01ae9ad4f413456987bbb", + "packages": [ + { + "name": "tecnickcom/tcpdf", + "version": "6.7.7", + "source": { + "type": "git", + "url": "https://github.com/tecnickcom/TCPDF.git", + "reference": "cfbc0028cc23f057f2baf9e73bdc238153c22086" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/cfbc0028cc23f057f2baf9e73bdc238153c22086", + "reference": "cfbc0028cc23f057f2baf9e73bdc238153c22086", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "config", + "include", + "tcpdf.php", + "tcpdf_parser.php", + "tcpdf_import.php", + "tcpdf_barcodes_1d.php", + "tcpdf_barcodes_2d.php", + "include/tcpdf_colors.php", + "include/tcpdf_filters.php", + "include/tcpdf_font_data.php", + "include/tcpdf_fonts.php", + "include/tcpdf_images.php", + "include/tcpdf_static.php", + "include/barcodes/datamatrix.php", + "include/barcodes/pdf417.php", + "include/barcodes/qrcode.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "description": "TCPDF is a PHP class for generating PDF documents and barcodes.", + "homepage": "http://www.tcpdf.org/", + "keywords": [ + "PDFD32000-2008", + "TCPDF", + "barcodes", + "datamatrix", + "pdf", + "pdf417", + "qrcode" + ], + "support": { + "issues": "https://github.com/tecnickcom/TCPDF/issues", + "source": "https://github.com/tecnickcom/TCPDF/tree/6.7.7" + }, + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20tcpdf%20project", + "type": "custom" + } + ], + "time": "2024-10-26T12:15:02+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.6.0" +} diff --git a/create.php b/create.php new file mode 100644 index 0000000..6fdbad2 --- /dev/null +++ b/create.php @@ -0,0 +1,19 @@ +connect_error) { + die("Connection failed: " . $mysqli->connect_error); +} + +$username = 'rodrigo'; +$password = password_hash('34641747', PASSWORD_DEFAULT); // Hash da senha + +$stmt = $mysqli->prepare("INSERT INTO users (username, password) VALUES (?, ?)"); +$stmt->bind_param("ss", $username, $password); +$stmt->execute(); +$stmt->close(); +$mysqli->close(); + +echo "Usuário administrador criado com sucesso."; +?> diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a13ebd4dd3e1093cdac3d0a6e1e302f37da8c7a6 GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/index.php b/index.php new file mode 100644 index 0000000..442e759 --- /dev/null +++ b/index.php @@ -0,0 +1,92 @@ + + + + + + Sistema de Ferramentas + + + + + + + + + +
+ Bem-vindo ao Sistema de Ferramentas"; + } + } else { + echo "

Bem-vindo ao Sistema de Ferramentas

"; + } + ?> +
+ + + diff --git a/login.php b/login.php new file mode 100644 index 0000000..a61a078 --- /dev/null +++ b/login.php @@ -0,0 +1,124 @@ += 5) { + die("Muitas tentativas de login. Por favor, tente novamente mais tarde."); + } + + // Após uma tentativa de login falha, incremente: + $_SESSION['login_attempts'] += 1; + +// Redirecionar para a página principal se já estiver logado +if (isset($_SESSION['user_id'])) { + header("Location: index.php"); + exit(); +} + +$message = ''; + +if ($_SERVER['REQUEST_METHOD'] == 'POST') { + // Conectar ao banco de dados + $mysqli = new mysqli("10.15.0.42", "root", "34641747", "valida"); + + if ($mysqli->connect_error) { + die("Connection failed: " . $mysqli->connect_error); + } + + $username = $mysqli->real_escape_string($_POST['username']); + $password = $_POST['password']; + + // Buscar o usuário no banco de dados + $stmt = $mysqli->prepare("SELECT id, password FROM users WHERE username = ?"); + $stmt->bind_param("s", $username); + $stmt->execute(); + $stmt->store_result(); + + if ($stmt->num_rows == 1) { + $stmt->bind_result($user_id, $hashed_password); + $stmt->fetch(); + + if (password_verify($password, $hashed_password)) { + // Senha correta; iniciar a sessão + $_SESSION['user_id'] = $user_id; + $_SESSION['username'] = $username; + header("Location: index.php"); + exit(); + } else { + $message = "Senha incorreta."; + } + } else { + $message = "Usuário não encontrado."; + } + + $stmt->close(); + $mysqli->close(); +} +?> + + + + + Login - Sistema de Ferramentas + + + + + + + + diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..421ac31 --- /dev/null +++ b/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/logout.php b/logout.php new file mode 100644 index 0000000..a027511 --- /dev/null +++ b/logout.php @@ -0,0 +1,7 @@ + diff --git a/menu.php b/menu.php new file mode 100644 index 0000000..afd199e --- /dev/null +++ b/menu.php @@ -0,0 +1,29 @@ + + diff --git a/output.txt b/output.txt new file mode 100644 index 0000000..a54003f --- /dev/null +++ b/output.txt @@ -0,0 +1,78439 @@ +function toggleSubmenu(submenuId) { + var submenu = document.getElementById(submenuId); + if (submenu) { + if (submenu.style.display === 'none' || submenu.style.display === '') { + submenu.style.display = 'block'; + } else { + submenu.style.display = 'none'; + } + } else { + console.error('Submenu with ID ' + submenuId + ' not found.'); + } +} +function toggleSubmenu() { + var submenu = document.getElementById('submenu'); + if (submenu.style.display === 'none' || submenu.style.display === '') { + submenu.style.display = 'block'; + } else { + submenu.style.display = 'none'; + } +} +document.querySelectorAll('.new-button, .search-button').forEach(button => { + button.addEventListener('click', event => { + event.preventDefault(); + event.stopPropagation(); + const menu = event.target.nextElementSibling; + document.querySelectorAll('.new-menu, .search-bar').forEach(otherMenu => { + if (otherMenu !== menu) { + otherMenu.classList.remove('active'); + } + }); + menu.classList.toggle('active'); + }); +}); + +document.addEventListener('click', event => { + document.querySelectorAll('.new-menu, .search-bar').forEach(menu => { + if (!menu.contains(event.target) && !menu.previousElementSibling.contains(event.target)) { + menu.classList.remove('active'); + } + }); +}); + +document.querySelectorAll('.user-info').forEach(userInfo => { + userInfo.addEventListener('click', event => { + event.preventDefault(); + event.stopPropagation(); + userInfo.querySelector('ul').classList.toggle('active'); + }); +}); + +document.addEventListener('click', event => { + document.querySelectorAll('.user-info ul').forEach(menu => { + if (!menu.contains(event.target) && !menu.previousElementSibling.contains(event.target)) { + menu.classList.remove('active'); + } + }); +}); +// formatacoes.js + +function formatarCPF(cpf) { + cpf = cpf.replace(/[^\d]/g, ""); + return cpf.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/, "$1.$2.$3-$4"); +} + +function formatarTelefone(telefone) { + telefone = telefone.replace(/[^\d]/g, ""); + return telefone.replace(/(\d{2})(\d{5})(\d{4})/, "($1) $2-$3"); +} + +// Função para aplicar a formatação em uma tabela +function formatarTabela(tabelaSeletor, cpfColuna, telefoneColuna) { + $(tabelaSeletor + ' tr').each(function() { + var cpf = $(this).find('td:nth-child(' + cpfColuna + ')').text(); + var telefone = $(this).find('td:nth-child(' + telefoneColuna + ')').text(); + + if (cpf) { + $(this).find('td:nth-child(' + cpfColuna + ')').text(formatarCPF(cpf)); + } + + if (telefone) { + $(this).find('td:nth-child(' + telefoneColuna + ')').text(formatarTelefone(telefone)); + } + }); +} + + +// Função para aplicar a formatação em um elemento específico (client_details.php) +function formatarElemento(elementoSeletor, valor) { + if (valor) { + $(elementoSeletor).text(formatarTelefone(valor)); + } +} +function toggleSubmenu(submenuId) { + var submenu = document.getElementById(submenuId); + if (submenu) { + if (submenu.style.display === 'none' || submenu.style.display === '') { + submenu.style.display = 'block'; + } else { + submenu.style.display = 'none'; + } + } else { + console.error('Submenu with ID ' + submenuId + ' not found.'); + } +} +function toggleSubmenu() { + var submenu = document.getElementById('submenu'); + if (submenu.style.display === 'none' || submenu.style.display === '') { + submenu.style.display = 'block'; + } else { + submenu.style.display = 'none'; + } +} +document.querySelectorAll('.new-button, .search-button').forEach(button => { + button.addEventListener('click', event => { + event.preventDefault(); + event.stopPropagation(); + const menu = event.target.nextElementSibling; + document.querySelectorAll('.new-menu, .search-bar').forEach(otherMenu => { + if (otherMenu !== menu) { + otherMenu.classList.remove('active'); + } + }); + menu.classList.toggle('active'); + }); +}); + +document.addEventListener('click', event => { + document.querySelectorAll('.new-menu, .search-bar').forEach(menu => { + if (!menu.contains(event.target) && !menu.previousElementSibling.contains(event.target)) { + menu.classList.remove('active'); + } + }); +}); + +document.querySelectorAll('.user-info').forEach(userInfo => { + userInfo.addEventListener('click', event => { + event.preventDefault(); + event.stopPropagation(); + userInfo.querySelector('ul').classList.toggle('active'); + }); +}); + +document.addEventListener('click', event => { + document.querySelectorAll('.user-info ul').forEach(menu => { + if (!menu.contains(event.target) && !menu.previousElementSibling.contains(event.target)) { + menu.classList.remove('active'); + } + }); +}); +// formatacoes.js + +function formatarCPF(cpf) { + cpf = cpf.replace(/[^\d]/g, ""); + return cpf.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/, "$1.$2.$3-$4"); +} + +function formatarTelefone(telefone) { + telefone = telefone.replace(/[^\d]/g, ""); + return telefone.replace(/(\d{2})(\d{5})(\d{4})/, "($1) $2-$3"); +} + +// Função para aplicar a formatação em uma tabela +function formatarTabela(tabelaSeletor, cpfColuna, telefoneColuna) { + $(tabelaSeletor + ' tr').each(function() { + var cpf = $(this).find('td:nth-child(' + cpfColuna + ')').text(); + var telefone = $(this).find('td:nth-child(' + telefoneColuna + ')').text(); + + if (cpf) { + $(this).find('td:nth-child(' + cpfColuna + ')').text(formatarCPF(cpf)); + } + + if (telefone) { + $(this).find('td:nth-child(' + telefoneColuna + ')').text(formatarTelefone(telefone)); + } + }); +} + + +// Função para aplicar a formatação em um elemento específico (client_details.php) +function formatarElemento(elementoSeletor, valor) { + if (valor) { + $(elementoSeletor).text(formatarTelefone(valor)); + } +} +./vendor/tecnickcom/tcpdf/config/tcpdf_config.php +. +// +// See LICENSE.TXT file for more information. +//============================================================+ + +/** + * Configuration file for TCPDF. + * @author Nicola Asuni + * @package com.tecnick.tcpdf + * @version 4.9.005 + * @since 2004-10-27 + */ + +// IMPORTANT: +// If you define the constant K_TCPDF_EXTERNAL_CONFIG, all the following settings will be ignored. +// If you use the tcpdf_autoconfig.php, then you can overwrite some values here. + + +/** + * Installation path (/var/www/tcpdf/). + * By default it is automatically calculated but you can also set it as a fixed string to improve performances. + */ +//define ('K_PATH_MAIN', ''); + +/** + * URL path to tcpdf installation folder (http://localhost/tcpdf/). + * By default it is automatically set but you can also set it as a fixed string to improve performances. + */ +//define ('K_PATH_URL', ''); + +/** + * Path for PDF fonts. + * By default it is automatically set but you can also set it as a fixed string to improve performances. + */ +//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/'); + +/** + * Default images directory. + * By default it is automatically set but you can also set it as a fixed string to improve performances. + */ +//define ('K_PATH_IMAGES', ''); + +/** + * Deafult image logo used be the default Header() method. + * Please set here your own logo or an empty string to disable it. + */ +//define ('PDF_HEADER_LOGO', ''); + +/** + * Header logo image width in user units. + */ +//define ('PDF_HEADER_LOGO_WIDTH', 0); + +/** + * Cache directory for temporary files (full path). + */ +//define ('K_PATH_CACHE', '/tmp/'); + +/** + * Generic name for a blank image. + */ +define ('K_BLANK_IMAGE', '_blank.png'); + +/** + * Page format. + */ +define ('PDF_PAGE_FORMAT', 'A4'); + +/** + * Page orientation (P=portrait, L=landscape). + */ +define ('PDF_PAGE_ORIENTATION', 'P'); + +/** + * Document creator. + */ +define ('PDF_CREATOR', 'TCPDF'); + +/** + * Document author. + */ +define ('PDF_AUTHOR', 'TCPDF'); + +/** + * Header title. + */ +define ('PDF_HEADER_TITLE', 'TCPDF Example'); + +/** + * Header description string. + */ +define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); + +/** + * Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]. + */ +define ('PDF_UNIT', 'mm'); + +/** + * Header margin. + */ +define ('PDF_MARGIN_HEADER', 5); + +/** + * Footer margin. + */ +define ('PDF_MARGIN_FOOTER', 10); + +/** + * Top margin. + */ +define ('PDF_MARGIN_TOP', 27); + +/** + * Bottom margin. + */ +define ('PDF_MARGIN_BOTTOM', 25); + +/** + * Left margin. + */ +define ('PDF_MARGIN_LEFT', 15); + +/** + * Right margin. + */ +define ('PDF_MARGIN_RIGHT', 15); + +/** + * Default main font name. + */ +define ('PDF_FONT_NAME_MAIN', 'helvetica'); + +/** + * Default main font size. + */ +define ('PDF_FONT_SIZE_MAIN', 10); + +/** + * Default data font name. + */ +define ('PDF_FONT_NAME_DATA', 'helvetica'); + +/** + * Default data font size. + */ +define ('PDF_FONT_SIZE_DATA', 8); + +/** + * Default monospaced font name. + */ +define ('PDF_FONT_MONOSPACED', 'courier'); + +/** + * Ratio used to adjust the conversion of pixels to user units. + */ +define ('PDF_IMAGE_SCALE_RATIO', 1.25); + +/** + * Magnification factor for titles. + */ +define('HEAD_MAGNIFICATION', 1.1); + +/** + * Height of cell respect font height. + */ +define('K_CELL_HEIGHT_RATIO', 1.25); + +/** + * Title magnification respect main font size. + */ +define('K_TITLE_MAGNIFICATION', 1.3); + +/** + * Reduction factor for small font. + */ +define('K_SMALL_RATIO', 2/3); + +/** + * Set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language. + */ +define('K_THAI_TOPCHARS', true); + +/** + * If true allows to call TCPDF methods using HTML syntax + * IMPORTANT: For security reason, disable this feature if you are printing user HTML content. + */ +define('K_TCPDF_CALLS_IN_HTML', false); + +/** + * List of TCPDF methods that are allowed to be called using HTML syntax. + * Note: each method name must end with surrounded with | (pipe) character. + * The constant K_TCPDF_CALLS_IN_HTML must be set to true. + * IMPORTANT: For security reason, disable this feature if you are allowing user HTML content. + */ +define('K_ALLOWED_TCPDF_TAGS', ''); + +/** + * If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution. + */ +define('K_TCPDF_THROW_EXCEPTION_ERROR', false); + +/** + * Default timezone for datetime functions + */ +define('K_TIMEZONE', 'UTC'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_html.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_1d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_1d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.000 + * @group barcode + * @group 1d + * @group html + * @group comparable + */ + +// include 1D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); + +// output the barcode as HTML object +echo $barcodeobj->getBarcodeHTML(2, 30, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_png.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_1d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_1d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.000 + * @group barcode + * @group 1d + * @group png + */ + +// include 1D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); + +// output the barcode as PNG image +$barcodeobj->getBarcodePNG(2, 30, array(0,0,0)); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_svg.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_1d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_1d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.000 + * @group barcode + * @group 1d + * @group svg + * @group comparable + */ + +// include 1D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); + +// output the barcode as SVG image +$barcodeobj->getBarcodeSVG(2, 30, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_1d_svgi.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_1d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_1d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.000 + * @group barcode + * @group 1d + * @group svg + * @group comparable + */ + +// include 1D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128'); + +// output the barcode as SVG inline code +echo $barcodeobj->getBarcodeSVGcode(2, 40, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_html.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group datamatrix + * @group html + * @group comparable + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); + +// output the barcode as HTML object +echo $barcodeobj->getBarcodeHTML(6, 6, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_png.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group datamatrix + * @group png + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); + +// output the barcode as PNG image +$barcodeobj->getBarcodePNG(6, 6, array(0,0,0)); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_svg.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group datamatrix + * @group svg + * @group comparable + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); + +// output the barcode as SVG image +$barcodeobj->getBarcodeSVG(6, 6, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_datamatrix_svgi.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group datamatrix + * @group svg + * @group comparable + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX'); + +// output the barcode as SVG inline code +echo $barcodeobj->getBarcodeSVGcode(6, 6, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_html.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group pdf417 + * @group html + * @group comparable + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); + +// output the barcode as HTML object +echo $barcodeobj->getBarcodeHTML(4, 4, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_png.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group pdf417 + * @group png + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); + +// output the barcode as PNG image +$barcodeobj->getBarcodePNG(4, 4, array(0,0,0)); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_svg.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group pdf417 + * @group svg + * @group comparable + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); + +// output the barcode as SVG image +$barcodeobj->getBarcodeSVG(4, 4, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_pdf417_svgi.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group pdf417 + * @group svg + * @group comparable + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417'); + +// output the barcode as SVG inline code +echo $barcodeobj->getBarcodeSVGcode(4, 4, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_html.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group qrcode + * @group html + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); + +// output the barcode as HTML object +echo $barcodeobj->getBarcodeHTML(6, 6, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_png.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group qrcode + * @group png + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); + +// output the barcode as PNG image +$barcodeobj->getBarcodePNG(6, 6, array(0,0,0)); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_svg.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group qrcode + * @group svg + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); + +// output the barcode as SVG image +$barcodeobj->getBarcodeSVG(6, 6, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/example_2d_qrcode_svgi.php +. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : Example for tcpdf_barcodes_2d.php class +// +//============================================================+ + +/** + * @file + * Example for tcpdf_barcodes_2d.php class + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 1.0.009 + * @group barcode + * @group qrcode + * @group svg + */ + +// include 2D barcode class (search for installation path) +require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php'); + +// set the barcode content and type +$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); + +// output the barcode as SVG inline code +echo $barcodeobj->getBarcodeSVGcode(6, 6, 'black'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/barcodes/tcpdf_barcodes_1d_include.php +. +// +// See LICENSE.TXT file for more information. +//============================================================+ + +/** + * Example of alternative configuration file for TCPDF. + * @author Nicola Asuni + * @package com.tecnick.tcpdf + * @version 4.9.005 + * @since 2004-10-27 + */ + +/** + * Define the following constant to ignore the default configuration file. + */ +define ('K_TCPDF_EXTERNAL_CONFIG', true); + +/** + * Installation path (/var/www/tcpdf/). + * By default it is automatically calculated but you can also set it as a fixed string to improve performances. + */ +//define ('K_PATH_MAIN', ''); + +/** + * URL path to tcpdf installation folder (http://localhost/tcpdf/). + * By default it is automatically set but you can also set it as a fixed string to improve performances. + */ +//define ('K_PATH_URL', ''); + +/** + * Path for PDF fonts. + * By default it is automatically set but you can also set it as a fixed string to improve performances. + */ +//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/'); + +/** + * Default images directory. + * By default it is automatically set but you can also set it as a fixed string to improve performances. + */ +define ('K_PATH_IMAGES', dirname(__FILE__).'/../images/'); + +/** + * Deafult image logo used be the default Header() method. + * Please set here your own logo or an empty string to disable it. + */ +define ('PDF_HEADER_LOGO', 'tcpdf_logo.jpg'); + +/** + * Header logo image width in user units. + */ +define ('PDF_HEADER_LOGO_WIDTH', 30); + +/** + * Cache directory for temporary files (full path). + */ +define ('K_PATH_CACHE', sys_get_temp_dir().'/'); + +/** + * Generic name for a blank image. + */ +define ('K_BLANK_IMAGE', '_blank.png'); + +/** + * Page format. + */ +define ('PDF_PAGE_FORMAT', 'A4'); + +/** + * Page orientation (P=portrait, L=landscape). + */ +define ('PDF_PAGE_ORIENTATION', 'P'); + +/** + * Document creator. + */ +define ('PDF_CREATOR', 'TCPDF'); + +/** + * Document author. + */ +define ('PDF_AUTHOR', 'TCPDF'); + +/** + * Header title. + */ +define ('PDF_HEADER_TITLE', 'TCPDF Example'); + +/** + * Header description string. + */ +define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); + +/** + * Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]. + */ +define ('PDF_UNIT', 'mm'); + +/** + * Header margin. + */ +define ('PDF_MARGIN_HEADER', 5); + +/** + * Footer margin. + */ +define ('PDF_MARGIN_FOOTER', 10); + +/** + * Top margin. + */ +define ('PDF_MARGIN_TOP', 27); + +/** + * Bottom margin. + */ +define ('PDF_MARGIN_BOTTOM', 25); + +/** + * Left margin. + */ +define ('PDF_MARGIN_LEFT', 15); + +/** + * Right margin. + */ +define ('PDF_MARGIN_RIGHT', 15); + +/** + * Default main font name. + */ +define ('PDF_FONT_NAME_MAIN', 'helvetica'); + +/** + * Default main font size. + */ +define ('PDF_FONT_SIZE_MAIN', 10); + +/** + * Default data font name. + */ +define ('PDF_FONT_NAME_DATA', 'helvetica'); + +/** + * Default data font size. + */ +define ('PDF_FONT_SIZE_DATA', 8); + +/** + * Default monospaced font name. + */ +define ('PDF_FONT_MONOSPACED', 'courier'); + +/** + * Ratio used to adjust the conversion of pixels to user units. + */ +define ('PDF_IMAGE_SCALE_RATIO', 1.25); + +/** + * Magnification factor for titles. + */ +define('HEAD_MAGNIFICATION', 1.1); + +/** + * Height of cell respect font height. + */ +define('K_CELL_HEIGHT_RATIO', 1.25); + +/** + * Title magnification respect main font size. + */ +define('K_TITLE_MAGNIFICATION', 1.3); + +/** + * Reduction factor for small font. + */ +define('K_SMALL_RATIO', 2/3); + +/** + * Set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language. + */ +define('K_THAI_TOPCHARS', true); + +/** + * If true allows to call TCPDF methods using HTML syntax + * IMPORTANT: For security reason, disable this feature if you are printing user HTML content. + */ +define('K_TCPDF_CALLS_IN_HTML', true); + +/** + * List of TCPDF methods that are allowed to be called using HTML syntax. + * Note: each method name must end with surrounded with | (pipe) character. + * The constant K_TCPDF_CALLS_IN_HTML must be set to true. + * IMPORTANT: For security reason, disable this feature if you are allowing user HTML content. + */ +define('K_ALLOWED_TCPDF_TAGS', '|AddPage|Rect|SetDrawColor|write1DBarcode|'); + +/** + * If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution. + */ +define('K_TCPDF_THROW_EXCEPTION_ERROR', false); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/example_001.php +setCreator(PDF_CREATOR); +$pdf->setAuthor('Nicola Asuni'); +$pdf->setTitle('TCPDF Example 001'); +$pdf->setSubject('TCPDF Tutorial'); +$pdf->setKeywords('TCPDF, PDF, example, test, guide'); + +// set default header data +$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128)); +$pdf->setFooterData(array(0,64,0), array(0,64,128)); + +// set header and footer fonts +$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); +$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); + +// set default monospaced font +$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); + +// set margins +$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); +$pdf->setHeaderMargin(PDF_MARGIN_HEADER); +$pdf->setFooterMargin(PDF_MARGIN_FOOTER); + +// set auto page breaks +$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); + +// set image scale factor +$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + +// set some language-dependent strings (optional) +if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { + require_once(dirname(__FILE__).'/lang/eng.php'); + $pdf->setLanguageArray($l); +} + +// --------------------------------------------------------- + +// set default font subsetting mode +$pdf->setFontSubsetting(true); + +// Set font +// dejavusans is a UTF-8 Unicode font, if you only need to +// print standard ASCII chars, you can use core fonts like +// helvetica or times to reduce file size. +$pdf->setFont('dejavusans', '', 14, '', true); + +// Add a page +// This method has several options, check the source code documentation for more information. +$pdf->AddPage(); + +// set text shadow effect +$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal')); + +// Set some content to print +$html = <<Welcome to  TCPDF ! +This is the first example of TCPDF library. +

This text is printed using the writeHTMLCell() method but you can also use: Multicell(), writeHTML(), Write(), Cell() and Text().

+

Please check the source code documentation and other examples for further information.

+

TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE MAKE A DONATION!

+EOD; + +// Print text using writeHTMLCell() +$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); + +// --------------------------------------------------------- + +// Close and output PDF document +// This method has several options, check the source code documentation for more information. +$pdf->Output('example_001.pdf', 'I'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/example_002.php +setCreator(PDF_CREATOR); +$pdf->setAuthor('Nicola Asuni'); +$pdf->setTitle('TCPDF Example 002'); +$pdf->setSubject('TCPDF Tutorial'); +$pdf->setKeywords('TCPDF, PDF, example, test, guide'); + +// remove default header/footer +$pdf->setPrintHeader(false); +$pdf->setPrintFooter(false); + +// set default monospaced font +$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); + +// set margins +$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); + +// set auto page breaks +$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); + +// set image scale factor +$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + +// set some language-dependent strings (optional) +if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { + require_once(dirname(__FILE__).'/lang/eng.php'); + $pdf->setLanguageArray($l); +} + +// --------------------------------------------------------- + +// set font +$pdf->setFont('times', 'BI', 20); + +// add a page +$pdf->AddPage(); + +// set some text to print +$txt = <<Write(0, $txt, '', 0, 'C', true, 0, false, false, 0); + +// --------------------------------------------------------- + +//Close and output PDF document +$pdf->Output('example_002.pdf', 'I'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/example_003.php +Image($image_file, 10, 10, 15, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false); + // Set font + $this->setFont('helvetica', 'B', 20); + // Title + $this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M'); + } + + // Page footer + public function Footer() { + // Position at 15 mm from bottom + $this->setY(-15); + // Set font + $this->setFont('helvetica', 'I', 8); + // Page number + $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M'); + } +} + +// create new PDF document +$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); + +// set document information +$pdf->setCreator(PDF_CREATOR); +$pdf->setAuthor('Nicola Asuni'); +$pdf->setTitle('TCPDF Example 003'); +$pdf->setSubject('TCPDF Tutorial'); +$pdf->setKeywords('TCPDF, PDF, example, test, guide'); + +// set default header data +$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); + +// set header and footer fonts +$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); +$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); + +// set default monospaced font +$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); + +// set margins +$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); +$pdf->setHeaderMargin(PDF_MARGIN_HEADER); +$pdf->setFooterMargin(PDF_MARGIN_FOOTER); + +// set auto page breaks +$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); + +// set image scale factor +$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + +// set some language-dependent strings (optional) +if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { + require_once(dirname(__FILE__).'/lang/eng.php'); + $pdf->setLanguageArray($l); +} + +// --------------------------------------------------------- + +// set font +$pdf->setFont('times', 'BI', 12); + +// add a page +$pdf->AddPage(); + +// set some text to print +$txt = <<Write(0, $txt, '', 0, 'C', true, 0, false, false, 0); + +// --------------------------------------------------------- + +//Close and output PDF document +$pdf->Output('example_003.pdf', 'I'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/example_004.php +setCreator(PDF_CREATOR); +$pdf->setAuthor('Nicola Asuni'); +$pdf->setTitle('TCPDF Example 004'); +$pdf->setSubject('TCPDF Tutorial'); +$pdf->setKeywords('TCPDF, PDF, example, test, guide'); + +// set default header data +$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 004', PDF_HEADER_STRING); + +// set header and footer fonts +$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); +$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); + +// set default monospaced font +$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); + +// set margins +$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); +$pdf->setHeaderMargin(PDF_MARGIN_HEADER); +$pdf->setFooterMargin(PDF_MARGIN_FOOTER); + +// set auto page breaks +$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); + +// set image scale factor +$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + +// set some language-dependent strings (optional) +if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { + require_once(dirname(__FILE__).'/lang/eng.php'); + $pdf->setLanguageArray($l); +} + +// --------------------------------------------------------- + +// set font +$pdf->setFont('times', '', 11); + +// add a page +$pdf->AddPage(); + +//Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') + +// test Cell stretching +$pdf->Cell(0, 0, 'TEST CELL STRETCH: no stretch', 1, 1, 'C', 0, '', 0); +$pdf->Cell(0, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1); +$pdf->Cell(0, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2); +$pdf->Cell(0, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3); +$pdf->Cell(0, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4); + +$pdf->Ln(5); + +$pdf->Cell(45, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1); +$pdf->Cell(45, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2); +$pdf->Cell(45, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3); +$pdf->Cell(45, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4); + +$pdf->AddPage(); + +// example using general stretching and spacing + +for ($stretching = 90; $stretching <= 110; $stretching += 10) { + for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) { + + // set general stretching (scaling) value + $pdf->setFontStretching($stretching); + + // set general spacing value + $pdf->setFontSpacing($spacing); + + $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, no stretch', 1, 1, 'C', 0, '', 0); + $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, scaling', 1, 1, 'C', 0, '', 1); + $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, force scaling', 1, 1, 'C', 0, '', 2); + $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, spacing', 1, 1, 'C', 0, '', 3); + $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, force spacing', 1, 1, 'C', 0, '', 4); + + $pdf->Ln(2); + } +} + +// --------------------------------------------------------- + +//Close and output PDF document +$pdf->Output('example_004.pdf', 'I'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/example_005.php +setCreator(PDF_CREATOR); +$pdf->setAuthor('Nicola Asuni'); +$pdf->setTitle('TCPDF Example 005'); +$pdf->setSubject('TCPDF Tutorial'); +$pdf->setKeywords('TCPDF, PDF, example, test, guide'); + +// set default header data +$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 005', PDF_HEADER_STRING); + +// set header and footer fonts +$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); +$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); + +// set default monospaced font +$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); + +// set margins +$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); +$pdf->setHeaderMargin(PDF_MARGIN_HEADER); +$pdf->setFooterMargin(PDF_MARGIN_FOOTER); + +// set auto page breaks +$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); + +// set image scale factor +$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + +// set some language-dependent strings (optional) +if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { + require_once(dirname(__FILE__).'/lang/eng.php'); + $pdf->setLanguageArray($l); +} + +// --------------------------------------------------------- + +// set font +$pdf->setFont('times', '', 10); + +// add a page +$pdf->AddPage(); + +// set cell padding +$pdf->setCellPaddings(1, 1, 1, 1); + +// set cell margins +$pdf->setCellMargins(1, 1, 1, 1); + +// set color for background +$pdf->setFillColor(255, 255, 127); + +// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0) + +// set some text for example +$txt = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'; + +// Multicell test +$pdf->MultiCell(55, 5, '[LEFT] '.$txt, 1, 'L', 1, 0, '', '', true); +$pdf->MultiCell(55, 5, '[RIGHT] '.$txt, 1, 'R', 0, 1, '', '', true); +$pdf->MultiCell(55, 5, '[CENTER] '.$txt, 1, 'C', 0, 0, '', '', true); +$pdf->MultiCell(55, 5, '[JUSTIFY] '.$txt."\n", 1, 'J', 1, 2, '' ,'', true); +$pdf->MultiCell(55, 5, '[DEFAULT] '.$txt, 1, '', 0, 1, '', '', true); + +$pdf->Ln(4); + +// set color for background +$pdf->setFillColor(220, 255, 220); + +// Vertical alignment +$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - TOP] '.$txt, 1, 'J', 1, 0, '', '', true, 0, false, true, 40, 'T'); +$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - MIDDLE] '.$txt, 1, 'J', 1, 0, '', '', true, 0, false, true, 40, 'M'); +$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - BOTTOM] '.$txt, 1, 'J', 1, 1, '', '', true, 0, false, true, 40, 'B'); + +$pdf->Ln(4); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// set color for background +$pdf->setFillColor(215, 235, 255); + +// set some text for example +$txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. + +Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.'; + +// print a blox of text using multicell() +$pdf->MultiCell(80, 5, $txt."\n", 1, 'J', 1, 1, '' ,'', true); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// AUTO-FITTING + +// set color for background +$pdf->setFillColor(255, 235, 235); + +// Fit text on cell by reducing font size +$pdf->MultiCell(55, 60, '[FIT CELL] '.$txt."\n", 1, 'J', 1, 1, 125, 145, true, 0, false, true, 60, 'M', true); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// CUSTOM PADDING + +// set color for background +$pdf->setFillColor(255, 255, 215); + +// set font +$pdf->setFont('helvetica', '', 8); + +// set cell padding +$pdf->setCellPaddings(2, 4, 6, 8); + +$txt = "CUSTOM PADDING:\nLeft=2, Top=4, Right=6, Bottom=8\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue.\n"; + +$pdf->MultiCell(55, 5, $txt, 1, 'J', 1, 2, 125, 210, true); + +// move pointer to last page +$pdf->lastPage(); + +// --------------------------------------------------------- + +//Close and output PDF document +$pdf->Output('example_005.pdf', 'I'); + +//============================================================+ +// END OF FILE +//============================================================+ +./vendor/tecnickcom/tcpdf/examples/example_006.php +setCreator(PDF_CREATOR); +$pdf->setAuthor('Nicola Asuni'); +$pdf->setTitle('TCPDF Example 006'); +$pdf->setSubject('TCPDF Tutorial'); +$pdf->setKeywords('TCPDF, PDF, example, test, guide'); + +// set default header data +$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING); + +// set header and footer fonts +$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); +$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); + +// set default monospaced font +$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); + +// set margins +$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); +$pdf->setHeaderMargin(PDF_MARGIN_HEADER); +$pdf->setFooterMargin(PDF_MARGIN_FOOTER); + +// set auto page breaks +$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); + +// set image scale factor +$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + +// set some language-dependent strings (optional) +if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { + require_once(dirname(__FILE__).'/lang/eng.php'); + $pdf->setLanguageArray($l); +} + +// --------------------------------------------------------- + +// set font +$pdf->setFont('dejavusans', '', 10); + +// add a page +$pdf->AddPage(); + +// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='') +// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true) + +// create some HTML content +$html = '

HTML Example

+Some special characters: < € € € & è è © > \\slash \\\\double-slash \\\\\\triple-slash +

List

+List example: +
    +
  1. test alt attribute test image
  2. +
  3. bold text
  4. +
  5. italic text
  6. +
  7. underlined text
  8. +
  9. bbibiubib
  10. +
  11. link to http://www.tecnick.com
  12. +
  13. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
    Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
  14. +
  15. SUBLIST +
      +
    1. row one +
        +
      • sublist
      • +
      +
    2. +
    3. row two
    4. +
    +
  16. +
  17. TEST line through
  18. +
  19. font + 3
  20. +
  21. small text normal small text normal subscript normal superscript normal
  22. +
+
+
Coffee
+
Black hot drink
+
Milk
+
White cold drink
+
+
IMAGES
+test alt attributetest alt attributetest alt attribute +
'; + +// output the HTML content +$pdf->writeHTML($html, true, false, true, false, ''); + + +// output some RTL HTML content +$html = '
The words “מזל [mazel] טוב [tov]” mean “Congratulations!”
'; +$pdf->writeHTML($html, true, false, true, false, ''); + +// test some inline CSS +$html = '

This is just an example of html code to demonstrate some supported CSS inline styles. +bold text +line-trough +underline and line-trough +color +background color +bold +xx-small +x-small +small +medium +large +x-large +xx-large +

'; + +$pdf->writeHTML($html, true, false, true, false, ''); + +// reset pointer to the last page +$pdf->lastPage(); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print a table + +// add a page +$pdf->AddPage(); + +// create some HTML content +$subtable = '
ab
cd
'; + +$html = '

HTML TABLE:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#RIGHT alignLEFT align4A
1A1 example link column span. One two tree four five six seven eight nine ten.
line after br
small text normal subscript normal superscript normal bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
  1. first
    1. sublist
    2. sublist
  2. second
small small small small small small small small small small small small small small small small small small small small
4B
'.$subtable.'A2 € € € & è è
A2 € € € & è è
Red Yellow BG4C
1A2AA
2AB
2AC
4D
1B4E
1C2C3C4F
'; + +// output the HTML content +$pdf->writeHTML($html, true, false, true, false, ''); + +// Print some HTML Cells + +$html = 'red green blue
red green blue'; + +$pdf->setFillColor(255,255,0); + +$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'L', true); +$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 1, true, 'C', true); +$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'R', true); + +// reset pointer to the last page +$pdf->lastPage(); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print a table + +// add a page +$pdf->AddPage(); + +// create some HTML content +$html = '

Image alignments on HTML table

+ + + + + + + + +
'; + +// output the HTML content +$pdf->writeHTML($html, true, false, true, false, ''); + +// create some HTML content +$html = '

Embedded Images

+ + + +
src="@..."
src="data..."
'; + +$data = base64_encode(file_get_contents("images/logo_example.png")); +$html = str_replace("@DATA1@", "@" . $data, $html); +$html = str_replace("@DATA2@", "data:image/png;base64," . $data, $html); + +// output the HTML content +$pdf->writeHTML($html, true, false, true, false, ''); + +// reset pointer to the last page +$pdf->lastPage(); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print all HTML colors + +// add a page +$pdf->AddPage(); + +$textcolors = '

HTML Text Colors

'; +$bgcolors = '

HTML Background Colors

'; + +foreach(TCPDF_COLORS::$webcolor as $k => $v) { + $textcolors .= ''.$v.' '; + $bgcolors .= ''.$v.' '; +} + +// output the HTML content +$pdf->writeHTML($textcolors, true, false, true, false, ''); +$pdf->writeHTML($bgcolors, true, false, true, false, ''); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// Test word-wrap + +// create some HTML content +$html = '
+

Various tests

+link to page 2
+thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword thisisanotherverylongword thisisaverylongword'; + +// output the HTML content +$pdf->writeHTML($html, true, false, true, false, ''); + +// Test fonts nesting +$html1 = 'Default Courier Helvetica Times dejavusans Times Helvetica Courier Default'; +$html2 = 'small text normal small text normal subscript normal superscript normal'; +$html3 = 'The quick brown fox jumps over the lazy dog.'; + +$html = $html1.'
'.$html2.'
'.$html3.'
'.$html3.'
'.$html2; + +// output the HTML content +$pdf->writeHTML($html, true, false, true, false, ''); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// test pre tag + +// add a page +$pdf->AddPage(); + +$html = << +Hello World!
+Hello + +
+int main() {
+    printf("HelloWorld");
+    return 0;
+}
+
+Monospace font, normal font, monospace font, normal font. +
+
DIV LEVEL 1
DIV LEVEL 2
DIV LEVEL 1
+
+SPAN LEVEL 1 SPAN LEVEL 2 SPAN LEVEL 1 +EOF; + +// output the HTML content +$pdf->writeHTML($html, true, false, true, false, ''); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +// test custom bullet points for list + +// add a page +$pdf->AddPage(); + +$html = <<Test custom bullet image for list items +