View source
<?php
require_once 'vde_pdf_wkhtmltopdf.theme.inc';
define('VIEWS_DATA_EXPORT_DEFAULT_WKHTMLTOPDF_BINARY_PATH', '/usr/local/bin/wkhtmltopdf');
function vde_pdf_wkhtmltopdf_form_views_data_export_pdf_settings_form_alter(array &$form) {
$form['views_data_export_pdf_wkhtmltopdf'] = array(
'#type' => 'textfield',
'#title' => t('wkhtmltopdf Location'),
'#description' => t('Set this to the system path where WkHtmlToPdf is located.'),
'#default_value' => vde_pdf_wkhtmltopdf_get_wkhtmltopdf_path(),
);
}
function vde_pdf_wkhtmltopdf_pdf_export_renderers() {
$renderers = [];
$renderers['wkhtmltopdf_in_proc'] = [
'title' => t('wkhtmltopdf (In-process, blocking)'),
'description' => t('Invokes <code>wkhtmltopdf</code> within the request and blocks further processing of that request until the PDF has been generated.'),
'class' => 'views_data_export_pdf_wkhtmltopdf_in_proc_renderer',
'file' => 'src/views_data_export_pdf_wkhtmltopdf_in_proc_renderer.inc',
];
if (module_exists('vde_pdf_background_process')) {
$renderers['wkhtmltopdf_background_process'] = [
'title' => t('wkhtmltopdf (Background process, async)'),
'description' => t('During batched exports, invokes <code>wkhtmltopdf</code> in an asynchronous background process to avoid load balancer timeouts on large data sets.'),
'class' => 'views_data_export_pdf_background_process_renderer',
'file' => 'src/views_data_export_pdf_background_process_renderer.inc',
'file path' => drupal_get_path('module', 'vde_pdf_background_process'),
'constructor arguments' => [
'vde_pdf_wkhtmltopdf',
'views_data_export_pdf_wkhtmltopdf_in_proc_renderer',
],
];
}
return $renderers;
}
function vde_pdf_wkhtmltopdf_get_module_path() {
return drupal_get_path('module', 'vde_pdf_wkhtmltopdf');
}
function vde_pdf_wkhtmltopdf_get_wkhtmltopdf_path() {
return variable_get('views_data_export_pdf_wkhtmltopdf', VIEWS_DATA_EXPORT_DEFAULT_WKHTMLTOPDF_BINARY_PATH);
}
function vde_pdf_wkhtmltopdf_get_header_footer_js_path() {
$module_path = vde_pdf_wkhtmltopdf_get_module_path();
$js_path = sprintf('%s/js/wkhtmltopdf_header_footer.js', $module_path);
return $js_path;
}