#python #css #django #pdf-generation #pisa
#python #css #django #генерация pdf #pisa
Вопрос:
я пробую что-то с xhtml2pdf (он же Pisa 3.0) и django, и у меня проблемы с css
http://www.xhtml2pdf.com/doc/pisa-en.html
очевидно, что в документах выше говорится о доступном css, а также о тегах, специфичных для поставщика.
Если я последую примеру в документах для статических фреймов и сделаю css похожим
@page{
margin:0cm;
@frame header{
-pdf-frame-content: header;
height: 3cm;
}
@frame footer{
-pdf-frame-content: footer;
bottom: 2cm;
height: 2cm;
}
}
.main_content{
padding: 0px
}
#header{
background-color: #02164c;
font: #FFFFFF;
width:100%;
}
#footer{
width: 100%;
}
.pageBreak{
page-break-after: always;
}
Я получаю ошибку в django
Значение исключения:
Набор правил, открывающий ‘{‘ не найден:: (u’@page{nttmargin:’, u’0cm;n t t@заголовок фрейма’)
Расположение исключения: /usr/lib/pymodules/python2.6/sx/w3c/cssParser.py в _parseAtPage, строка 654
похоже, что синтаксический анализатор css квакает на @page.
Мне кажется, что я использую его, как в примерах. Я надеюсь, что кто-нибудь может помочь дать некоторые рекомендации по этому поводу или указать мне на некоторые примеры шаблонов.
Мне также интересно, как использовать теги, специфичные для -pdf-поставщика. я не могу найти документации по этим тегам…
Комментарии:
1. Проверил это по сгенерированному мной pdf-файлу (который выдавал ту же ошибку) единственное, что я смог увидеть, это отсутствие пробела после @page{ — я изменил его на @page { и ваш код работает для меня. Любая помощь?
2. @JamesO — вау. это было потрясающе. с. да, это был пробел, который убивал его. Если вы хотите перенести свой комментарий в answer, я с радостью предоставлю его вам, поскольку я бы ни за что не попробовал это самостоятельно. Кстати, есть какие-либо дополнительные ресурсы для тегов конкретного поставщика и / или тегов @page и @frame?
3. подойдет, рад, что это помогло. Не уверен насчет дополнительных документов для тегов поставщиков, я использовал только те, которые используются в примерах по ссылке выше.
Ответ №1:
@page{
кажется, вызывает ошибку, когда нет пробела перед {
изменением на @page {
works.