diff --git a/extension/Documentation/Manual.rst b/extension/Documentation/Manual.rst index e2fa84391b12ed65177fd52c1f61f451fa6d7310..a03abc647d6032a254bef9970d13d45d03730533 100644 --- a/extension/Documentation/Manual.rst +++ b/extension/Documentation/Manual.rst @@ -32,12 +32,14 @@ General Installation ============ -The following features are only tested on linux hosts: +The following features are only tested / supported on linux hosts: +* General: QFQ is coded to run on Linux hosts, preferable on Debian derivates like Ubuntu. * HTML to PDF conversion - command `wkhtmltopdf`. * Concatenation of PDF files - command `pdftk`. * Mime type detection for uploads - command `file`. + .. _`preparation`: Preparation @@ -108,6 +110,10 @@ Typosript) from specific IPs **or** if a FE-User is logged in. If there are problems with converting/downloading FE_GROUP protected pages, check `SHOW_DEBUG_INFO = download` to debug. +**Important**: Converting HTML to PDF gives no error message but RC=-1? Check carefully all includes of CSS, JS, images +and so on! Typically some of them fails to load and wkhtml stops running! + + HTML to PDF conversion '''''''''''''''''''''' @@ -133,6 +139,20 @@ Typoscript code to implement a print link on every page:: data = page:uid } +Send Email +^^^^^^^^^^ + +QFQ sends mail via `sendEmail` http://caspian.dotconf.net/menu/Software/SendEmail/ - a small perl script without a central +configuration. + +By default, `sendEmail` uses the local installed MTA, writes a logfile to `typo3conf/mail.log` and handles attachments +via commandline options. A basic HTML email support is implemented. + +The latest version is v1.56, which has at least one bug. That one is patched in the QFQ internal version v1.56p1 (see +QFQ GIT sources in directory 'patches/sendEmail.patch'). + +The Typo3 sendmail eco-system is not used at all. + Setup ----- @@ -382,7 +402,7 @@ Example: *typo3conf/config.qfq.ini* DB_1_NAME = qfq_db DB_INIT = set names utf8 ; DB_INDEX_DATA = 1 - ; DB_INDEX_QFQ = 1 + ; DB_INDEX_QFQ = 1 ; SQL_LOG = sql.log ; SQL_LOG_MODE = modify ; SHOW_DEBUG_INFO = auto @@ -450,8 +470,8 @@ Example: *typo3conf/config.qfq.ini* ;DOCUMENTATION_QFQ = https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html ;FILL_STORE_SYSTEM_BY_SQL_1 = 'SELECT s.id AS periodId FROM Period AS s WHERE s.start<=NOW() ORDER BY s.start DESC LIMIT 1' - ; Important: only define an error message, if QFQ should stop running in case of an error or not exact 1 record. - ;FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_1 = No current period found + ; Important: only define an error message, if QFQ should stop running in case of an error or not exact 1 record. + ;FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_1 = No current period found ;FORM_LANGUAGE_A_ID = 1 ;FORM_LANGUAGE_A_LABEL = english @@ -5018,7 +5038,7 @@ Example `_pdf`, `_zip`: :: .. -Use the `--print-media-type` as wkthml option to access the page with media type 'printer'. Depending on the website +Use the `--print-media-type` as wkhtml option to access the page with media type 'printer'. Depending on the website configuration this switches off navigation and background images. Rendering 'official' look-alike PDF letters diff --git a/extension/qfq/qfq/Constants.php b/extension/qfq/qfq/Constants.php index f7eb2d1f1e01305bcdadd966973f922c667aa872..a0b648f8a78aa0632e7310813260dcfdd029f4c6 100644 --- a/extension/qfq/qfq/Constants.php +++ b/extension/qfq/qfq/Constants.php @@ -276,6 +276,9 @@ const ERROR_MISSING_SESSIONNAME = 2400; const ERROR_QFQ_SESSION_MISSING = 2401; const ERROR_SESSION_BROKEN_SCRIPT_PATH = 2402; +const ERROR_HTML2PDF_MISSING_CONFIG = 2500; +const ERROR_HTML2PDF_WKHTML_NOT_EXECUTABLE = 2501; +const ERROR_HTML2PDF_WKHTML_FAILED = 2502; // // Store Names: Identifier // diff --git a/extension/qfq/qfq/report/Html2Pdf.php b/extension/qfq/qfq/report/Html2Pdf.php index b9f12488245dbe50a8d1b70c12e7cd7d02ef34dc..df5fafc40bddb6e79fd1f79864713d945e12f5c7 100644 --- a/extension/qfq/qfq/report/Html2Pdf.php +++ b/extension/qfq/qfq/report/Html2Pdf.php @@ -67,15 +67,15 @@ class Html2Pdf { $this->config = $config; if (!isset($config[SYSTEM_BASE_URL_PRINT]) || $config[SYSTEM_BASE_URL_PRINT] == '') { - throw new \exception(CONFIG_INI . ' - Missing ' . SYSTEM_BASE_URL_PRINT); + throw new \exception(CONFIG_INI . ' - Missing ' . SYSTEM_BASE_URL_PRINT, ERROR_HTML2PDF_MISSING_CONFIG); } if (!isset($config[SYSTEM_WKHTMLTOPDF]) || $config[SYSTEM_WKHTMLTOPDF] == '') { - throw new \exception(CONFIG_INI . ' - Missing ' . SYSTEM_WKHTMLTOPDF); + throw new \exception(CONFIG_INI . ' - Missing ' . SYSTEM_WKHTMLTOPDF, ERROR_HTML2PDF_MISSING_CONFIG); } if (!is_executable($config[SYSTEM_WKHTMLTOPDF])) { - throw new \exception(CONFIG_INI . ' - ' . SYSTEM_WKHTMLTOPDF . '=' . $config[SYSTEM_WKHTMLTOPDF] . ' - not found or not executable.'); + throw new \exception(CONFIG_INI . ' - ' . SYSTEM_WKHTMLTOPDF . '=' . $config[SYSTEM_WKHTMLTOPDF] . ' - not found or not executable.', ERROR_HTML2PDF_WKHTML_NOT_EXECUTABLE); } $this->session = Session::getInstance($phpUnit); @@ -226,7 +226,8 @@ class Html2Pdf { $line = system($cmd, $rc); if ($rc != 0) { - throw new \exception("Error [RC=$rc] $line: $cmd"); + throw new \exception("Error [RC=$rc] $line: $cmd - in case of trouble: check carefully that *all* CSS, JS, " . + "images are accessible. 'wkhtml' does not report problems but fails.", ERROR_HTML2PDF_WKHTML_FAILED); } return $filename;