Subversion Repositories cheapmusic

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
?>