From d11cd8e3d906e8c9fe4ead49ecc139dfd4aeb248 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 20 Mar 2018 13:46:46 +0100 Subject: [PATCH] Applied mpdf library + format code --- plugin/test2pdf/README.md | 1 + plugin/test2pdf/class/font/courier.php | 10 - plugin/test2pdf/class/font/courierb.php | 10 - plugin/test2pdf/class/font/courierbi.php | 10 - plugin/test2pdf/class/font/courieri.php | 10 - plugin/test2pdf/class/font/helvetica.php | 21 - plugin/test2pdf/class/font/helveticab.php | 21 - plugin/test2pdf/class/font/helveticabi.php | 21 - plugin/test2pdf/class/font/helveticai.php | 21 - plugin/test2pdf/class/font/symbol.php | 20 - plugin/test2pdf/class/font/times.php | 21 - plugin/test2pdf/class/font/timesb.php | 21 - plugin/test2pdf/class/font/timesbi.php | 21 - plugin/test2pdf/class/font/timesi.php | 21 - plugin/test2pdf/class/font/zapfdingbats.php | 20 - plugin/test2pdf/class/fpdf.php | 1898 ----------------- plugin/test2pdf/config.php | 10 +- plugin/test2pdf/database.php | 27 - plugin/test2pdf/index.php | 4 +- plugin/test2pdf/install.php | 7 +- plugin/test2pdf/lang/english.php | 4 +- plugin/test2pdf/lang/french.php | 4 +- plugin/test2pdf/lang/spanish.php | 4 +- plugin/test2pdf/plugin.php | 7 +- plugin/test2pdf/resources/css/style.css | 3 - plugin/test2pdf/resources/img/128/accept.png | Bin 7061 -> 0 bytes plugin/test2pdf/resources/img/24/download.png | Bin 384 -> 0 bytes plugin/test2pdf/resources/img/24/info.png | Bin 263 -> 0 bytes plugin/test2pdf/resources/img/32/accept.png | Bin 1516 -> 0 bytes plugin/test2pdf/resources/img/32/download.png | Bin 462 -> 0 bytes plugin/test2pdf/resources/img/32/info.png | Bin 311 -> 0 bytes plugin/test2pdf/resources/img/64/download.png | Bin 844 -> 0 bytes plugin/test2pdf/resources/img/64/info.png | Bin 571 -> 0 bytes plugin/test2pdf/resources/img/logo.png | Bin 8823 -> 0 bytes plugin/test2pdf/src/download-pdf.php | 334 +-- plugin/test2pdf/src/index.test2pdf.php | 3 +- plugin/test2pdf/src/test2pdf.lib.php | 312 +-- plugin/test2pdf/src/test2pdf_plugin.class.php | 60 +- plugin/test2pdf/src/view-pdf.php | 39 +- plugin/test2pdf/start.php | 22 +- plugin/test2pdf/uninstall.php | 7 +- plugin/test2pdf/view/view-pdf.tpl | 12 +- 42 files changed, 261 insertions(+), 2745 deletions(-) delete mode 100644 plugin/test2pdf/class/font/courier.php delete mode 100644 plugin/test2pdf/class/font/courierb.php delete mode 100644 plugin/test2pdf/class/font/courierbi.php delete mode 100644 plugin/test2pdf/class/font/courieri.php delete mode 100644 plugin/test2pdf/class/font/helvetica.php delete mode 100644 plugin/test2pdf/class/font/helveticab.php delete mode 100644 plugin/test2pdf/class/font/helveticabi.php delete mode 100644 plugin/test2pdf/class/font/helveticai.php delete mode 100644 plugin/test2pdf/class/font/symbol.php delete mode 100644 plugin/test2pdf/class/font/times.php delete mode 100644 plugin/test2pdf/class/font/timesb.php delete mode 100644 plugin/test2pdf/class/font/timesbi.php delete mode 100644 plugin/test2pdf/class/font/timesi.php delete mode 100644 plugin/test2pdf/class/font/zapfdingbats.php delete mode 100644 plugin/test2pdf/class/fpdf.php delete mode 100644 plugin/test2pdf/database.php delete mode 100644 plugin/test2pdf/resources/img/128/accept.png delete mode 100644 plugin/test2pdf/resources/img/24/download.png delete mode 100644 plugin/test2pdf/resources/img/24/info.png delete mode 100644 plugin/test2pdf/resources/img/32/accept.png delete mode 100644 plugin/test2pdf/resources/img/32/download.png delete mode 100644 plugin/test2pdf/resources/img/32/info.png delete mode 100644 plugin/test2pdf/resources/img/64/download.png delete mode 100644 plugin/test2pdf/resources/img/64/info.png delete mode 100644 plugin/test2pdf/resources/img/logo.png diff --git a/plugin/test2pdf/README.md b/plugin/test2pdf/README.md index fcdc0f9e19..277bd6077c 100644 --- a/plugin/test2pdf/README.md +++ b/plugin/test2pdf/README.md @@ -2,6 +2,7 @@ Test2Pdf plugin =============== This plugin allows you to export questions from exercises to PDF + Este plugin da la posibilidad de obtener en formato PDF aquellas preguntas tipos test en los ejercicios de un curso. Credits diff --git a/plugin/test2pdf/class/font/courier.php b/plugin/test2pdf/class/font/courier.php deleted file mode 100644 index bc8478eb30..0000000000 --- a/plugin/test2pdf/class/font/courier.php +++ /dev/null @@ -1,10 +0,0 @@ -array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/courierb.php b/plugin/test2pdf/class/font/courierb.php deleted file mode 100644 index 97ecd701c8..0000000000 --- a/plugin/test2pdf/class/font/courierb.php +++ /dev/null @@ -1,10 +0,0 @@ -array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/courierbi.php b/plugin/test2pdf/class/font/courierbi.php deleted file mode 100644 index c4bfff881f..0000000000 --- a/plugin/test2pdf/class/font/courierbi.php +++ /dev/null @@ -1,10 +0,0 @@ -array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/courieri.php b/plugin/test2pdf/class/font/courieri.php deleted file mode 100644 index 015a15adff..0000000000 --- a/plugin/test2pdf/class/font/courieri.php +++ /dev/null @@ -1,10 +0,0 @@ -array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/helvetica.php b/plugin/test2pdf/class/font/helvetica.php deleted file mode 100644 index 927759b9a6..0000000000 --- a/plugin/test2pdf/class/font/helvetica.php +++ /dev/null @@ -1,21 +0,0 @@ -278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, - chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584, - ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667, - 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, - 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833, - 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556, - chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, - chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, - chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667, - chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556, - chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/helveticab.php b/plugin/test2pdf/class/font/helveticab.php deleted file mode 100644 index bcd736723c..0000000000 --- a/plugin/test2pdf/class/font/helveticab.php +++ /dev/null @@ -1,21 +0,0 @@ -278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, - chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584, - ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722, - 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, - 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889, - 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556, - chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, - chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, - chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, - chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611, - chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/helveticabi.php b/plugin/test2pdf/class/font/helveticabi.php deleted file mode 100644 index 0243cde4f3..0000000000 --- a/plugin/test2pdf/class/font/helveticabi.php +++ /dev/null @@ -1,21 +0,0 @@ -278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, - chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584, - ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722, - 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, - 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889, - 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556, - chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, - chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, - chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, - chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611, - chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/helveticai.php b/plugin/test2pdf/class/font/helveticai.php deleted file mode 100644 index 06ec735b8f..0000000000 --- a/plugin/test2pdf/class/font/helveticai.php +++ /dev/null @@ -1,21 +0,0 @@ -278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, - chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584, - ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667, - 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, - 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833, - 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556, - chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, - chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, - chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667, - chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556, - chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/symbol.php b/plugin/test2pdf/class/font/symbol.php deleted file mode 100644 index f8f0c3309a..0000000000 --- a/plugin/test2pdf/class/font/symbol.php +++ /dev/null @@ -1,20 +0,0 @@ -250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, - chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549, - ','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722, - 'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768, - 'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576, - 'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0, - chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0, - chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603, - chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768, - chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042, - chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329, - chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0); -$uv = array(32=>160,33=>33,34=>8704,35=>35,36=>8707,37=>array(37,2),39=>8715,40=>array(40,2),42=>8727,43=>array(43,2),45=>8722,46=>array(46,18),64=>8773,65=>array(913,2),67=>935,68=>array(916,2),70=>934,71=>915,72=>919,73=>921,74=>977,75=>array(922,4),79=>array(927,2),81=>920,82=>929,83=>array(931,3),86=>962,87=>937,88=>926,89=>936,90=>918,91=>91,92=>8756,93=>93,94=>8869,95=>95,96=>63717,97=>array(945,2),99=>967,100=>array(948,2),102=>966,103=>947,104=>951,105=>953,106=>981,107=>array(954,4),111=>array(959,2),113=>952,114=>961,115=>array(963,3),118=>982,119=>969,120=>958,121=>968,122=>950,123=>array(123,3),126=>8764,160=>8364,161=>978,162=>8242,163=>8804,164=>8725,165=>8734,166=>402,167=>9827,168=>9830,169=>9829,170=>9824,171=>8596,172=>array(8592,4),176=>array(176,2),178=>8243,179=>8805,180=>215,181=>8733,182=>8706,183=>8226,184=>247,185=>array(8800,2),187=>8776,188=>8230,189=>array(63718,2),191=>8629,192=>8501,193=>8465,194=>8476,195=>8472,196=>8855,197=>8853,198=>8709,199=>array(8745,2),201=>8835,202=>8839,203=>8836,204=>8834,205=>8838,206=>array(8712,2),208=>8736,209=>8711,210=>63194,211=>63193,212=>63195,213=>8719,214=>8730,215=>8901,216=>172,217=>array(8743,2),219=>8660,220=>array(8656,4),224=>9674,225=>9001,226=>array(63720,3),229=>8721,230=>array(63723,10),241=>9002,242=>8747,243=>8992,244=>63733,245=>8993,246=>array(63734,9)); -?> diff --git a/plugin/test2pdf/class/font/times.php b/plugin/test2pdf/class/font/times.php deleted file mode 100644 index 81f2a8b4bd..0000000000 --- a/plugin/test2pdf/class/font/times.php +++ /dev/null @@ -1,21 +0,0 @@ -250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, - chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564, - ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722, - 'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944, - 'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778, - 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, - chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980, - chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333, - chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, - chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500, - chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/timesb.php b/plugin/test2pdf/class/font/timesb.php deleted file mode 100644 index 7db704fd48..0000000000 --- a/plugin/test2pdf/class/font/timesb.php +++ /dev/null @@ -1,21 +0,0 @@ -250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, - chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570, - ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722, - 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000, - 'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833, - 'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, - chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, - chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333, - chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, - chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556, - chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/timesbi.php b/plugin/test2pdf/class/font/timesbi.php deleted file mode 100644 index 089f21ab30..0000000000 --- a/plugin/test2pdf/class/font/timesbi.php +++ /dev/null @@ -1,21 +0,0 @@ -250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, - chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570, - ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667, - 'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889, - 'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778, - 'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, - chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, - chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333, - chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667, - chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556, - chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/timesi.php b/plugin/test2pdf/class/font/timesi.php deleted file mode 100644 index f958b5b672..0000000000 --- a/plugin/test2pdf/class/font/timesi.php +++ /dev/null @@ -1,21 +0,0 @@ -250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, - chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675, - ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611, - 'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833, - 'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722, - 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, - chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980, - chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333, - chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611, - chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722, - chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500, - chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444); -$enc = 'cp1252'; -$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); -?> diff --git a/plugin/test2pdf/class/font/zapfdingbats.php b/plugin/test2pdf/class/font/zapfdingbats.php deleted file mode 100644 index 7c2cb5e4cf..0000000000 --- a/plugin/test2pdf/class/font/zapfdingbats.php +++ /dev/null @@ -1,20 +0,0 @@ -0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0, - chr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939, - ','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692, - 'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776, - 'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873, - 'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317, - chr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0, - chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788, - chr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788, - chr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918, - chr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874, - chr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0); -$uv = array(32=>32,33=>array(9985,4),37=>9742,38=>array(9990,4),42=>9755,43=>9758,44=>array(9996,28),72=>9733,73=>array(10025,35),108=>9679,109=>10061,110=>9632,111=>array(10063,4),115=>9650,116=>9660,117=>9670,118=>10070,119=>9687,120=>array(10072,7),128=>array(10088,14),161=>array(10081,7),168=>9827,169=>9830,170=>9829,171=>9824,172=>array(9312,10),182=>array(10102,31),213=>8594,214=>array(8596,2),216=>array(10136,24),241=>array(10161,14)); -?> diff --git a/plugin/test2pdf/class/fpdf.php b/plugin/test2pdf/class/fpdf.php deleted file mode 100644 index e7fbb45356..0000000000 --- a/plugin/test2pdf/class/fpdf.php +++ /dev/null @@ -1,1898 +0,0 @@ -_dochecks(); - // Initialization of properties - $this->state = 0; - $this->page = 0; - $this->n = 2; - $this->buffer = ''; - $this->pages = array(); - $this->PageInfo = array(); - $this->fonts = array(); - $this->FontFiles = array(); - $this->encodings = array(); - $this->cmaps = array(); - $this->images = array(); - $this->links = array(); - $this->InHeader = false; - $this->InFooter = false; - $this->lasth = 0; - $this->FontFamily = ''; - $this->FontStyle = ''; - $this->FontSizePt = 12; - $this->underline = false; - $this->DrawColor = '0 G'; - $this->FillColor = '0 g'; - $this->TextColor = '0 g'; - $this->ColorFlag = false; - $this->WithAlpha = false; - $this->ws = 0; - // Font path - if(defined('FPDF_FONTPATH')) - { - $this->fontpath = FPDF_FONTPATH; - if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\') - $this->fontpath .= '/'; - } - elseif(is_dir(dirname(__FILE__).'/font')) - $this->fontpath = dirname(__FILE__).'/font/'; - else - $this->fontpath = ''; - // Core fonts - $this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats'); - // Scale factor - if($unit=='pt') - $this->k = 1; - elseif($unit=='mm') - $this->k = 72/25.4; - elseif($unit=='cm') - $this->k = 72/2.54; - elseif($unit=='in') - $this->k = 72; - else - $this->Error('Incorrect unit: '.$unit); - // Page sizes - $this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28), - 'letter'=>array(612,792), 'legal'=>array(612,1008)); - $size = $this->_getpagesize($size); - $this->DefPageSize = $size; - $this->CurPageSize = $size; - // Page orientation - $orientation = strtolower($orientation); - if($orientation=='p' || $orientation=='portrait') - { - $this->DefOrientation = 'P'; - $this->w = $size[0]; - $this->h = $size[1]; - } - elseif($orientation=='l' || $orientation=='landscape') - { - $this->DefOrientation = 'L'; - $this->w = $size[1]; - $this->h = $size[0]; - } - else - $this->Error('Incorrect orientation: '.$orientation); - $this->CurOrientation = $this->DefOrientation; - $this->wPt = $this->w*$this->k; - $this->hPt = $this->h*$this->k; - // Page rotation - $this->CurRotation = 0; - // Page margins (1 cm) - $margin = 28.35/$this->k; - $this->SetMargins($margin,$margin); - // Interior cell margin (1 mm) - $this->cMargin = $margin/10; - // Line width (0.2 mm) - $this->LineWidth = .567/$this->k; - // Automatic page break - $this->SetAutoPageBreak(true,2*$margin); - // Default display mode - $this->SetDisplayMode('default'); - // Enable compression - $this->SetCompression(true); - // Set default PDF version number - $this->PDFVersion = '1.3'; -} - -function SetMargins($left, $top, $right=null) -{ - // Set left, top and right margins - $this->lMargin = $left; - $this->tMargin = $top; - if($right===null) - $right = $left; - $this->rMargin = $right; -} - -function SetLeftMargin($margin) -{ - // Set left margin - $this->lMargin = $margin; - if($this->page>0 && $this->x<$margin) - $this->x = $margin; -} - -function SetTopMargin($margin) -{ - // Set top margin - $this->tMargin = $margin; -} - -function SetRightMargin($margin) -{ - // Set right margin - $this->rMargin = $margin; -} - -function SetAutoPageBreak($auto, $margin=0) -{ - // Set auto page break mode and triggering margin - $this->AutoPageBreak = $auto; - $this->bMargin = $margin; - $this->PageBreakTrigger = $this->h-$margin; -} - -function SetDisplayMode($zoom, $layout='default') -{ - // Set display mode in viewer - if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom)) - $this->ZoomMode = $zoom; - else - $this->Error('Incorrect zoom display mode: '.$zoom); - if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default') - $this->LayoutMode = $layout; - else - $this->Error('Incorrect layout display mode: '.$layout); -} - -function SetCompression($compress) -{ - // Set page compression - if(function_exists('gzcompress')) - $this->compress = $compress; - else - $this->compress = false; -} - -function SetTitle($title, $isUTF8=false) -{ - // Title of document - $this->metadata['Title'] = $isUTF8 ? $title : utf8_encode($title); -} - -function SetAuthor($author, $isUTF8=false) -{ - // Author of document - $this->metadata['Author'] = $isUTF8 ? $author : utf8_encode($author); -} - -function SetSubject($subject, $isUTF8=false) -{ - // Subject of document - $this->metadata['Subject'] = $isUTF8 ? $subject : utf8_encode($subject); -} - -function SetKeywords($keywords, $isUTF8=false) -{ - // Keywords of document - $this->metadata['Keywords'] = $isUTF8 ? $keywords : utf8_encode($keywords); -} - -function SetCreator($creator, $isUTF8=false) -{ - // Creator of document - $this->metadata['Creator'] = $isUTF8 ? $creator : utf8_encode($creator); -} - -function AliasNbPages($alias='{nb}') -{ - // Define an alias for total number of pages - $this->AliasNbPages = $alias; -} - -function Error($msg) -{ - // Fatal error - throw new Exception('FPDF error: '.$msg); -} - -function Close() -{ - // Terminate document - if($this->state==3) - return; - if($this->page==0) - $this->AddPage(); - // Page footer - $this->InFooter = true; - $this->Footer(); - $this->InFooter = false; - // Close page - $this->_endpage(); - // Close document - $this->_enddoc(); -} - -function AddPage($orientation='', $size='', $rotation=0) -{ - // Start a new page - if($this->state==3) - $this->Error('The document is closed'); - $family = $this->FontFamily; - $style = $this->FontStyle.($this->underline ? 'U' : ''); - $fontsize = $this->FontSizePt; - $lw = $this->LineWidth; - $dc = $this->DrawColor; - $fc = $this->FillColor; - $tc = $this->TextColor; - $cf = $this->ColorFlag; - if($this->page>0) - { - // Page footer - $this->InFooter = true; - $this->Footer(); - $this->InFooter = false; - // Close page - $this->_endpage(); - } - // Start new page - $this->_beginpage($orientation,$size,$rotation); - // Set line cap style to square - $this->_out('2 J'); - // Set line width - $this->LineWidth = $lw; - $this->_out(sprintf('%.2F w',$lw*$this->k)); - // Set font - if($family) - $this->SetFont($family,$style,$fontsize); - // Set colors - $this->DrawColor = $dc; - if($dc!='0 G') - $this->_out($dc); - $this->FillColor = $fc; - if($fc!='0 g') - $this->_out($fc); - $this->TextColor = $tc; - $this->ColorFlag = $cf; - // Page header - $this->InHeader = true; - $this->Header(); - $this->InHeader = false; - // Restore line width - if($this->LineWidth!=$lw) - { - $this->LineWidth = $lw; - $this->_out(sprintf('%.2F w',$lw*$this->k)); - } - // Restore font - if($family) - $this->SetFont($family,$style,$fontsize); - // Restore colors - if($this->DrawColor!=$dc) - { - $this->DrawColor = $dc; - $this->_out($dc); - } - if($this->FillColor!=$fc) - { - $this->FillColor = $fc; - $this->_out($fc); - } - $this->TextColor = $tc; - $this->ColorFlag = $cf; -} - -function Header() -{ - // To be implemented in your own inherited class -} - -function Footer() -{ - // To be implemented in your own inherited class -} - -function PageNo() -{ - // Get current page number - return $this->page; -} - -function SetDrawColor($r, $g=null, $b=null) -{ - // Set color for all stroking operations - if(($r==0 && $g==0 && $b==0) || $g===null) - $this->DrawColor = sprintf('%.3F G',$r/255); - else - $this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255); - if($this->page>0) - $this->_out($this->DrawColor); -} - -function SetFillColor($r, $g=null, $b=null) -{ - // Set color for all filling operations - if(($r==0 && $g==0 && $b==0) || $g===null) - $this->FillColor = sprintf('%.3F g',$r/255); - else - $this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255); - $this->ColorFlag = ($this->FillColor!=$this->TextColor); - if($this->page>0) - $this->_out($this->FillColor); -} - -function SetTextColor($r, $g=null, $b=null) -{ - // Set color for text - if(($r==0 && $g==0 && $b==0) || $g===null) - $this->TextColor = sprintf('%.3F g',$r/255); - else - $this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255); - $this->ColorFlag = ($this->FillColor!=$this->TextColor); -} - -function GetStringWidth($s) -{ - // Get width of a string in the current font - $s = (string)$s; - $cw = &$this->CurrentFont['cw']; - $w = 0; - $l = strlen($s); - for($i=0;$i<$l;$i++) - $w += $cw[$s[$i]]; - return $w*$this->FontSize/1000; -} - -function SetLineWidth($width) -{ - // Set line width - $this->LineWidth = $width; - if($this->page>0) - $this->_out(sprintf('%.2F w',$width*$this->k)); -} - -function Line($x1, $y1, $x2, $y2) -{ - // Draw a line - $this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k)); -} - -function Rect($x, $y, $w, $h, $style='') -{ - // Draw a rectangle - if($style=='F') - $op = 'f'; - elseif($style=='FD' || $style=='DF') - $op = 'B'; - else - $op = 'S'; - $this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op)); -} - -function AddFont($family, $style='', $file='') -{ - // Add a TrueType, OpenType or Type1 font - $family = strtolower($family); - if($file=='') - $file = str_replace(' ','',$family).strtolower($style).'.php'; - $style = strtoupper($style); - if($style=='IB') - $style = 'BI'; - $fontkey = $family.$style; - if(isset($this->fonts[$fontkey])) - return; - $info = $this->_loadfont($file); - $info['i'] = count($this->fonts)+1; - if(!empty($info['file'])) - { - // Embedded font - if($info['type']=='TrueType') - $this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']); - else - $this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']); - } - $this->fonts[$fontkey] = $info; -} - -function SetFont($family, $style='', $size=0) -{ - // Select a font; size given in points - if($family=='') - $family = $this->FontFamily; - else - $family = strtolower($family); - $style = strtoupper($style); - if(strpos($style,'U')!==false) - { - $this->underline = true; - $style = str_replace('U','',$style); - } - else - $this->underline = false; - if($style=='IB') - $style = 'BI'; - if($size==0) - $size = $this->FontSizePt; - // Test if font is already selected - if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size) - return; - // Test if font is already loaded - $fontkey = $family.$style; - if(!isset($this->fonts[$fontkey])) - { - // Test if one of the core fonts - if($family=='arial') - $family = 'helvetica'; - if(in_array($family,$this->CoreFonts)) - { - if($family=='symbol' || $family=='zapfdingbats') - $style = ''; - $fontkey = $family.$style; - if(!isset($this->fonts[$fontkey])) - $this->AddFont($family,$style); - } - else - $this->Error('Undefined font: '.$family.' '.$style); - } - // Select it - $this->FontFamily = $family; - $this->FontStyle = $style; - $this->FontSizePt = $size; - $this->FontSize = $size/$this->k; - $this->CurrentFont = &$this->fonts[$fontkey]; - if($this->page>0) - $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt)); -} - -function SetFontSize($size) -{ - // Set font size in points - if($this->FontSizePt==$size) - return; - $this->FontSizePt = $size; - $this->FontSize = $size/$this->k; - if($this->page>0) - $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt)); -} - -function AddLink() -{ - // Create a new internal link - $n = count($this->links)+1; - $this->links[$n] = array(0, 0); - return $n; -} - -function SetLink($link, $y=0, $page=-1) -{ - // Set destination of internal link - if($y==-1) - $y = $this->y; - if($page==-1) - $page = $this->page; - $this->links[$link] = array($page, $y); -} - -function Link($x, $y, $w, $h, $link) -{ - // Put a link on the page - $this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link); -} - -function Text($x, $y, $txt) -{ - // Output a string - if(!isset($this->CurrentFont)) - $this->Error('No font has been set'); - $s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt)); - if($this->underline && $txt!='') - $s .= ' '.$this->_dounderline($x,$y,$txt); - if($this->ColorFlag) - $s = 'q '.$this->TextColor.' '.$s.' Q'; - $this->_out($s); -} - -function AcceptPageBreak() -{ - // Accept automatic page break or not - return $this->AutoPageBreak; -} - -function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='') -{ - // Output a cell - $k = $this->k; - if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) - { - // Automatic page break - $x = $this->x; - $ws = $this->ws; - if($ws>0) - { - $this->ws = 0; - $this->_out('0 Tw'); - } - $this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation); - $this->x = $x; - if($ws>0) - { - $this->ws = $ws; - $this->_out(sprintf('%.3F Tw',$ws*$k)); - } - } - if($w==0) - $w = $this->w-$this->rMargin-$this->x; - $s = ''; - if($fill || $border==1) - { - if($fill) - $op = ($border==1) ? 'B' : 'f'; - else - $op = 'S'; - $s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op); - } - if(is_string($border)) - { - $x = $this->x; - $y = $this->y; - if(strpos($border,'L')!==false) - $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k); - if(strpos($border,'T')!==false) - $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k); - if(strpos($border,'R')!==false) - $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k); - if(strpos($border,'B')!==false) - $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k); - } - if($txt!=='') - { - if(!isset($this->CurrentFont)) - $this->Error('No font has been set'); - if($align=='R') - $dx = $w-$this->cMargin-$this->GetStringWidth($txt); - elseif($align=='C') - $dx = ($w-$this->GetStringWidth($txt))/2; - else - $dx = $this->cMargin; - if($this->ColorFlag) - $s .= 'q '.$this->TextColor.' '; - $s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$this->_escape($txt)); - if($this->underline) - $s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt); - if($this->ColorFlag) - $s .= ' Q'; - if($link) - $this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link); - } - if($s) - $this->_out($s); - $this->lasth = $h; - if($ln>0) - { - // Go to next line - $this->y += $h; - if($ln==1) - $this->x = $this->lMargin; - } - else - $this->x += $w; -} - -function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false) -{ - // Output text with automatic or explicit line breaks - if(!isset($this->CurrentFont)) - $this->Error('No font has been set'); - $cw = &$this->CurrentFont['cw']; - if($w==0) - $w = $this->w-$this->rMargin-$this->x; - $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; - $s = str_replace("\r",'',$txt); - $nb = strlen($s); - if($nb>0 && $s[$nb-1]=="\n") - $nb--; - $b = 0; - if($border) - { - if($border==1) - { - $border = 'LTRB'; - $b = 'LRT'; - $b2 = 'LR'; - } - else - { - $b2 = ''; - if(strpos($border,'L')!==false) - $b2 .= 'L'; - if(strpos($border,'R')!==false) - $b2 .= 'R'; - $b = (strpos($border,'T')!==false) ? $b2.'T' : $b2; - } - } - $sep = -1; - $i = 0; - $j = 0; - $l = 0; - $ns = 0; - $nl = 1; - while($i<$nb) - { - // Get next character - $c = $s[$i]; - if($c=="\n") - { - // Explicit line break - if($this->ws>0) - { - $this->ws = 0; - $this->_out('0 Tw'); - } - $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); - $i++; - $sep = -1; - $j = $i; - $l = 0; - $ns = 0; - $nl++; - if($border && $nl==2) - $b = $b2; - continue; - } - if($c==' ') - { - $sep = $i; - $ls = $l; - $ns++; - } - $l += $cw[$c]; - if($l>$wmax) - { - // Automatic line break - if($sep==-1) - { - if($i==$j) - $i++; - if($this->ws>0) - { - $this->ws = 0; - $this->_out('0 Tw'); - } - $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); - } - else - { - if($align=='J') - { - $this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0; - $this->_out(sprintf('%.3F Tw',$this->ws*$this->k)); - } - $this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill); - $i = $sep+1; - } - $sep = -1; - $j = $i; - $l = 0; - $ns = 0; - $nl++; - if($border && $nl==2) - $b = $b2; - } - else - $i++; - } - // Last chunk - if($this->ws>0) - { - $this->ws = 0; - $this->_out('0 Tw'); - } - if($border && strpos($border,'B')!==false) - $b .= 'B'; - $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); - $this->x = $this->lMargin; -} - -function Write($h, $txt, $link='') -{ - // Output text in flowing mode - if(!isset($this->CurrentFont)) - $this->Error('No font has been set'); - $cw = &$this->CurrentFont['cw']; - $w = $this->w-$this->rMargin-$this->x; - $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; - $s = str_replace("\r",'',$txt); - $nb = strlen($s); - $sep = -1; - $i = 0; - $j = 0; - $l = 0; - $nl = 1; - while($i<$nb) - { - // Get next character - $c = $s[$i]; - if($c=="\n") - { - // Explicit line break - $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link); - $i++; - $sep = -1; - $j = $i; - $l = 0; - if($nl==1) - { - $this->x = $this->lMargin; - $w = $this->w-$this->rMargin-$this->x; - $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; - } - $nl++; - continue; - } - if($c==' ') - $sep = $i; - $l += $cw[$c]; - if($l>$wmax) - { - // Automatic line break - if($sep==-1) - { - if($this->x>$this->lMargin) - { - // Move to next line - $this->x = $this->lMargin; - $this->y += $h; - $w = $this->w-$this->rMargin-$this->x; - $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; - $i++; - $nl++; - continue; - } - if($i==$j) - $i++; - $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link); - } - else - { - $this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',false,$link); - $i = $sep+1; - } - $sep = -1; - $j = $i; - $l = 0; - if($nl==1) - { - $this->x = $this->lMargin; - $w = $this->w-$this->rMargin-$this->x; - $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; - } - $nl++; - } - else - $i++; - } - // Last chunk - if($i!=$j) - $this->Cell($l/1000*$this->FontSize,$h,substr($s,$j),0,0,'',false,$link); -} - -function Ln($h=null) -{ - // Line feed; default value is the last cell height - $this->x = $this->lMargin; - if($h===null) - $this->y += $this->lasth; - else - $this->y += $h; -} - -function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='') -{ - // Put an image on the page - if($file=='') - $this->Error('Image file name is empty'); - if(!isset($this->images[$file])) - { - // First use of this image, get info - if($type=='') - { - $pos = strrpos($file,'.'); - if(!$pos) - $this->Error('Image file has no extension and no type was specified: '.$file); - $type = substr($file,$pos+1); - } - $type = strtolower($type); - if($type=='jpeg') - $type = 'jpg'; - $mtd = '_parse'.$type; - if(!method_exists($this,$mtd)) - $this->Error('Unsupported image type: '.$type); - $info = $this->$mtd($file); - $info['i'] = count($this->images)+1; - $this->images[$file] = $info; - } - else - $info = $this->images[$file]; - - // Automatic width and height calculation if needed - if($w==0 && $h==0) - { - // Put image at 96 dpi - $w = -96; - $h = -96; - } - if($w<0) - $w = -$info['w']*72/$w/$this->k; - if($h<0) - $h = -$info['h']*72/$h/$this->k; - if($w==0) - $w = $h*$info['w']/$info['h']; - if($h==0) - $h = $w*$info['h']/$info['w']; - - // Flowing mode - if($y===null) - { - if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) - { - // Automatic page break - $x2 = $this->x; - $this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation); - $this->x = $x2; - } - $y = $this->y; - $this->y += $h; - } - - if($x===null) - $x = $this->x; - $this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i'])); - if($link) - $this->Link($x,$y,$w,$h,$link); -} - -function GetPageWidth() -{ - // Get current page width - return $this->w; -} - -function GetPageHeight() -{ - // Get current page height - return $this->h; -} - -function GetX() -{ - // Get x position - return $this->x; -} - -function SetX($x) -{ - // Set x position - if($x>=0) - $this->x = $x; - else - $this->x = $this->w+$x; -} - -function GetY() -{ - // Get y position - return $this->y; -} - -function SetY($y, $resetX=true) -{ - // Set y position and optionally reset x - if($y>=0) - $this->y = $y; - else - $this->y = $this->h+$y; - if($resetX) - $this->x = $this->lMargin; -} - -function SetXY($x, $y) -{ - // Set x and y positions - $this->SetX($x); - $this->SetY($y,false); -} - -function Output($dest='', $name='', $isUTF8=false) -{ - // Output PDF to some destination - $this->Close(); - if(strlen($name)==1 && strlen($dest)!=1) - { - // Fix parameter order - $tmp = $dest; - $dest = $name; - $name = $tmp; - } - if($dest=='') - $dest = 'I'; - if($name=='') - $name = 'doc.pdf'; - switch(strtoupper($dest)) - { - case 'I': - // Send to standard output - $this->_checkoutput(); - if(PHP_SAPI!='cli') - { - // We send to a browser - header('Content-Type: application/pdf'); - header('Content-Disposition: inline; '.$this->_httpencode('filename',$name,$isUTF8)); - header('Cache-Control: private, max-age=0, must-revalidate'); - header('Pragma: public'); - } - echo $this->buffer; - break; - case 'D': - // Download file - $this->_checkoutput(); - header('Content-Type: application/x-download'); - header('Content-Disposition: attachment; '.$this->_httpencode('filename',$name,$isUTF8)); - header('Cache-Control: private, max-age=0, must-revalidate'); - header('Pragma: public'); - echo $this->buffer; - break; - case 'F': - // Save to local file - if(!file_put_contents($name,$this->buffer)) - $this->Error('Unable to create output file: '.$name); - break; - case 'S': - // Return as a string - return $this->buffer; - default: - $this->Error('Incorrect output destination: '.$dest); - } - return ''; -} - -/******************************************************************************* -* Protected methods * -*******************************************************************************/ - -protected function _dochecks() -{ - // Check mbstring overloading - if(ini_get('mbstring.func_overload') & 2) - $this->Error('mbstring overloading must be disabled'); - // Ensure runtime magic quotes are disabled - if(get_magic_quotes_runtime()) - @set_magic_quotes_runtime(0); -} - -protected function _checkoutput() -{ - if(PHP_SAPI!='cli') - { - if(headers_sent($file,$line)) - $this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)"); - } - if(ob_get_length()) - { - // The output buffer is not empty - if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents())) - { - // It contains only a UTF-8 BOM and/or whitespace, let's clean it - ob_clean(); - } - else - $this->Error("Some data has already been output, can't send PDF file"); - } -} - -protected function _getpagesize($size) -{ - if(is_string($size)) - { - $size = strtolower($size); - if(!isset($this->StdPageSizes[$size])) - $this->Error('Unknown page size: '.$size); - $a = $this->StdPageSizes[$size]; - return array($a[0]/$this->k, $a[1]/$this->k); - } - else - { - if($size[0]>$size[1]) - return array($size[1], $size[0]); - else - return $size; - } -} - -protected function _beginpage($orientation, $size, $rotation) -{ - $this->page++; - $this->pages[$this->page] = ''; - $this->state = 2; - $this->x = $this->lMargin; - $this->y = $this->tMargin; - $this->FontFamily = ''; - // Check page size and orientation - if($orientation=='') - $orientation = $this->DefOrientation; - else - $orientation = strtoupper($orientation[0]); - if($size=='') - $size = $this->DefPageSize; - else - $size = $this->_getpagesize($size); - if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1]) - { - // New size or orientation - if($orientation=='P') - { - $this->w = $size[0]; - $this->h = $size[1]; - } - else - { - $this->w = $size[1]; - $this->h = $size[0]; - } - $this->wPt = $this->w*$this->k; - $this->hPt = $this->h*$this->k; - $this->PageBreakTrigger = $this->h-$this->bMargin; - $this->CurOrientation = $orientation; - $this->CurPageSize = $size; - } - if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1]) - $this->PageInfo[$this->page]['size'] = array($this->wPt, $this->hPt); - if($rotation!=0) - { - if($rotation%90!=0) - $this->Error('Incorrect rotation value: '.$rotation); - $this->CurRotation = $rotation; - $this->PageInfo[$this->page]['rotation'] = $rotation; - } -} - -protected function _endpage() -{ - $this->state = 1; -} - -protected function _loadfont($font) -{ - // Load a font definition file from the font directory - if(strpos($font,'/')!==false || strpos($font,"\\")!==false) - $this->Error('Incorrect font definition file name: '.$font); - include($this->fontpath.$font); - if(!isset($name)) - $this->Error('Could not include font definition file'); - if(isset($enc)) - $enc = strtolower($enc); - if(!isset($subsetted)) - $subsetted = false; - return get_defined_vars(); -} - -protected function _isascii($s) -{ - // Test if string is ASCII - $nb = strlen($s); - for($i=0;$i<$nb;$i++) - { - if(ord($s[$i])>127) - return false; - } - return true; -} - -protected function _httpencode($param, $value, $isUTF8) -{ - // Encode HTTP header field parameter - if($this->_isascii($value)) - return $param.'="'.$value.'"'; - if(!$isUTF8) - $value = utf8_encode($value); - if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')!==false) - return $param.'="'.rawurlencode($value).'"'; - else - return $param."*=UTF-8''".rawurlencode($value); -} - -protected function _UTF8toUTF16($s) -{ - // Convert UTF-8 to UTF-16BE with BOM - $res = "\xFE\xFF"; - $nb = strlen($s); - $i = 0; - while($i<$nb) - { - $c1 = ord($s[$i++]); - if($c1>=224) - { - // 3-byte character - $c2 = ord($s[$i++]); - $c3 = ord($s[$i++]); - $res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2)); - $res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F)); - } - elseif($c1>=192) - { - // 2-byte character - $c2 = ord($s[$i++]); - $res .= chr(($c1 & 0x1C)>>2); - $res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F)); - } - else - { - // Single-byte character - $res .= "\0".chr($c1); - } - } - return $res; -} - -protected function _escape($s) -{ - // Escape special characters - if(strpos($s,'(')!==false || strpos($s,')')!==false || strpos($s,'\\')!==false || strpos($s,"\r")!==false) - return str_replace(array('\\','(',')',"\r"), array('\\\\','\\(','\\)','\\r'), $s); - else - return $s; -} - -protected function _textstring($s) -{ - // Format a text string - if(!$this->_isascii($s)) - $s = $this->_UTF8toUTF16($s); - return '('.$this->_escape($s).')'; -} - -protected function _dounderline($x, $y, $txt) -{ - // Underline text - $up = $this->CurrentFont['up']; - $ut = $this->CurrentFont['ut']; - $w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' '); - return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt); -} - -protected function _parsejpg($file) -{ - // Extract info from a JPEG file - $a = getimagesize($file); - if(!$a) - $this->Error('Missing or incorrect image file: '.$file); - if($a[2]!=2) - $this->Error('Not a JPEG file: '.$file); - if(!isset($a['channels']) || $a['channels']==3) - $colspace = 'DeviceRGB'; - elseif($a['channels']==4) - $colspace = 'DeviceCMYK'; - else - $colspace = 'DeviceGray'; - $bpc = isset($a['bits']) ? $a['bits'] : 8; - $data = file_get_contents($file); - return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data); -} - -protected function _parsepng($file) -{ - // Extract info from a PNG file - $f = fopen($file,'rb'); - if(!$f) - $this->Error('Can\'t open image file: '.$file); - $info = $this->_parsepngstream($f,$file); - fclose($f); - return $info; -} - -protected function _parsepngstream($f, $file) -{ - // Check signature - if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) - $this->Error('Not a PNG file: '.$file); - - // Read header chunk - $this->_readstream($f,4); - if($this->_readstream($f,4)!='IHDR') - $this->Error('Incorrect PNG file: '.$file); - $w = $this->_readint($f); - $h = $this->_readint($f); - $bpc = ord($this->_readstream($f,1)); - if($bpc>8) - $this->Error('16-bit depth not supported: '.$file); - $ct = ord($this->_readstream($f,1)); - if($ct==0 || $ct==4) - $colspace = 'DeviceGray'; - elseif($ct==2 || $ct==6) - $colspace = 'DeviceRGB'; - elseif($ct==3) - $colspace = 'Indexed'; - else - $this->Error('Unknown color type: '.$file); - if(ord($this->_readstream($f,1))!=0) - $this->Error('Unknown compression method: '.$file); - if(ord($this->_readstream($f,1))!=0) - $this->Error('Unknown filter method: '.$file); - if(ord($this->_readstream($f,1))!=0) - $this->Error('Interlacing not supported: '.$file); - $this->_readstream($f,4); - $dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w; - - // Scan chunks looking for palette, transparency and image data - $pal = ''; - $trns = ''; - $data = ''; - do - { - $n = $this->_readint($f); - $type = $this->_readstream($f,4); - if($type=='PLTE') - { - // Read palette - $pal = $this->_readstream($f,$n); - $this->_readstream($f,4); - } - elseif($type=='tRNS') - { - // Read transparency info - $t = $this->_readstream($f,$n); - if($ct==0) - $trns = array(ord(substr($t,1,1))); - elseif($ct==2) - $trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1))); - else - { - $pos = strpos($t,chr(0)); - if($pos!==false) - $trns = array($pos); - } - $this->_readstream($f,4); - } - elseif($type=='IDAT') - { - // Read image data block - $data .= $this->_readstream($f,$n); - $this->_readstream($f,4); - } - elseif($type=='IEND') - break; - else - $this->_readstream($f,$n+4); - } - while($n); - - if($colspace=='Indexed' && empty($pal)) - $this->Error('Missing palette in '.$file); - $info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns); - if($ct>=4) - { - // Extract alpha channel - if(!function_exists('gzuncompress')) - $this->Error('Zlib not available, can\'t handle alpha channel: '.$file); - $data = gzuncompress($data); - $color = ''; - $alpha = ''; - if($ct==4) - { - // Gray image - $len = 2*$w; - for($i=0;$i<$h;$i++) - { - $pos = (1+$len)*$i; - $color .= $data[$pos]; - $alpha .= $data[$pos]; - $line = substr($data,$pos+1,$len); - $color .= preg_replace('/(.)./s','$1',$line); - $alpha .= preg_replace('/.(.)/s','$1',$line); - } - } - else - { - // RGB image - $len = 4*$w; - for($i=0;$i<$h;$i++) - { - $pos = (1+$len)*$i; - $color .= $data[$pos]; - $alpha .= $data[$pos]; - $line = substr($data,$pos+1,$len); - $color .= preg_replace('/(.{3})./s','$1',$line); - $alpha .= preg_replace('/.{3}(.)/s','$1',$line); - } - } - unset($data); - $data = gzcompress($color); - $info['smask'] = gzcompress($alpha); - $this->WithAlpha = true; - if($this->PDFVersion<'1.4') - $this->PDFVersion = '1.4'; - } - $info['data'] = $data; - return $info; -} - -protected function _readstream($f, $n) -{ - // Read n bytes from stream - $res = ''; - while($n>0 && !feof($f)) - { - $s = fread($f,$n); - if($s===false) - $this->Error('Error while reading stream'); - $n -= strlen($s); - $res .= $s; - } - if($n>0) - $this->Error('Unexpected end of stream'); - return $res; -} - -protected function _readint($f) -{ - // Read a 4-byte integer from stream - $a = unpack('Ni',$this->_readstream($f,4)); - return $a['i']; -} - -protected function _parsegif($file) -{ - // Extract info from a GIF file (via PNG conversion) - if(!function_exists('imagepng')) - $this->Error('GD extension is required for GIF support'); - if(!function_exists('imagecreatefromgif')) - $this->Error('GD has no GIF read support'); - $im = imagecreatefromgif($file); - if(!$im) - $this->Error('Missing or incorrect image file: '.$file); - imageinterlace($im,0); - ob_start(); - imagepng($im); - $data = ob_get_clean(); - imagedestroy($im); - $f = fopen('php://temp','rb+'); - if(!$f) - $this->Error('Unable to create memory stream'); - fwrite($f,$data); - rewind($f); - $info = $this->_parsepngstream($f,$file); - fclose($f); - return $info; -} - -protected function _out($s) -{ - // Add a line to the document - if($this->state==2) - $this->pages[$this->page] .= $s."\n"; - elseif($this->state==1) - $this->_put($s); - elseif($this->state==0) - $this->Error('No page has been added yet'); - elseif($this->state==3) - $this->Error('The document is closed'); -} - -protected function _put($s) -{ - $this->buffer .= $s."\n"; -} - -protected function _getoffset() -{ - return strlen($this->buffer); -} - -protected function _newobj($n=null) -{ - // Begin a new object - if($n===null) - $n = ++$this->n; - $this->offsets[$n] = $this->_getoffset(); - $this->_put($n.' 0 obj'); -} - -protected function _putstream($data) -{ - $this->_put('stream'); - $this->_put($data); - $this->_put('endstream'); -} - -protected function _putstreamobject($data) -{ - if($this->compress) - { - $entries = '/Filter /FlateDecode '; - $data = gzcompress($data); - } - else - $entries = ''; - $entries .= '/Length '.strlen($data); - $this->_newobj(); - $this->_put('<<'.$entries.'>>'); - $this->_putstream($data); - $this->_put('endobj'); -} - -protected function _putpage($n) -{ - $this->_newobj(); - $this->_put('<_put('/Parent 1 0 R'); - if(isset($this->PageInfo[$n]['size'])) - $this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageInfo[$n]['size'][0],$this->PageInfo[$n]['size'][1])); - if(isset($this->PageInfo[$n]['rotation'])) - $this->_put('/Rotate '.$this->PageInfo[$n]['rotation']); - $this->_put('/Resources 2 0 R'); - if(isset($this->PageLinks[$n])) - { - // Links - $annots = '/Annots ['; - foreach($this->PageLinks[$n] as $pl) - { - $rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]); - $annots .= '<_textstring($pl[4]).'>>>>'; - else - { - $l = $this->links[$pl[4]]; - if(isset($this->PageInfo[$l[0]]['size'])) - $h = $this->PageInfo[$l[0]]['size'][1]; - else - $h = ($this->DefOrientation=='P') ? $this->DefPageSize[1]*$this->k : $this->DefPageSize[0]*$this->k; - $annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',$this->PageInfo[$l[0]]['n'],$h-$l[1]*$this->k); - } - } - $this->_put($annots.']'); - } - if($this->WithAlpha) - $this->_put('/Group <>'); - $this->_put('/Contents '.($this->n+1).' 0 R>>'); - $this->_put('endobj'); - // Page content - if(!empty($this->AliasNbPages)) - $this->pages[$n] = str_replace($this->AliasNbPages,$this->page,$this->pages[$n]); - $this->_putstreamobject($this->pages[$n]); -} - -protected function _putpages() -{ - $nb = $this->page; - for($n=1;$n<=$nb;$n++) - $this->PageInfo[$n]['n'] = $this->n+1+2*($n-1); - for($n=1;$n<=$nb;$n++) - $this->_putpage($n); - // Pages root - $this->_newobj(1); - $this->_put('<PageInfo[$n]['n'].' 0 R '; - $this->_put($kids.']'); - $this->_put('/Count '.$nb); - if($this->DefOrientation=='P') - { - $w = $this->DefPageSize[0]; - $h = $this->DefPageSize[1]; - } - else - { - $w = $this->DefPageSize[1]; - $h = $this->DefPageSize[0]; - } - $this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$w*$this->k,$h*$this->k)); - $this->_put('>>'); - $this->_put('endobj'); -} - -protected function _putfonts() -{ - foreach($this->FontFiles as $file=>$info) - { - // Font file embedding - $this->_newobj(); - $this->FontFiles[$file]['n'] = $this->n; - $font = file_get_contents($this->fontpath.$file,true); - if(!$font) - $this->Error('Font file not found: '.$file); - $compressed = (substr($file,-2)=='.z'); - if(!$compressed && isset($info['length2'])) - $font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']); - $this->_put('<_put('/Filter /FlateDecode'); - $this->_put('/Length1 '.$info['length1']); - if(isset($info['length2'])) - $this->_put('/Length2 '.$info['length2'].' /Length3 0'); - $this->_put('>>'); - $this->_putstream($font); - $this->_put('endobj'); - } - foreach($this->fonts as $k=>$font) - { - // Encoding - if(isset($font['diff'])) - { - if(!isset($this->encodings[$font['enc']])) - { - $this->_newobj(); - $this->_put('<>'); - $this->_put('endobj'); - $this->encodings[$font['enc']] = $this->n; - } - } - // ToUnicode CMap - if(isset($font['uv'])) - { - if(isset($font['enc'])) - $cmapkey = $font['enc']; - else - $cmapkey = $font['name']; - if(!isset($this->cmaps[$cmapkey])) - { - $cmap = $this->_tounicodecmap($font['uv']); - $this->_putstreamobject($cmap); - $this->cmaps[$cmapkey] = $this->n; - } - } - // Font object - $this->fonts[$k]['n'] = $this->n+1; - $type = $font['type']; - $name = $font['name']; - if($font['subsetted']) - $name = 'AAAAAA+'.$name; - if($type=='Core') - { - // Core font - $this->_newobj(); - $this->_put('<_put('/BaseFont /'.$name); - $this->_put('/Subtype /Type1'); - if($name!='Symbol' && $name!='ZapfDingbats') - $this->_put('/Encoding /WinAnsiEncoding'); - if(isset($font['uv'])) - $this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R'); - $this->_put('>>'); - $this->_put('endobj'); - } - elseif($type=='Type1' || $type=='TrueType') - { - // Additional Type1 or TrueType/OpenType font - $this->_newobj(); - $this->_put('<_put('/BaseFont /'.$name); - $this->_put('/Subtype /'.$type); - $this->_put('/FirstChar 32 /LastChar 255'); - $this->_put('/Widths '.($this->n+1).' 0 R'); - $this->_put('/FontDescriptor '.($this->n+2).' 0 R'); - if(isset($font['diff'])) - $this->_put('/Encoding '.$this->encodings[$font['enc']].' 0 R'); - else - $this->_put('/Encoding /WinAnsiEncoding'); - if(isset($font['uv'])) - $this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R'); - $this->_put('>>'); - $this->_put('endobj'); - // Widths - $this->_newobj(); - $cw = &$font['cw']; - $s = '['; - for($i=32;$i<=255;$i++) - $s .= $cw[chr($i)].' '; - $this->_put($s.']'); - $this->_put('endobj'); - // Descriptor - $this->_newobj(); - $s = '<$v) - $s .= ' /'.$k.' '.$v; - if(!empty($font['file'])) - $s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R'; - $this->_put($s.'>>'); - $this->_put('endobj'); - } - else - { - // Allow for additional types - $mtd = '_put'.strtolower($type); - if(!method_exists($this,$mtd)) - $this->Error('Unsupported font type: '.$type); - $this->$mtd($font); - } - } -} - -protected function _tounicodecmap($uv) -{ - $ranges = ''; - $nbr = 0; - $chars = ''; - $nbc = 0; - foreach($uv as $c=>$v) - { - if(is_array($v)) - { - $ranges .= sprintf("<%02X> <%02X> <%04X>\n",$c,$c+$v[1]-1,$v[0]); - $nbr++; - } - else - { - $chars .= sprintf("<%02X> <%04X>\n",$c,$v); - $nbc++; - } - } - $s = "/CIDInit /ProcSet findresource begin\n"; - $s .= "12 dict begin\n"; - $s .= "begincmap\n"; - $s .= "/CIDSystemInfo\n"; - $s .= "<0) - { - $s .= "$nbr beginbfrange\n"; - $s .= $ranges; - $s .= "endbfrange\n"; - } - if($nbc>0) - { - $s .= "$nbc beginbfchar\n"; - $s .= $chars; - $s .= "endbfchar\n"; - } - $s .= "endcmap\n"; - $s .= "CMapName currentdict /CMap defineresource pop\n"; - $s .= "end\n"; - $s .= "end"; - return $s; -} - -protected function _putimages() -{ - foreach(array_keys($this->images) as $file) - { - $this->_putimage($this->images[$file]); - unset($this->images[$file]['data']); - unset($this->images[$file]['smask']); - } -} - -protected function _putimage(&$info) -{ - $this->_newobj(); - $info['n'] = $this->n; - $this->_put('<_put('/Subtype /Image'); - $this->_put('/Width '.$info['w']); - $this->_put('/Height '.$info['h']); - if($info['cs']=='Indexed') - $this->_put('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]'); - else - { - $this->_put('/ColorSpace /'.$info['cs']); - if($info['cs']=='DeviceCMYK') - $this->_put('/Decode [1 0 1 0 1 0 1 0]'); - } - $this->_put('/BitsPerComponent '.$info['bpc']); - if(isset($info['f'])) - $this->_put('/Filter /'.$info['f']); - if(isset($info['dp'])) - $this->_put('/DecodeParms <<'.$info['dp'].'>>'); - if(isset($info['trns']) && is_array($info['trns'])) - { - $trns = ''; - for($i=0;$i_put('/Mask ['.$trns.']'); - } - if(isset($info['smask'])) - $this->_put('/SMask '.($this->n+1).' 0 R'); - $this->_put('/Length '.strlen($info['data']).'>>'); - $this->_putstream($info['data']); - $this->_put('endobj'); - // Soft mask - if(isset($info['smask'])) - { - $dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w']; - $smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']); - $this->_putimage($smask); - } - // Palette - if($info['cs']=='Indexed') - $this->_putstreamobject($info['pal']); -} - -protected function _putxobjectdict() -{ - foreach($this->images as $image) - $this->_put('/I'.$image['i'].' '.$image['n'].' 0 R'); -} - -protected function _putresourcedict() -{ - $this->_put('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); - $this->_put('/Font <<'); - foreach($this->fonts as $font) - $this->_put('/F'.$font['i'].' '.$font['n'].' 0 R'); - $this->_put('>>'); - $this->_put('/XObject <<'); - $this->_putxobjectdict(); - $this->_put('>>'); -} - -protected function _putresources() -{ - $this->_putfonts(); - $this->_putimages(); - // Resource dictionary - $this->_newobj(2); - $this->_put('<<'); - $this->_putresourcedict(); - $this->_put('>>'); - $this->_put('endobj'); -} - -protected function _putinfo() -{ - $this->metadata['Producer'] = 'FPDF '.FPDF_VERSION; - $this->metadata['CreationDate'] = 'D:'.@date('YmdHis'); - foreach($this->metadata as $key=>$value) - $this->_put('/'.$key.' '.$this->_textstring($value)); -} - -protected function _putcatalog() -{ - $n = $this->PageInfo[1]['n']; - $this->_put('/Type /Catalog'); - $this->_put('/Pages 1 0 R'); - if($this->ZoomMode=='fullpage') - $this->_put('/OpenAction ['.$n.' 0 R /Fit]'); - elseif($this->ZoomMode=='fullwidth') - $this->_put('/OpenAction ['.$n.' 0 R /FitH null]'); - elseif($this->ZoomMode=='real') - $this->_put('/OpenAction ['.$n.' 0 R /XYZ null null 1]'); - elseif(!is_string($this->ZoomMode)) - $this->_put('/OpenAction ['.$n.' 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']'); - if($this->LayoutMode=='single') - $this->_put('/PageLayout /SinglePage'); - elseif($this->LayoutMode=='continuous') - $this->_put('/PageLayout /OneColumn'); - elseif($this->LayoutMode=='two') - $this->_put('/PageLayout /TwoColumnLeft'); -} - -protected function _putheader() -{ - $this->_put('%PDF-'.$this->PDFVersion); -} - -protected function _puttrailer() -{ - $this->_put('/Size '.($this->n+1)); - $this->_put('/Root '.$this->n.' 0 R'); - $this->_put('/Info '.($this->n-1).' 0 R'); -} - -protected function _enddoc() -{ - $this->_putheader(); - $this->_putpages(); - $this->_putresources(); - // Info - $this->_newobj(); - $this->_put('<<'); - $this->_putinfo(); - $this->_put('>>'); - $this->_put('endobj'); - // Catalog - $this->_newobj(); - $this->_put('<<'); - $this->_putcatalog(); - $this->_put('>>'); - $this->_put('endobj'); - // Cross-ref - $offset = $this->_getoffset(); - $this->_put('xref'); - $this->_put('0 '.($this->n+1)); - $this->_put('0000000000 65535 f '); - for($i=1;$i<=$this->n;$i++) - $this->_put(sprintf('%010d 00000 n ',$this->offsets[$i])); - // Trailer - $this->_put('trailer'); - $this->_put('<<'); - $this->_puttrailer(); - $this->_put('>>'); - $this->_put('startxref'); - $this->_put($offset); - $this->_put('%%EOF'); - $this->state = 3; -} -} -?> diff --git a/plugin/test2pdf/config.php b/plugin/test2pdf/config.php index e18a141c0b..b2ccffa9bd 100644 --- a/plugin/test2pdf/config.php +++ b/plugin/test2pdf/config.php @@ -1,8 +1,10 @@ + */ require_once __DIR__.'/../../main/inc/global.inc.php'; -require_once api_get_path(LIBRARY_PATH).'plugin.class.php'; +require_once 'src/test2pdf.lib.php'; require_once api_get_path(SYS_PLUGIN_PATH).'test2pdf/src/test2pdf_plugin.class.php'; diff --git a/plugin/test2pdf/database.php b/plugin/test2pdf/database.php deleted file mode 100644 index b79e04682b..0000000000 --- a/plugin/test2pdf/database.php +++ /dev/null @@ -1,27 +0,0 @@ -Plugins). - * + * These settings will be used in the administration interface for plugins (Chamilo configuration settings->Plugins) * @package chamilo.plugin.test2pdf */ /** - * Plugin details (must be present). + * Plugin details (must be present) */ -require_once dirname(__FILE__).'/config.php'; +require_once __DIR__.'/config.php'; $plugin_info = Test2pdfPlugin::create()->get_info(); diff --git a/plugin/test2pdf/resources/css/style.css b/plugin/test2pdf/resources/css/style.css index 98e1ea1afa..f54686aee8 100644 --- a/plugin/test2pdf/resources/css/style.css +++ b/plugin/test2pdf/resources/css/style.css @@ -1,6 +1,3 @@ -.ta-center{ - text-align:center; -} #courses_table td.valign-middle{ vertical-align: middle; } \ No newline at end of file diff --git a/plugin/test2pdf/resources/img/128/accept.png b/plugin/test2pdf/resources/img/128/accept.png deleted file mode 100644 index 6a287f392970f24872ffb4cc8a7ffb1c5b40a188..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7061 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 diff --git a/plugin/test2pdf/resources/img/24/download.png b/plugin/test2pdf/resources/img/24/download.png deleted file mode 100644 index b4678205dd082348ad861fca5759d6ab16d72bbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmV-`0e}99P)$XyBd5BfUWY4$kETMRi+@Wa}^#B~_nG2~4{x^=AzeyHG% zD9T%;5;-m=3(cY-T~1s-)K^}ZKP5I2eF)O$_0Z!c`LxRPj|tewbR|{tqOXFLmrqHX eZ1iISujP)>8s;Sa4#&odtd9n4x*_#$zDL$;Uvn=2L;1O1~!YISa1A0TS%YP$Yi!eErj`1891@FQtXO=}e><#1RmG z(Pb)h?r@C5uSf8nOEVO~AXJNB*#J46%|%K=(fyO6@!IjCP+f-AsY;U zVz5%ExKNG7XnK@Dyg3n0wEbQP!&XgCTs-xs2z$4L=#R+vFHky7;mg}yOq?;!hLBs` zmb$er%PeDWe=C9bS+q=?;h2n8+?G3Vm}~LJ&S<^;=YJwFJQe5)_wV>h4;}walS|}} zeC^LmaF*F>O$PIRPw~>Ko_GuXcr!Ok043HrWQ))qI?$TY)AvOqk;|`s$xqvv)Qtt) zQ;d9dXBnk&F(3V5*~mK>R=5NiDd*cP(`F<@et{ijc?`%WNO5_683j z85`c-LwFpEXLW>*K0E(`qD@UZqlo)9JNV=(SFO`p-4aQ5DhaKZv1BooU^cl^ef{3* z(~Uh|vE}$=ti=Uyl-g#k_J#k=s1Snr?#D^$5t@5`O}+{CxpYTcUQMUd>lCwHEgq*% z{#+n>0V%~OWE)sK;XBkhR{@}iLQeT#BUd1H35#j`!%^M$P4QC8^i>Y?v^RU>SGZjU zVWeTw_nGNf&H#{7(%AVeT6*`8%W0WGU;nk`iqxr3XOg$QdxKE8ck+*^DQ+O2z?8o} z*-Ugvy&{CEE~&+kl0lUeR%2CMc%vs6icu7>-1Ac^iWZSeO39I~7ikXsj(jOCft1vV zms{%mNiE_YJiLn4mAfb~+Ig#c2S>YJK_`=c)3IXu&zLrDVP3dSwS6<^ zdiF6Kqd^Ud=l@la1XS`YD&N4zC#)r3D0!XTSJu&&>SAT(FDbXqB3DLFv){Xs*4_h* zKu|pUcBKzN*^Q4#Axk~aGuwSX`7%;N(~}e!t>n`56nn3%=VIt@jEJO7JpESHNdfa2 z!beJ0&@lDeWD7Bzw4PwsrN_D4cZ`vea6~+HqH4Q9JjO7_TWffzavLtQhry&Wao&7q zEp2_LxET`p1F^ZO`auwT7}mgnd!X_KX1bP;t6z)ooAYb97CFn!lS{>u|E#fs@Bud7 zkAQ^}S98zQ4Hyk3V(B2iYF$HTq?KFH3vz;3x3>aYiMkzlj1ltKXJ?B%%#n`Q@x?B2 zi(W}awT)uIBW@OcvD5?N9iV^@Mhs-dnSDJzQD8Ih=x?hiv@2VHr}4B*h#4pwZd=x}<>i-5m_n8c`(ZNR5O*OR`3FI+?FgM3UZ4uyNaI|J8rbGeja zA25&6aZCugB6L0R-u@>p6Ax-bf6bIa1NC2)CiTDQa1;EM3_<>&t*^b-gU zZVoQNynBjvh=U2F(#DrGsSf$WZMpaRz2hDPz%-KQQF0fF2T1J4mgKJSxuyx=@!(tq zOm3dDfEm0HCq#h>_ct%oNso-HOQin+TGmU^n-qA$xFoO6rxqv>08-FGf0g!Kt zD78!=a0}PoQa11)g1j0M_kSNdKM2VinZm=MNPHLB_`V>omhP~wFOc{WgMU7--HK74qpC<+A@M*E zuN(E)ZY7W&An7Kw+%h2XZgiB!0sv5wydtExX8L_ZAb2rqA1u=Kv;v9Ka?3xK_N);2 ze*#FliIN++6zS&h66*R0f$7zl2~1f49ku;e0%&`CU*eCpHOa;zeEpF diff --git a/plugin/test2pdf/resources/img/32/info.png b/plugin/test2pdf/resources/img/32/info.png deleted file mode 100644 index 09501dd09ec2244111d9715c09e08a92d8199e4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 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'enable_plugin'); -if ($enable != "true") { +require_once '../config.php'; + +$plugin = Test2pdfPlugin::create(); +$enable = $plugin->get('enable_plugin') == 'true'; +if (!$enable) { header('Location: ../../../index.php'); + exit; } api_protect_course_script(); -$course_id = (int) $_GET['c_id']; -$id_quiz = (int) $_GET['id_quiz']; - -class TestToPDF extends FPDF -{ - public $B; - public $I; - public $U; - public $HREF; - public $fontList; - public $issetfont; - public $issetcolor; - - public function Header() - { - global $title_course; - global $title_quiz; - - $logo = '../resources/img/logo.png'; - $this->Image($logo, 10, 0); - - // Title - $this->SetFont('Courier', 'I', 14); - $this->Cell(0, 5, $title_course, 0, 1, 'R'); - $this->SetFont('Helvetica', 'I', 14); - $this->Cell(0, 5, $title_quiz, 0, 1, 'R'); - - // Line break - $this->SetLineWidth(0.5); - $this->SetDrawColor(60, 120, 255); - $this->Line(10, 24, 200, 24); - $this->SetLineWidth(0.4); - $this->SetDrawColor(200); - $this->Line(11, 24.5, 199, 24.5); - $this->Ln(10); - } +$courseId = intval($_GET['c_id']); +$sessionId = api_get_session_id(); +$quizId = intval($_GET['id_quiz']); - public function Footer() - { - global $test2pdfPlugin; - // Position at 1.5 cm from bottom - $this->SetY(-15); - $y = $this->GetY(); - // Line break - $this->SetLineWidth(0.5); - $this->SetDrawColor(60, 120, 255); - $this->Line(10, $y, 200, $y); - $this->SetLineWidth(0.4); - $this->SetDrawColor(200); - $this->Line(11, $y + 0.5, 199, $y + 0.5); - - // Arial italic 8 - $this->SetFont('Arial', 'I', 8); - // Text color in gray - $this->SetTextColor(128); - // Page number - $this->Cell(0, 10, utf8_decode(sprintf($test2pdfPlugin->get_lang('PageX'), $this->PageNo())), 0, 0, 'C'); - $this->Cell(0, 10, date('Y'), 0, 0, 'R'); - } - - public function PDF($orientation = 'P', $unit = 'mm', $format = 'A4') - { - //Call parent constructor - $this->__construct($orientation, $unit, $format); - //Initialization - $this->B = 0; - $this->I = 0; - $this->U = 0; - $this->HREF = ''; - $this->fontlist = ['arial', 'times', 'courier', 'helvetica', 'symbol']; - $this->issetfont = false; - $this->issetcolor = false; - } - - public function WriteHTML($html) - { - //HTML parser - $html = strip_tags($html, "