PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / 2.4.3
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin v2.4.3
trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 All 71 releases
pdf-print / mpdf / includes / functions.php

functions.php in PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin 2.4.3, at mpdf/includes/functions.php

170 lines 4.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3
4 // mPDF 6
5 // Function only available PHP >=5.5.0
6 if(!function_exists('imagepalettetotruecolor')) {
7 function imagepalettetotruecolor(&$src) {
8 if(imageistruecolor($src)) {
9 return(true);
10 }
11 $dst = imagecreatetruecolor(imagesx($src), imagesy($src));
12
13 imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
14 imagedestroy($src);
15
16 $src = $dst;
17
18 return(true);
19 }
20 }
21
22 // mPDF 5.7
23 // Replace a section of an array with the elements in reverse
24 function array_splice_reverse(&$arr, $offset, $length) {
25 $tmp = (array_reverse(array_slice($arr, $offset, $length)));
26 array_splice($arr, $offset, $length, $tmp);
27 }
28
29
30 function array_insert(&$array, $value, $offset) {
31 if (is_array($array)) {
32 $array = array_values($array);
33 $offset = intval($offset);
34 if ($offset < 0 || $offset >= count($array)) { array_push($array, $value); }
35 else if ($offset == 0) { array_unshift($array, $value); }
36 else {
37 $temp = array_slice($array, 0, $offset);
38 array_push($temp, $value);
39 $array = array_slice($array, $offset);
40 $array = array_merge($temp, $array);
41 }
42 }
43 else { $array = array($value); }
44 return count($array);
45 }
46
47 // mPDF 5.7.4 URLs
48 function urldecode_parts($url) {
49 $file=$url;
50 $query='';
51 if (preg_match('/[?]/',$url)) {
52 $bits = preg_split('/[?]/',$url,2);
53 $file=$bits[0];
54 $query='?'.$bits[1];
55 }
56 $file = rawurldecode($file);
57 $query = urldecode($query);
58 return $file.$query;
59 }
60
61
62 function _strspn($str1, $str2, $start=null, $length=null) {
63 $numargs = func_num_args();
64 if ($numargs == 2) {
65 return strspn($str1, $str2);
66 }
67 else if ($numargs == 3) {
68 return strspn($str1, $str2, $start);
69 }
70 else {
71 return strspn($str1, $str2, $start, $length);
72 }
73 }
74
75
76 function _strcspn($str1, $str2, $start=null, $length=null) {
77 $numargs = func_num_args();
78 if ($numargs == 2) {
79 return strcspn($str1, $str2);
80 }
81 else if ($numargs == 3) {
82 return strcspn($str1, $str2, $start);
83 }
84 else {
85 return strcspn($str1, $str2, $start, $length);
86 }
87 }
88
89 function _fgets (&$h, $force=false) {
90 $startpos = ftell($h);
91 $s = fgets($h, 1024);
92 if ($force && preg_match("/^([^\r\n]*[\r\n]{1,2})(.)/",trim($s), $ns)) {
93 $s = $ns[1];
94 fseek($h,$startpos+strlen($s));
95 }
96 return $s;
97 }
98
99
100 // For PHP4 compatability
101 if(!function_exists('str_ireplace')) {
102 function str_ireplace($search,$replace,$subject) {
103 $search = preg_quote($search, "/");
104 return preg_replace("/".$search."/i", $replace, $subject);
105 }
106 }
107 if(!function_exists('htmlspecialchars_decode')) {
108 function htmlspecialchars_decode ($str) {
109 return strtr($str, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
110 }
111 }
112
113 function PreparePreText($text,$ff='//FF//') {
114 $text = htmlspecialchars($text);
115 if ($ff) { $text = str_replace($ff,'</pre><formfeed /><pre>',$text); }
116 return ('<pre>'.$text.'</pre>');
117 }
118
119 if(!function_exists('strcode2utf')){
120 function strcode2utf($str,$lo=true) {
121 //converts all the &#nnn; and &#xhhh; in a string to Unicode
122 // mPDF 5.7
123 if ($lo) {
124 $str = preg_replace_callback('/\&\#([0-9]+)\;/m', 'code2utf_lo_callback', $str);
125 $str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', 'codeHex2utf_lo_callback', $str);
126 }
127 else {
128 $str = preg_replace_callback('/\&\#([0-9]+)\;/m', 'code2utf_callback', $str);
129 $str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', 'codeHex2utf_callback', $str);
130 }
131 return $str;
132 }
133 }
134 function code2utf_callback($matches) {
135 return code2utf($matches[1], 0);
136 }
137 function code2utf_lo_callback($matches) {
138 return code2utf($matches[1], 1);
139 }
140 function codeHex2utf_callback($matches) {
141 return codeHex2utf($matches[1], 0);
142 }
143 function codeHex2utf_lo_callback($matches) {
144 return codeHex2utf($matches[1], 1);
145 }
146
147
148 if(!function_exists('code2utf')){
149 function code2utf($num,$lo=true){
150 //Returns the utf string corresponding to the unicode value
151 if ($num<128) {
152 if ($lo) return chr($num);
153 else return '&#'.$num.';';
154 }
155 if ($num<2048) return chr(($num>>6)+192).chr(($num&63)+128);
156 if ($num<65536) return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
157 if ($num<2097152) return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128);
158 return '?';
159 }
160 }
161
162
163 if(!function_exists('codeHex2utf')){
164 function codeHex2utf($hex,$lo=true){
165 $num = hexdec($hex);
166 if (($num<128) && !$lo) return '&#x'.$hex.';';
167 return code2utf($num,$lo);
168 }
169 }
170