Commit f28ac29c authored by totten's avatar totten

CRM-16005 - Use and configure the dompdf provided by composer.

parent 4c12c9b7
......@@ -191,9 +191,9 @@ class CRM_Utils_PDF_Utils {
*/
public static function _html2pdf_dompdf($paper_size, $orientation, $html, $output, $fileName) {
// CRM-12165 - Remote file support required for image handling.
define("DOMPDF_ENABLE_REMOTE", true);
define('DOMPDF_ENABLE_AUTOLOAD', false);
require_once 'packages/vendor/dompdf/dompdf/dompdf_config.inc.php';
define('DOMPDF_ENABLE_REMOTE', TRUE);
define('DOMPDF_ENABLE_AUTOLOAD', FALSE);
require_once 'vendor/dompdf/dompdf/dompdf_config.inc.php';
$dompdf = new DOMPDF();
$dompdf->set_paper($paper_size, $orientation);
......
......@@ -6,10 +6,19 @@
}
},
"require": {
"dompdf/dompdf" : "0.6.*",
"symfony/dependency-injection": "2.3.*",
"symfony/event-dispatcher": "2.3.*",
"psr/log": "1.0.0",
"symfony/finder": "2.3.*",
"totten/ca-config": "~13.02"
},
"scripts": {
"post-install-cmd": [
"bash tools/scripts/composer/dompdf-cleanup.sh"
],
"post-update-cmd": [
"bash tools/scripts/composer/dompdf-cleanup.sh"
]
}
}
#!/bin/bash
## Cleanup the vendor tree. The main issue here is that civi Civi is
## deployed as a module inside a CMS, so all its source-code gets published.
## Some libraries distribute admin tools and sample files which should not
## be published.
##
## This script should be idempotent -- if you rerun it several times, it
## should always produce the same post-condition.
##############################################################################
## usage: safe_delete <relpath...>
function safe_delete() {
for file in "$@" ; do
if [ -z "$file" ]; then
echo "Skip: empty file name"
elif [ -e "$file" ]; then
rm -rf "$file"
fi
done
}
##############################################################################
## usage: make_font_cache > font-cache.php
function make_font_cache() {
cat <<EOFONT
<?php return array (
'sans-serif' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Helvetica',
'bold' => DOMPDF_DIR . '/lib/fonts/Helvetica-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-BoldOblique',
),
'times' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Times-Roman',
'bold' => DOMPDF_DIR . '/lib/fonts/Times-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Times-Italic',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Times-BoldItalic',
),
'times-roman' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Times-Roman',
'bold' => DOMPDF_DIR . '/lib/fonts/Times-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Times-Italic',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Times-BoldItalic',
),
'courier' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Courier',
'bold' => DOMPDF_DIR . '/lib/fonts/Courier-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Courier-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Courier-BoldOblique',
),
'helvetica' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Helvetica',
'bold' => DOMPDF_DIR . '/lib/fonts/Helvetica-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-BoldOblique',
),
'zapfdingbats' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
'bold' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
'italic' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
),
'symbol' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Symbol',
'bold' => DOMPDF_DIR . '/lib/fonts/Symbol',
'italic' => DOMPDF_DIR . '/lib/fonts/Symbol',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Symbol',
),
'serif' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Times-Roman',
'bold' => DOMPDF_DIR . '/lib/fonts/Times-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Times-Italic',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Times-BoldItalic',
),
'monospace' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Courier',
'bold' => DOMPDF_DIR . '/lib/fonts/Courier-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Courier-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Courier-BoldOblique',
),
'fixed' =>
array (
'normal' => DOMPDF_DIR . '/lib/fonts/Courier',
'bold' => DOMPDF_DIR . '/lib/fonts/Courier-Bold',
'italic' => DOMPDF_DIR . '/lib/fonts/Courier-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Courier-BoldOblique',
),
) ?>
EOFONT
}
function make_font_readme() {
cat <<EOREADME
To save space in the final distribution we have not included the DejaVu family of fonts. You can get these fonts from:
http://code.google.com/p/dompdf/
Download the latest version and copy the font files from the lib/fonts directories to this directory.
EOREADME
}
##############################################################################
## Remove example/CLI scripts. They're not needed and increase the attack-surface.
safe_delete vendor/dompdf/dompdf/dompdf.php
safe_delete vendor/dompdf/dompdf/www
safe_delete vendor/phenx/php-font-lib/www
# Remove DejaVu fonts. They add 12mb.
safe_delete vendor/dompdf/dompdf/lib/fonts/DejaVu*
make_font_cache > vendor/dompdf/dompdf/lib/fonts/dompdf_font_family_cache.dist.php
make_font_readme > vendor/dompdf/dompdf/lib/fonts/README.DejaVuFonts.txt
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment