I have a problem with a PHP page that uses TCPDF.
Everything works fine, but after the Output command I need to ask the user if he wants to repeat the calculation or change the data to be processed.
To do this I add some HTML tags
echo "<p>Click to confirm or choose other data to repeat the calculation.</p>";
echo "<button onclick='myFunction()'>Confirm</button>";
echo "<p id='response'></p>";
myFunction is a javascript function:
function myFunction() {
let text = "Press the button!nYes to confirm or nCancel to perform another calculation.";
if (confirm(text) == true) {
text = "The calculation is no longer available!";
setTimeout(window.history.go(-2),30000);
} else {
text = "You Canceled! You will be redirected to the page for another calculation!";
setTimeout(window.history.go(-1),30000);
}
document.getElementById("response").innerHTML = text;
}
The HTML code and no message are displayed.
I wrote a test page without TCPDF and everything works fine.
Where am I going wrong? o What doesn’t TCPDF like?
Thanks for the help
Andrea
I hope to find out where I’m going wrong.
This is the test page.
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
let text = "Premi il bottone!n Sì per confermare o nAnnulla per eseguire un altro calcolo.";
if (confirm(text) == true) {
text = "La ricevuta non è più modificabile!";
setTimeout(window.history.go(-2),30000);
} else {
text = "Hai Anullato! Verrai indirizzato alla pagina per un altro calcolo!";
setTimeout(window.history.go(-1),30000);
}
document.getElementById("risposta").innerHTML = text;
}
</script>
</head>
<body>
<?php
$utf8text.= "Riga di testn";
$utf8text.="===================================n";
$utf8text.="PAGAMENTO EFFETTUATO IN CONTANTIn";
$utf8text.="****************************************n";
// echo '</ul>';
//echo $utf8text;
// include_once ("init_pagina_tcpdf.php");
//=====================================
// get external file content
$uid_time= 'Data pagamento: '.date('d/m/Y H:i:s');
$uid_time_file= '_'.date('dmY_Hi');
//echo $uid.$uid_time;
$utf8text.=$uid_time."n";
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', true);
// set document information
/*
$pdf->setCreator(PDF_CREATOR);
$pdf->setAuthor('');
$pdf->setTitle('');
$pdf->setSubject('');
*/
//$pdf->setKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.'', PDF_HEADER_STRING.'');
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
//$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
/*
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
*/
// ---------------------------------------------------------
// set default font subsetting mode
$pdf->setFontSubsetting(true);
// set font
$pdf->setFont('freeserif', '', 12);
// Call before the addPage() method
//$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
// add a page
$pdf->AddPage();
// set color for text Nero
//$pdf->setTextColor(0, 63, 127);
$pdf->setTextColor(0, 0, 0);
// write the text
$pdf->Write(5, $utf8text, '', 0, '', false, 0, false, false, 0);
$pdf->setFont('freeserif', 'I', 12);
$utf8text="Nota: Questa è una nota in corsivo!n";
$pdf->Write(5, $utf8text, '', 0, '', false, 0, false, false, 0);
$pdf->setFont('freeserif', 'B', 12);
$utf8text="Testo Grassetto!!n";
$pdf->Write(5, $utf8text, '', 0, '', false, 0, false, false, 0);
ob_end_clean();
//Close and output PDF document
$pdf->Output("TestCorsivo", 'D');
//============================================================+
// END OF FILE
//============================================================+
echo "<p>Premi il pulsante per confermare la stampa della ricevuta.</p>";
echo "<button onclick='myFunction()'>Conferma Stampa</button>";
echo "<p id='risposta'></p>";
?>
</body>
</html>
This is the include file tcpdf_include.php
<?php
//============================================================+
// File name : tcpdf_include.php
// Begin : 2008-05-14
// Last Update : 2014-12-10
//
// Description : Search and include the TCPDF library.
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com LTD
// www.tecnick.com
// [email protected]
//============================================================+
/**
* Search and include the TCPDF library.
* @package com.tecnick.tcpdf
* @abstract TCPDF - Include the main class.
* @author Nicola Asuni
* @since 2013-05-14
*/
// always load alternative config file for examples
require_once('config/tcpdf_config_alt.php');
// Include the main TCPDF library (search the library on the following directories).
$tcpdf_include_dirs = array(
realpath(dirname(__FILE__) . 'tcpdf/tcpdf.php'),// True source file
realpath('tcpdf/tcpdf.php'),// Relative from $PWD
'/usr/share/php/tcpdf/tcpdf.php',
'/usr/share/tcpdf/tcpdf.php',
'/usr/share/php-tcpdf/tcpdf.php',
'/var/www/tcpdf/tcpdf.php',
'/var/www/html/tcpdf/tcpdf.php',
'/usr/local/apache2/htdocs/tcpdf/tcpdf.php'
);
foreach ($tcpdf_include_dirs as $tcpdf_include_path) {
if (@file_exists($tcpdf_include_path)) {
require_once($tcpdf_include_path);
break;
}
}
//============================================================+
// END OF FILE
//============================================================+
This is the alternate config config/tcpdf_config_alt.php
<?php
//============================================================+
// File name : tcpdf_config.php
// Begin : 2004-06-11
// Last Update : 2013-05-16
//
// Description : Example of alternative configuration file for TCPDF.
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - [email protected]
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
// -------------------------------------------------------------------
// Copyright (C) 2004-2013 Nicola Asuni - Tecnick.com LTD
//
// This file is part of TCPDF software library.
//
// TCPDF is free software: you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// TCPDF is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
//
// See LICENSE.TXT file for more information.
//============================================================+
/**
* Example of alternative configuration file for TCPDF.
* @author Nicola Asuni
* @package com.tecnick.tcpdf
* @version 4.9.005
* @since 2004-10-27
*/
/**
* Define the following constant to ignore the default configuration file.
*/
define ('K_TCPDF_EXTERNAL_CONFIG', true);
/**
* Installation path (/var/www/tcpdf/).
* By default it is automatically calculated but you can also set it as a fixed string to improve performances.
*/
//define ('K_PATH_MAIN', '');
/**
* URL path to tcpdf installation folder (http://localhost/tcpdf/).
* By default it is automatically set but you can also set it as a fixed string to improve performances.
*/
//define ('K_PATH_URL', '');
/**
* Path for PDF fonts.
* By default it is automatically set but you can also set it as a fixed string to improve performances.
*/
//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
/**
* Default images directory.
* By default it is automatically set but you can also set it as a fixed string to improve performances.
*/
define ('K_PATH_IMAGES', dirname(__FILE__).'/../images/');
/**
* Deafult image logo used be the default Header() method.
* Please set here your own logo or an empty string to disable it.
*/
define ('PDF_HEADER_LOGO', 'logo-cs.jpg');
/**
* Header logo image width in user units.
*/
define ('PDF_HEADER_LOGO_WIDTH', 50);
/**
* Cache directory for temporary files (full path).
*/
define ('K_PATH_CACHE', sys_get_temp_dir().'/');
/**
* Generic name for a blank image.
*/
define ('K_BLANK_IMAGE', '_blank.png');
/**
* Page format.
*/
define ('PDF_PAGE_FORMAT', 'A4');
/**
* Page orientation (P=portrait, L=landscape).
*/
define ('PDF_PAGE_ORIENTATION', 'P');
/**
* Document creator.
*/
define ('PDF_CREATOR', 'TCPDF');
/**
* Document author.
*/
define ('PDF_AUTHOR', 'TCPDF');
/**
* Header title.
*/
//define ('PDF_HEADER_TITLE', 'TCPDF Example');
define ('PDF_HEADER_TITLE', '');
/**
* Header description string.
*/
//define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.comnwww.tcpdf.org");
define ('PDF_HEADER_STRING', "");
/**
* Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch].
*/
define ('PDF_UNIT', 'mm');
/**
* Header margin.
*/
define ('PDF_MARGIN_HEADER', 5);
/**
* Footer margin.
*/
//define ('PDF_MARGIN_FOOTER', 10);
define ('PDF_MARGIN_FOOTER', 0);
/**
* Top margin.
*/
//define ('PDF_MARGIN_TOP', 27);
define ('PDF_MARGIN_TOP', 30);
/**
* Bottom margin.
*/
//define ('PDF_MARGIN_BOTTOM', 25);
define ('PDF_MARGIN_BOTTOM', 0);
/**
* Left margin.
*/
define ('PDF_MARGIN_LEFT', 15);
/**
* Right margin.
*/
define ('PDF_MARGIN_RIGHT', 15);
/**
* Default main font name.
*/
define ('PDF_FONT_NAME_MAIN', 'helvetica');
/**
* Default main font size.
*/
//define ('PDF_FONT_SIZE_MAIN', 10);
define ('PDF_FONT_SIZE_MAIN', 8);
/**
* Default data font name.
*/
define ('PDF_FONT_NAME_DATA', 'helvetica');
/**
* Default data font size.
*/
//define ('PDF_FONT_SIZE_DATA', 8);
define ('PDF_FONT_SIZE_DATA', 6);
/**
* Default monospaced font name.
*/
define ('PDF_FONT_MONOSPACED', 'courier');
/**
* Ratio used to adjust the conversion of pixels to user units.
*/
define ('PDF_IMAGE_SCALE_RATIO', 1.25);
/**
* Magnification factor for titles.
*/
define('HEAD_MAGNIFICATION', 1.1);
/**
* Height of cell respect font height.
*/
define('K_CELL_HEIGHT_RATIO', 1.25);
/**
* Title magnification respect main font size.
*/
define('K_TITLE_MAGNIFICATION', 1.3);
/**
* Reduction factor for small font.
*/
define('K_SMALL_RATIO', 2/3);
/**
* Set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language.
*/
define('K_THAI_TOPCHARS', true);
/**
* If true allows to call TCPDF methods using HTML syntax
* IMPORTANT: For security reason, disable this feature if you are printing user HTML content.
*/
define('K_TCPDF_CALLS_IN_HTML', true);
/**
* List of TCPDF methods that are allowed to be called using HTML syntax.
* Note: each method name must end with surrounded with | (pipe) character.
* The constant K_TCPDF_CALLS_IN_HTML must be set to true.
* IMPORTANT: For security reason, disable this feature if you are allowing user HTML content.
*/
define('K_ALLOWED_TCPDF_TAGS', '|AddPage|Rect|SetDrawColor|write1DBarcode|');
/**
* If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution.
*/
define('K_TCPDF_THROW_EXCEPTION_ERROR', false);
//============================================================+
// END OF FILE
//============================================================+