function pdf_export_render in PDF Export 7
Handle the html as PDF.
1 string reference to 'pdf_export_render'
- pdf_export_menu in ./
pdf_export.module - Implements hook_menu().
File
- ./
pdf_export.module, line 89 - PDF Export module.
Code
function pdf_export_render() {
$scheme = _pdf_export_get_scheme_wrapper();
$pdf_path = $scheme
->getUri();
if (!file_prepare_directory($scheme
->realpath(), FILE_CREATE_DIRECTORY)) {
_pdf_export_error(t('Not able to create or access to the pdf generation folder.'));
}
$html = $_POST['html'];
$filename = $_POST['filename'];
$css_theme = $_POST['css_theme'];
$css_paths = $_POST['css_paths'];
if (empty($html)) {
_pdf_export_error(t('No html to render.'));
}
if (empty($filename)) {
_pdf_export_error(t('Undefined filename.'));
}
$library_name = variable_get('pdf_export_library', 'mpdf');
$processor = _pdf_export_processor_load($library_name);
if (empty($processor)) {
_pdf_export_error(t('Could not load the processor for "@library".', array(
'@library' => $library_name,
)));
}
$library_loaded = $processor
->loadLibrary();
if (!$library_loaded) {
_pdf_export_error(t('Could not load the library "@library".', array(
'@library' => $library_name,
)));
}
$rewrite_basic_auth = variable_get('pdf_export_rewrite_basic_auth', FALSE);
if (!empty($css_theme) && !empty($css_paths)) {
$theme_path = drupal_get_path('theme', $css_theme);
$base_path = _pdf_export_get_base_path($theme_path, $rewrite_basic_auth);
$processor
->setBasePath($base_path);
// Including css files.
$css_files = explode(' ', $css_paths);
foreach ($css_files as $css_file) {
$css_path = $theme_path . '/' . $css_file;
if (!file_exists($css_path)) {
_pdf_export_error(t('CSS file "@filename" is missing.', array(
'@filename' => $css_file,
)));
}
$processor
->addCssStyles(file_get_contents($css_path));
}
}
if ($rewrite_basic_auth) {
$html = preg_replace_callback("/(<img[^>]*?src *= *[\"'])(https?:\\/\\/)([a-z|\\.|\\-|0-9]*)([^\"']*).?(\".*?>)/i", '_pdf_export_prepend_basic_auth_callback', $html);
}
if (variable_get('pdf_export_debug', FALSE)) {
$processor
->enableDebug();
}
// Let other modules alter the HTML.
drupal_alter('pdf_export_html', $html, $filename);
$processor
->setHtml($html);
$pdf_path = file_create_filename($filename, $pdf_path);
$real_filename = explode('/', $pdf_path);
$real_filename = $real_filename[count($real_filename) - 1];
$processor
->save($pdf_path);
drupal_json_output((object) array(
'url' => url('pdf_export/download/' . $real_filename . '/' . $filename),
));
drupal_exit();
}