Вообщем, по быстрому, проблему решил, сделал работающую генерацию PDF из HTML-кода.
Создал на сервере, в корне сайта новый файл, например, /invoice.php
Упрощенно, код такой:
<?php
include("/www/system/external/mpdf50/mpdf.php");
$mpdf=new mPDF('utf-8', 'A4-L');
$mpdf->SetDisplayMode('fullwidth');
$mpdf->SetAutoFont(AUTOFONT_ALL);
if (isset($_REQUEST['id'], $_REQUEST['PHPSESSID'])) {
$id = $_REQUEST['id'];
$opts = array(
'http' => array(
'method' => 'GET',
'header' => 'Cookie: PHPSESSID=' . $_REQUEST[PHPSESSID]
)
);
$context = stream_context_create($opts);
if ($_REQUEST['type'] == 1) {
$html = file_get_contents('http://' . $_SERVER['SERVER_NAME'] . '/index.php?route=payment/fl_sberbank/printpay&order_id=' . $id, 0, $context);
$mpdf->SetHeader('Квитанция для оплаты через Сбербанк| |');
$mpdf->SetTitle('Квитанция для оплаты через Сбербанк');
$stylesheet = file_get_contents('http://' . $_SERVER['SERVER_NAME'] . '/files/css/pdf.css');
}
}
else {
$html = '<h1>Авторизуйтесь на сайте</h1>';
}
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html, 2);
$mpdf->Output('invoice.pdf','I');
exit;
?>
Т.е. со страницы заказа даем ссылку на скачивание квитанции для оплаты в PDF, ссылка: /invoice.php?id=155&type=1
Где id - идешник заявки, а type - указывает на то, что это квитанция сбербанка. Другие квитанции/счета я разделяют между собой по параметру type.
Собственно, когда запрашиваем файл /invoice.php он в свою очередь забирает содержимое документа /index.php?route=payment/fl_sberbank/printpay&order_id=155 Т.е. получает из него html-код и из него генерит PDF
Параметр 'I' в строке Output('invoice.pdf','I'), загружает файл прямо в браузер. Если же нужно загрузить документ на компьютер (закачать), нужно поменять его на 'D'.
PDF будет генерироваться только в том случае если пользователь авторизован на сайте.
Вкратце вот так.