103 |
- |
1 |
<?php
|
|
|
2 |
|
|
|
3 |
$excl = array( 'HTML-CSS', 'DIRECTW', 'TABLES', 'LISTS', 'IMAGES-CORE',
|
|
|
4 |
'IMAGES-BMP', 'IMAGES-WMF', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'COLUMNS', 'TOC', 'INDEX', 'BOOKMARKS', 'BARCODES', 'FORMS', 'WATERMARK', 'CJK-FONTS', 'RTL', 'INDIC', 'ANNOTATIONS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS', 'HYPHENATION', 'ENCRYPTION', 'IMPORTS', 'PROGRESS-BAR');
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
// *DIRECTW* = Write, WriteText, WriteCell, Text, Shaded_box, AutosizeText
|
|
|
8 |
// IMAGES-CORE = [PNG, GIF, and JPG] NB background-images and watermark images
|
|
|
9 |
|
|
|
10 |
// Excluding 'HTML-CSS' will also exclude: 'TABLES', 'LISTS', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'FORMS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS'
|
|
|
11 |
|
|
|
12 |
// Text is marked in mpdf_source.php with e.g. :
|
|
|
13 |
/*-- TABLES-ADVANCED-BORDERS --*/
|
|
|
14 |
/*-- END TABLES-ADVANCED-BORDERS --*/
|
|
|
15 |
// *TABLES-ADVANCED-BORDERS*
|
|
|
16 |
|
|
|
17 |
|
|
|
18 |
if (!isset($_POST['generate']) || $_POST['generate']!='generate') {
|
|
|
19 |
|
|
|
20 |
|
|
|
21 |
if (!file_exists('mpdf_source.php')) {
|
|
|
22 |
die("ERROR - Could not find mpdf_source.php file in current directory. Please rename mpdf.php as mpdf_source.php");
|
|
|
23 |
}
|
|
|
24 |
|
|
|
25 |
|
|
|
26 |
|
|
|
27 |
|
|
|
28 |
echo '<html>
|
|
|
29 |
<head>
|
|
|
30 |
<script language=javascript>
|
|
|
31 |
checked=false;
|
|
|
32 |
function checkedAll (frm1) {
|
|
|
33 |
var aa= document.getElementById("frm1");
|
|
|
34 |
if (checked == false)
|
|
|
35 |
{
|
|
|
36 |
checked = true
|
|
|
37 |
}
|
|
|
38 |
else
|
|
|
39 |
{
|
|
|
40 |
checked = false
|
|
|
41 |
}
|
|
|
42 |
for (var i =0; i < aa.elements.length; i++)
|
|
|
43 |
{
|
|
|
44 |
aa.elements[i].checked = checked;
|
|
|
45 |
}
|
|
|
46 |
}
|
|
|
47 |
</script>
|
|
|
48 |
</head>
|
|
|
49 |
<body>
|
|
|
50 |
<p><span style="color:red; font-weight: bold;">WARNING</span>: This utility will OVERWRITE mpdf.php file in the current directory.</p>
|
|
|
51 |
<p>Select the functions you wish to INCLUDE in your mpdf.php program. When you click generate, a new mpdf.php file will be written to the current directory.</p>
|
|
|
52 |
<div><b>Notes</b>
|
|
|
53 |
<ul>
|
|
|
54 |
<li>HTML-CSS is required for many of the other functions to work including: Tables, Lists, Backgrounds, Forms, Border-radius and all other CSS</li>
|
|
|
55 |
<li>DIRECTW includes the functions to Write directly to the PDF file e.g. Write, WriteText, WriteCell, Text, Shaded_box, AutosizeText</li>
|
|
|
56 |
<li>You must include either HTML-CSS or DIRECTW</li>
|
|
|
57 |
<li>JPG, PNG and JPG images are supported with IMAGES-CORE</li>
|
|
|
58 |
<li>For WMF Images, you must include both IMAGES-CORE and IMAGES-WMF</li>
|
|
|
59 |
<li>IMAGES-CORE are required for BACKGROUNDS (IMAGES) or WATERMARKS to work</li>
|
|
|
60 |
</ul>
|
|
|
61 |
</div>
|
|
|
62 |
<input type="checkbox" name="checkall" onclick="checkedAll(frm1);"> <i>Select/Unselect All</i><br /><br />
|
|
|
63 |
|
|
|
64 |
<form id="frm1" action="compress.php" method="POST">
|
|
|
65 |
';
|
|
|
66 |
foreach($excl AS $k=>$ex) {
|
|
|
67 |
echo '<input type="checkbox" value="1" name="inc['.$ex.']"';
|
|
|
68 |
if ($k==0 || ($k > 1 && $k < 5)) {
|
|
|
69 |
echo ' checked="checked"';
|
|
|
70 |
}
|
|
|
71 |
echo ' /> '.$ex.'<br />';
|
|
|
72 |
}
|
|
|
73 |
|
|
|
74 |
echo '<br />
|
|
|
75 |
<input type="submit" name="generate" value="generate" />
|
|
|
76 |
</form>
|
|
|
77 |
</body>
|
|
|
78 |
</html>';
|
|
|
79 |
exit;
|
|
|
80 |
}
|
|
|
81 |
|
|
|
82 |
$inc = $_POST['inc'];
|
|
|
83 |
if (is_array($inc) && count($inc)>0 ) {
|
|
|
84 |
foreach($inc AS $i=>$v) {
|
|
|
85 |
$key = array_search($i, $excl);
|
|
|
86 |
unset($excl[$key]);
|
|
|
87 |
}
|
|
|
88 |
}
|
|
|
89 |
|
|
|
90 |
if (!defined('PHP_VERSION_ID')) {
|
|
|
91 |
$version = explode('.', PHP_VERSION);
|
|
|
92 |
define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
|
|
|
93 |
}
|
|
|
94 |
if (PHP_VERSION_ID < 50300) { $mqr = @get_magic_quotes_runtime(); }
|
|
|
95 |
else { $mqr=0; }
|
|
|
96 |
if ($mqr) { set_magic_quotes_runtime(0); }
|
|
|
97 |
|
|
|
98 |
$l = file('mpdf_source.php');
|
|
|
99 |
if (!count($l)) { die("ERROR - Could not find mpdf_source.php file in current directory"); }
|
|
|
100 |
$exclflags = array();
|
|
|
101 |
$x = '';
|
|
|
102 |
|
|
|
103 |
// Excluding 'HTML-CSS' will also exclude: 'TABLES', 'LISTS', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'FORMS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS'
|
|
|
104 |
if ($excl[0]=='HTML-CSS') {
|
|
|
105 |
$excl[] = 'TABLES';
|
|
|
106 |
$excl[] = 'LISTS';
|
|
|
107 |
$excl[] = 'TABLES-ADVANCED-BORDERS';
|
|
|
108 |
$excl[] = 'HTMLHEADERS-FOOTERS';
|
|
|
109 |
$excl[] = 'FORMS';
|
|
|
110 |
$excl[] = 'BACKGROUNDS';
|
|
|
111 |
$excl[] = 'CSS-FLOAT';
|
|
|
112 |
$excl[] = 'CSS-IMAGE-FLOAT';
|
|
|
113 |
$excl[] = 'CSS-POSITION';
|
|
|
114 |
$excl[] = 'CSS-PAGE';
|
|
|
115 |
$excl[] = 'BORDER-RADIUS';
|
|
|
116 |
}
|
|
|
117 |
$excl = array_unique($excl);
|
|
|
118 |
|
|
|
119 |
foreach($l AS $k=>$ln) {
|
|
|
120 |
$exclude = false;
|
|
|
121 |
// *XXXXX*
|
|
|
122 |
preg_match_all("/\/\/ \*([A-Za-z\-]+)\*/", $ln, $m);
|
|
|
123 |
foreach($m[1] AS $mm) {
|
|
|
124 |
if (in_array($mm, $excl)) {
|
|
|
125 |
$exclude = true;
|
|
|
126 |
}
|
|
|
127 |
}
|
|
|
128 |
/*-- XXXXX --*/
|
|
|
129 |
preg_match_all("/\/\*-- ([A-Za-z\-]+) --\*\//", $ln, $m);
|
|
|
130 |
foreach($m[1] AS $mm) {
|
|
|
131 |
if (in_array($mm, $excl)) {
|
|
|
132 |
$exclflags[$mm] = true;
|
|
|
133 |
}
|
|
|
134 |
$exclude = true;
|
|
|
135 |
}
|
|
|
136 |
$exclflags = array_unique($exclflags);
|
|
|
137 |
/*-- END XXXX --*/
|
|
|
138 |
preg_match_all("/\/\*-- END ([A-Za-z\-]+) --\*\//", $ln, $m);
|
|
|
139 |
foreach($m[1] AS $mm) {
|
|
|
140 |
if (in_array($mm, $excl)) {
|
|
|
141 |
unset($exclflags[$mm]);
|
|
|
142 |
}
|
|
|
143 |
$exclude = true;
|
|
|
144 |
}
|
|
|
145 |
if (count($exclflags)==0 && !$exclude) {
|
|
|
146 |
$x .= $ln;
|
|
|
147 |
}
|
|
|
148 |
}
|
|
|
149 |
// mPDF 5.0
|
|
|
150 |
if (function_exists('file_put_contents')) {
|
|
|
151 |
$check = file_put_contents('mpdf.php', $x);
|
|
|
152 |
}
|
|
|
153 |
else {
|
|
|
154 |
$f=fopen('mpdf.php', 'w');
|
|
|
155 |
$check = fwrite($f, $x);
|
|
|
156 |
fclose($f);
|
|
|
157 |
}
|
|
|
158 |
if (!$check) { die("ERROR - Could not write to mpdf.php file. Are permissions correctly set?"); }
|
|
|
159 |
echo '<p><b>mPDF file generated successfully!</b></p>';
|
|
|
160 |
echo '<div>mPDF file size '.number_format((strlen($x)/1024)).' kB</div>';
|
|
|
161 |
|
|
|
162 |
unset($l);
|
|
|
163 |
unset($x);
|
|
|
164 |
|
|
|
165 |
include('mpdf.php');
|
|
|
166 |
$mpdf = new mPDF();
|
|
|
167 |
|
|
|
168 |
echo '<div>Memory usage on loading mPDF class '.number_format((memory_get_usage(true)/(1024*1024)),2).' MB</div>';
|
|
|
169 |
|
|
|
170 |
exit;
|
|
|
171 |
|
|
|
172 |
?>
|