Эй, ребята, я пытаюсь сгенерировать pdf-файл с помощью html2pdf, но мне не удалось заставить его работать, потому что я получаю нечитаемый контент , так что в основном у меня есть простая php-страница, которая генерирует PDF файлИспользование html2pdf с angularjs
$content = ob_get_clean();
require_once(dirname(__FILE__).'/../vendor/autoload.php');
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 0);
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->createIndex('Sommaire', 25, 12, false, true, 1);
$html2pdf->Output('bookmark.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
с другой стороны, у меня есть свой сервис, который он посылает некоторые данные в нем и получить файл обратно что-то вроде этого
this.generatePDF = function (commande) {
var deferred = $q.defer();
$http({
method: 'POST',
//responseType: 'arraybuffer',
url: 'vendor/modules/html2pdf/examples/bookmark.php',
timeout: 15000,
data: $.param({'data': commande}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
//headers: {'Content-Type': 'application/pdf'}
//header :{"Content-Disposition": "attachment; filename=sample.pdf"}
}).then(function successCallback(response) {
debugger;
deferred.resolve(response.data);
}, function errorCallback(response) {
deferred.resolve(response.statusText);
});
return deferred.promise;
};
для последней части, которая является стороной контроллера, когда user presse generate Я вызываю свою службу и привязываю к ней данные а затем получить весь материал обратно после успеха и записать его в содержание нового окна
var popup = $window.open('', 'TEST', 'width=500,height=900');
ServiceCommande.generatePDF($scope.commande).then(function (data) {
popup.document.write(data);
});
вещь является получить какие-то странные вещи вместо PDF, что я посылаю strange behavior pdf format
Спасибо^^
Это как PDF выглядит в тексте. Это не читаемый формат. Вы можете - для целей тестирования - взять странные вещи, сохранить их в файле с завершением * .pdf * и попытаться открыть его. Что вы хотите сделать с созданным pdf-файлом? Если вы хотите показать его во всплывающем окне, я думаю, вам нужно сначала сохранить его в формате pdf, а затем загрузить его в свой html. – kabaehr
благодарю вас за быстрый ответ. Да, это именно то, что я хочу. Я уже сохраняю файл в формате pdf, поэтому вместо отправки всего текста в формате PDF мне просто нужно отправить текущее местоположение файла для открытия это так? –