Вот наш ответ: < /p>
В настоящее время мы используем wkhtmltopdf для генерации PDF из данного шаблона HTML.
Some background information:
We are using Sulu CMF to build our back end, which is based on Symfony2.
The KnpSnappy Bundle is used as a Symfony wrapper for wkhtmltopdf.
How we generate PDFS: < /strong> < /p>
Как многие PDF имеют тот же заголовок и нижний колонтитул, который мы создали BasePdfbundle, который предлагает PDFManager для построения PDF на лету данным шаблоном ветки. По умолчанию входит общий заголовок и нижний колонтитул (обычно с именем клиента и логотипом). Для заказов, однако, большая часть нашего контента добавляется динамически (например, список продуктов). По мере того, как стиль PDF может измениться, и сам контент динамически добавляется, должен был быть быстрый и простой способ добавить текущий и общую страницу к сгенерированному PDF. Вот что мы сделали: < /p>
FooBar Company Name[/b]
/
(function() {
// get all url parameters and transform it to a list
// pdf generator adds a param for current and the total page sum
// add the value to the html elements
var urlParams = document.location.search.substring(1).split('&');
var urlParamsList = {};
var pagingElements = ['topage', 'page'];
for (var i in urlParams) {
var param = urlParams[i].split('=', 2);
urlParamsList[param[0]] = unescape(param[1]);
}
for (var i in pagingElements) {
var elem = document.getElementsByClassName(pagingElements[i]);
for (var j = 0; j < elem.length; ++j) {
elem[j].textContent = urlParamsList[pagingElements[i]];
}
}
})();
< /code>
< /p>
Да, имена переменных страниц < /code> и топажа < /code> могут быть лучше, однако они совпадают с использованием обертки knpsnappy, когда слияние шаблонов ветки с окончательным шаблоном PDF. Это самый простой способ получить текущий и общий номер страницы, потому что вы можете позволить обертке сделать все вычисления. < /p>
Различия между вашей локальной машиной и сервером: < /strong> < /p>
Поскольку wkhtmltopdf открывает виртуальный браузер, чтобы «отображать» шаблоны Twig, которые могут привести к ошибкам в поколении PHDF на вашем сервере. Мы обнаружили, что не очень хорошая идея использовать теги событий, такие как
Вы предпочитаете запустить код JavaScript, как мы сделали это в примере выше.
Вот наш ответ: < /p> [b] В настоящее время мы используем wkhtmltopdf для генерации PDF из данного шаблона HTML.
[b]Some background information:[/b]
We are using Sulu CMF to build our back end, which is based on Symfony2. The KnpSnappy Bundle is used as a Symfony wrapper for wkhtmltopdf.
How we generate PDFS: < /strong> < /p>
Как многие PDF имеют тот же заголовок и нижний колонтитул, который мы создали BasePdfbundle, который предлагает PDFManager для построения PDF на лету данным шаблоном ветки. По умолчанию входит общий заголовок и нижний колонтитул (обычно с именем клиента и логотипом). Для заказов, однако, большая часть нашего контента добавляется динамически (например, список продуктов). По мере того, как стиль PDF может измениться, и сам контент динамически добавляется, должен был быть быстрый и простой способ добавить текущий и общую страницу к сгенерированному PDF. Вот что мы сделали: < /p>
[code]
FooBar Company Name[/b]
/
(function() { // get all url parameters and transform it to a list // pdf generator adds a param for current and the total page sum // add the value to the html elements var urlParams = document.location.search.substring(1).split('&'); var urlParamsList = {}; var pagingElements = ['topage', 'page'];
for (var i in urlParams) { var param = urlParams[i].split('=', 2); urlParamsList[param[0]] = unescape(param[1]); }
for (var i in pagingElements) { var elem = document.getElementsByClassName(pagingElements[i]); for (var j = 0; j < elem.length; ++j) { elem[j].textContent = urlParamsList[pagingElements[i]]; } } })();
< /code>
< /p>
Да, имена переменных страниц < /code> и топажа < /code> могут быть лучше, однако они совпадают с использованием обертки knpsnappy, когда слияние шаблонов ветки с окончательным шаблоном PDF. Это самый простой способ получить текущий и общий номер страницы, потому что вы можете позволить обертке сделать все вычисления. < /p>
Различия между вашей локальной машиной и сервером: < /strong> < /p>
Поскольку wkhtmltopdf открывает виртуальный браузер, чтобы «отображать» шаблоны Twig, которые могут привести к ошибкам в поколении PHDF на вашем сервере. Мы обнаружили, что не очень хорошая идея использовать теги событий, такие как [/code] Вы предпочитаете запустить код JavaScript, как мы сделали это в примере выше.
Я разрабатываю систему электронного выставления счетов, и одна из наших функций — создание PDF-файлов счетов и их отправка по почте. У нас есть несколько шаблонов для счетов, и мы создадим больше позже, поэтому мы решили использовать шаблоны HTML,...
У меня есть отчет в формате html, и данные заполняются с использованием скорости Apache . Здесь я добавил нижний колонтитул. В разделе нижнего колонтитула будет показан номер страницы разбивки на страницы, но отображается Страница 0 из 0 > Я не...
Проблема с CSS при преобразовании pdftohtml, а затем html в pdf с помощью wkhtmltopdf.
Я пытаюсь преобразовать pdf в html, затем перевести html и, наконец, преобразовать его обратно в PDF с помощью wkhtmltopdf для моего сайта Проблема возникла...