| "); //remove all unsupported tags
$html=str_replace("\n",'',$html); //replace carriage returns with spaces
$html=str_replace("\t",'',$html); //replace carriage returns with spaces
$a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE); //explode the string
foreach($a as $i=>$e)
{
if($i%2==0)
{
//Text
if($this->HREF)
$this->PutLink($this->HREF,$e);
elseif($this->tdbegin) {
if(trim($e)!='' && $e!=" ") {
$this->Cell($this->tdwidth,$this->tdheight,$e,$this->tableborder,'',$this->tdalign,$this->tdbgcolor);
}
elseif($e==" ") {
$this->Cell($this->tdwidth,$this->tdheight,'',$this->tableborder,'',$this->tdalign,$this->tdbgcolor);
}
}
else
$this->Write(5,stripslashes(txtentities($e)));
}
else
{
//Tag
if($e[0]=='/')
$this->CloseTag(strtoupper(substr($e,1)));
else
{
//Extract attributes
$a2=explode(' ',$e);
$tag=strtoupper(array_shift($a2));
$attr=array();
foreach($a2 as $v)
{
if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3))
$attr[strtoupper($a3[1])]=$a3[2];
}
$this->OpenTag($tag,$attr);
}
}
}
}
function OpenTag($tag, $attr) {
//Opening tag
switch($tag){
case 'SUP':
if( !empty($attr['SUP']) ) {
//Set current font to 6pt
$this->SetFont('','',6);
//Start 125cm plus width of cell to the right of left margin
//Superscript "1"
$this->Cell(2,2,$attr['SUP'],0,0,'L');
}
break;
case 'TABLE': // TABLE-BEGIN
if( !empty($attr['BORDER']) ) $this->tableborder=$attr['BORDER'];
else $this->tableborder=0;
break;
case 'TR': //TR-BEGIN
break;
case 'TD': // TD-BEGIN
if( !empty($attr['WIDTH']) ) $this->tdwidth=($attr['WIDTH']/4);
else $this->tdwidth=40; // Set to your own width if you need bigger fixed cells
if( !empty($attr['HEIGHT']) ) $this->tdheight=($attr['HEIGHT']/6);
else $this->tdheight=6; // Set to your own height if you need bigger fixed cells
if( !empty($attr['ALIGN']) ) {
$align=$attr['ALIGN'];
if($align=='LEFT') $this->tdalign='L';
if($align=='CENTER') $this->tdalign='C';
if($align=='RIGHT') $this->tdalign='R';
}
else $this->tdalign='L'; // Set to your own
if( !empty($attr['BGCOLOR']) ) {
$coul=hex2dec($attr['BGCOLOR']);
$this->SetFillColor($coul['R'],$coul['G'],$coul['B']);
$this->tdbgcolor=true;
}
$this->tdbegin=true;
break;
case 'HR':
if( !empty($attr['WIDTH']) )
$Width = $attr['WIDTH'];
else
$Width = $this->w - $this->lMargin-$this->rMargin;
$x = $this->GetX();
$y = $this->GetY();
$this->SetLineWidth(0.2);
$this->Line($x,$y,$x+$Width,$y);
$this->SetLineWidth(0.2);
$this->Ln(1);
break;
case 'STRONG':
$this->SetStyle('B',true);
break;
case 'EM':
$this->SetStyle('I',true);
break;
case 'B':
case 'I':
case 'U':
$this->SetStyle($tag,true);
break;
case 'A':
$this->HREF=$attr['HREF'];
break;
case 'IMG':
if(isset($attr['SRC']) && (isset($attr['WIDTH']) || isset($attr['HEIGHT']))) {
if(!isset($attr['WIDTH']))
$attr['WIDTH'] = 0;
if(!isset($attr['HEIGHT']))
$attr['HEIGHT'] = 0;
$this->Image($attr['SRC'], $this->GetX(), $this->GetY(), px2mm($attr['WIDTH']), px2mm($attr['HEIGHT']));
}
break;
case 'BLOCKQUOTE':
case 'BR':
$this->Ln(5);
break;
case 'P':
$this->Ln(10);
break;
case 'FONT':
if (isset($attr['COLOR']) && $attr['COLOR']!='') {
$coul=hex2dec($attr['COLOR']);
$this->SetTextColor($coul['R'],$coul['G'],$coul['B']);
$this->issetcolor=true;
}
if (isset($attr['FACE']) && in_array(strtolower($attr['FACE']), $this->fontlist)) {
$this->SetFont(strtolower($attr['FACE']));
$this->issetfont=true;
}
if (isset($attr['FACE']) && in_array(strtolower($attr['FACE']), $this->fontlist) && isset($attr['SIZE']) && $attr['SIZE']!='') {
$this->SetFont(strtolower($attr['FACE']),'',$attr['SIZE']);
$this->issetfont=true;
}
break;
}
}
function CloseTag($tag) {
//Closing tag
if($tag=='SUP') {
}
if($tag=='TD') { // TD-END
$this->tdbegin=false;
$this->tdwidth=0;
$this->tdheight=0;
$this->tdalign="L";
$this->tdbgcolor=false;
}
if($tag=='TR') { // TR-END
$this->Ln();
}
if($tag=='TABLE') { // TABLE-END
$this->tableborder=0;
}
if($tag=='STRONG')
$tag='B';
if($tag=='EM')
$tag='I';
if($tag=='B' || $tag=='I' || $tag=='U')
$this->SetStyle($tag,false);
if($tag=='A')
$this->HREF='';
if($tag=='FONT'){
if ($this->issetcolor==true) {
$this->SetTextColor(0);
}
if ($this->issetfont) {
$this->SetFont('arial');
$this->issetfont=false;
}
}
}
function SetStyle($tag, $enable) {
//Modify style and select corresponding font
$this->$tag+=($enable ? 1 : -1);
$style='';
foreach(array('B','I','U') as $s) {
if($this->$s>0)
$style.=$s;
}
$this->SetFont('',$style);
}
function PutLink($URL, $txt) {
//Put a hyperlink
$this->SetTextColor(0,0,255);
$this->SetStyle('U',true);
$this->Write(5,$txt,$URL);
$this->SetStyle('U',false);
$this->SetTextColor(0);
}
} //end of class
function addtotable($imgurl) {
global $thtml, $pdf, $mw, $mh;
$prefix="";
if (strpos(("~" . strtolower($imgurl)), "~http") === false) {
if (!file_exists($prefix . $imgurl)) {
if (isset($_GET['rp'])) {
if (file_exists(str_replace('+',' ',urldecode($_GET['rp'])) . $imgurl)) {
$prefix=str_replace('+',' ',urldecode($_GET['rp']));
} else if (file_exists("../" . str_replace('+',' ',urldecode($_GET['rp'])) . $imgurl)) {
$prefix="../" . str_replace('+',' ',urldecode($_GET['rp']));
}
} else if (isset($_POST['rp'])) {
if (file_exists(str_replace('+',' ',urldecode($_POST['rp'])) . $imgurl)) {
$prefix=str_replace('+',' ',urldecode($_POST['rp']));
} else if (file_exists("../" . str_replace('+',' ',urldecode($_POST['rp'])) . $imgurl)) {
$prefix="../" . str_replace('+',' ',urldecode($_POST['rp']));
}
} else if (file_exists("../" . $imgurl)) {
$prefix="../";
}
}
}
list($width, $height, $type, $attr) = getimagesize($prefix . $imgurl);
if (!$pdf) { if ($width >= $height) { $pdf=new PDF('L'); $mw=MAX_L_WIDTH; $mh=MAX_L_HEIGHT; } else { $pdf=new PDF('P'); $mw=MAX_P_WIDTH; $mh=MAX_P_HEIGHT; } }
if ($mw < $width && $mh >= $height) { $width=0; } else if ($mw >= $width && $mh < $height) { $height=0; } else if ($mw < $width && $mh < $height) { $width=-$mw; $height=-$mh; }
if ($thtml == "") {
$pdf->AddPage();
$pdf->SetFont('Arial','',12);
if ($width == 0) {
//echo "h";
//exit;
$thtml.='';
} else if ($height == 0) {
//echo "w";
//exit;
$thtml.='';
} else if ($height < 0 && $width < 0) {
//echo "hw";
//exit;
$thtml.='';
} else {
//echo "table " . $width . " vs " . $mw . " and " . $height . " vs " . $mh;
//exit;
$thtml.='';
}
$pdf->WriteHTML($thtml); // $thtml is some HTML table code collected earlier on
$thtml=' ';
} else {
$pdf->AddPage();
$pdf->SetFont('Arial','',12);
if ($width == 0) {
$thtml.='';
} else if ($height == 0) {
$thtml.='';
} else if ($height < 0 && $width < 0) {
$thtml.='';
} else {
$thtml='
';
}
$pdf->WriteHTML($thtml); // $thtml is some HTML table code collected earlier on
$thtml=' ';
}
}
$pdf=null;
$trow='cell 1 | cell 2 |
';
$thtml='';
$mw=MAX_P_WIDTH;
$mh=MAX_P_HEIGHT;
if (isset($_POST['formtable'])) {
$thtml=str_replace('+', ' ', urldecode($_POST['formtable']));
} else if (isset($_GET['formtable'])) {
$thtml=str_replace('+', ' ', urldecode($_GET['formtable']));
} else if (isset($_POST['slideshowlist'])) {
$thtml='';
$slideshowlist=explode(",", str_replace('+', ' ', urldecode($_POST['slideshowlist'])));
for ($ii=0; $iicell 1 | |
';
$otherbuttons=' ';
$ebutton=' ';
$thtml.='
cell 1 | |
';
$jscr="
var wo=null;
var url=document.URL.split('#')[0].split('?')[0];
function relative_to_absolute(inth) {
var huhs, posthuhs, ii, m, delimis=\" \";
var uubits=url.split(\"?\");
if (url == \"\") return inth;
if (uubits[0].indexOf(\"/\") != -1) {
var uuubits=uubits[0].split(\"/\");
if (uuubits[eval(uuubits.length - 1)] != \"\") {
if (uuubits[eval(uuubits.length - 1)].indexOf(\".\") != -1) {
uubits[0] = uubits[0].replace(\"/\" + uuubits[eval(uuubits.length - 1)], \"/\");
} else {
uubits[0] += \"/\";
}
}
}
var uudirname=uubits[0];
var outth = inth;
var ideas = new Array(\" action='\", ' action=\"', \" Action='\", ' Action=\"', \" ACTION='\", ' ACTION=\"', \" action=\", \" Action=\", \" ACTION=\", \" href='\", ' href=\"', \" Href='\", ' Href=\"', \" HREF='\", ' HREF=\"', \" href=\", \" Href=\", \" HREF=\", \" src='\", ' src=\"', \" Src='\", ' Src=\"', \" SRC='\", ' SRC=\"', \" src=\", \" Src=\", \" SRC=\");
if (uudirname != \"\" && url != \"\") {
for (m=0; m 1) {
for (ii=eval(huhs.length - 1); ii>=1; ii--) {
delimis=ideas[m].substring(eval(ideas[m].length - 1), eval(ideas[m].length));
if (delimis == \"=\") delimis=\" \";
posthuhs=huhs[ii].trim().replace(\">\",\" \").replace(/mailto:/g, \"http:\").replace(/javascript:none;/g, \"http:\").split(delimis);
if (posthuhs[0].length > 0) {
if (posthuhs[0].substring(0,1) == \"#\" || posthuhs[0].substring(0,4).toLowerCase().replace(/file/g, \"http\").toLowerCase() == \"http\") {
outth = outth;
} else if (posthuhs[0].substring(0,1) != \"/\" && posthuhs[0].substring(0,1) != \"'\" && posthuhs[0].substring(0,1) != '\"') {
while (outth.indexOf(posthuhs[0]) != -1) {
outth=outth.replace(posthuhs[0], \"youwill-never-ever-findthis\");
}
outth=outth.replace(/youwill-never-ever-findthis/g, uudirname + posthuhs[0]).replace(/\/\.\//g, '/');
} else if (posthuhs[0].substring(1,2) != \"/\" && posthuhs[0].substring(0,1) != \"'\" && posthuhs[0].substring(0,1) != '\"') {
while (outth.indexOf(posthuhs[0]) != -1) {
outth=outth.replace(posthuhs[0], \"youwill-never-ever-findthis\");
}
outth=outth.replace(/youwill-never-ever-findthis/g, uudirname.substring(0, eval(uudirname.length - 1)) + posthuhs[0]).replace(/\/\.\//g, '/');
}
}
}
}
}
}
return outth.replace(/\/\.\//g, '/');
}
function woit() {
if (wo) { wo.close(); wo=null; }
wo=window.open('','_blank','top=50,left=50,width=500,height=500');
document.getElementById('formtable').innerHTML=relative_to_absolute(document.getElementById('formtable').value.replace(/\/g,'>'));
document.getElementById('formtable').value=document.getElementById('formtable').innerHTML.replace(/\<\;/g,'<').replace(/\>\;/g,'>');
wo.document.write('');
}
function emailit() {
var tois=prompt('Email to?', '');
if (tois == null) { tois='';}
if (tois.indexOf('@') != -1) {
document.getElementById('formtable').innerHTML=relative_to_absolute(document.getElementById('formtable').value.replace(/\/g,'>'));
document.getElementById('formtable').value=document.getElementById('formtable').innerHTML.replace(/\<\;/g,'<').replace(/\>\;/g,'>');
document.getElementById('eto').value=tois;
document.getElementById('ebody').value=('');
document.getElementById('esubmit').click();
alert('Email sent to ' + tois);
//document.getElementById('bsubmit').click();
}
}
function pollit() {
document.getElementById('formtable').innerHTML=document.getElementById('tapoll').innerHTML;
document.getElementById('formtable').value=document.getElementById('tapoll').value;
setTimeout(emailit,500);
}
";
echo '' . $jscr . 'PDF Slideshow and Form Creation Helper
RJM Programming - October, 2019
Thanks to Fpdf
' . $ebutton . '';
exit;
}
foreach( $_GET as $name=>$val ) {
}
foreach( $_POST as $name=>$val ) {
}
if (!$pdf) {
$pdf=new PDF();
}
if ($pdf && trim($thtml) != "") {
$pdf->AddPage();
$pdf->SetFont('Arial','',12);
$pdf->WriteHTML($thtml); // $thtml is some HTML table code collected earlier on
}
if ($pdf) {
header('Content-type: application/pdf');
$pdf->Output();
}
exit;
?>