本文整理汇总了Python中weasyprint.HTML.render方法的典型用法代码示例。如果您正苦于以下问题:Python HTML.render方法的具体用法?Python HTML.render怎么用?Python HTML.render使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weasyprint.HTML
的用法示例。
在下文中一共展示了HTML.render方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: print_certidao
# 需要导入模块: from weasyprint import HTML [as 别名]
# 或者: from weasyprint.HTML import render [as 别名]
def print_certidao(self, request, diligencias):
"""
:param diligencias:
:return:
"""
from weasyprint import HTML, CSS
from django.conf import settings
from app.models import Diligencia
from django.utils import datetime_safe
modelo_html = ''
for i in range(len(diligencias)):
if i == 0: #primeira certidão # '<meta charset="utf-8" />'
modelo_html += '<html>' \
'<head>' \
'<meta charset="utf-8" />' \
'<base href="http://ofjusapp.pythonanywhere.com/">'\
'</head>' \
'<body>' \
'<div style="float: none;">' \
'<div>'
modelo_html += diligencias[i].documento
modelo_html += '</div>'
else: #certidões intermediarias
modelo_html += '<div style="page-break-before:always;">'
modelo_html += diligencias[i].documento
modelo_html += '</div>'
modelo_html += '</div></body></html>'
pdf_html = HTML(string=modelo_html)
main_doc = pdf_html.render()
pdf_file = main_doc.write_pdf()
diligencias.update(imprimir=False)
#pdf_file = HTML('http://weasyprint.org/').write_pdf('/tmp/weasyprint-website.pdf')
return pdf_file # returns the response.
示例2: form_valid
# 需要导入模块: from weasyprint import HTML [as 别名]
# 或者: from weasyprint.HTML import render [as 别名]
def form_valid(self, form):
self.post_data = self.request.POST
if 'download' in self.post_data:
html = self.render_to_response(self.get_context_data(form=form))
f = open(os.path.join(
os.path.dirname(__file__), './static/payslip/css/payslip.css'))
html = HTML(string=html.render().content)
pdf = html.write_pdf(stylesheets=[CSS(string=f.read())])
f.close()
resp = HttpResponse(pdf, content_type='application/pdf')
resp['Content-Disposition'] = \
u'attachment; filename="{}_{}.pdf"'.format(
self.date_start.year, self.date_start.month)
return resp
return self.render_to_response(self.get_context_data(form=form))
示例3: serve_pdf
# 需要导入模块: from weasyprint import HTML [as 别名]
# 或者: from weasyprint.HTML import render [as 别名]
def serve_pdf(self, request):
# Render html content through html template with context
template = get_template(settings.PDF_TEMPLATE)
context = {"invoice": self}
html = template.render(context)
# Write PDF to file
document_html = HTML(string=html, base_url=request.build_absolute_uri())
document = document_html.render()
if len(document.pages) > 1:
for page in document.pages[1:]:
str(page)
pdf = document.write_pdf()
else:
pdf = document.write_pdf()
# response = HttpResponse(html)
response = HttpResponse(pdf, content_type="application/pdf")
response["Content-Disposition"] = 'filename="Invoice {0} | Invoice {0}.pdf"'.format(self.id)
return response
示例4: print_avisos
# 需要导入模块: from weasyprint import HTML [as 别名]
# 或者: from weasyprint.HTML import render [as 别名]
def print_avisos(self, request, mandados):
"""
:param mandados:
:return:
"""
from weasyprint import HTML, CSS
from django.conf import settings
from app.models import Atendimento, Oficial
from django.utils import datetime_safe
oj = Oficial.objects.get(usuario=request.user)
atendimentos = Atendimento.objects.filter(oficial=oj, data__gt=datetime_safe.date.today())
av = Modelo_Documento.objects.get(nome='AVISO')
modelo_html = ''
for i in range(len(mandados)):
if i == 0: #primeiro aviso # '<meta charset="utf-8" />'
modelo_html += '<html>' \
'<head>' \
'<meta charset="utf-8" />' \
'</head>' \
'<body>' \
'<div style="float: none;">' \
'<div>'
c = template.Context({'mandado':mandados[0], 'atendimentos':atendimentos})#.last()})
t = template.Template(av.modelo)
modelo_html += t.render(c)
modelo_html += '</div>'
else: #avisos intermediarios
modelo_html += '<div style="page-break-before:always;">'
c = template.Context({'mandado':mandados[i], 'atendimentos':atendimentos})#.last()})
t = template.Template(av.modelo)
modelo_html += t.render(c)
modelo_html += '</div>'
modelo_html += '</div></body></html>'
#print(modelo_html)
pdf_html = HTML(string=modelo_html)
main_doc = pdf_html.render()
pdf_file = main_doc.write_pdf()
#pdf_file = HTML('http://weasyprint.org/').write_pdf('/tmp/weasyprint-website.pdf')
return pdf_file # returns the response.
示例5: generate_pdf
# 需要导入模块: from weasyprint import HTML [as 别名]
# 或者: from weasyprint.HTML import render [as 别名]
def generate_pdf(body):
html = HTML(string=body)
main_doc = html.render()
pdf = main_doc.write_pdf()
return pdf
示例6: grabPRCY
# 需要导入模块: from weasyprint import HTML [as 别名]
# 或者: from weasyprint.HTML import render [as 别名]
#.........这里部分代码省略.........
f.write('<td class="right unsuccess">')
else:
f.write('<td class="right">')
f.write(clearStr(name.cssselect('.content-test')[0].cssselect('.progress-info .progress-info')[0].text))
f.write('</td>')
elif (len(name.cssselect('.content-test')[0].cssselect('.progress-info')) > 0):
if (name.cssselect('.check-test')[0].get('test-status') == 'success'):
f.write('<td class="right success">')
elif (name.cssselect('.check-test')[0].get('test-status') == 'fail'):
f.write('<td class="right unsuccess">')
else:
f.write('<td class="right">')
f.write(clearStr(name.cssselect('.content-test')[0].cssselect('.progress-info')[0].text))
f.write('</td>')
elif (len(name.cssselect('.content-test')[0].cssselect('span')) > 0) or ('Системы статистики' in name.cssselect('.info-test')[0].text):
if (name.cssselect('.check-test')[0].get('test-status') == 'success'):
f.write('<td class="right success">')
elif (name.cssselect('.check-test')[0].get('test-status') == 'fail'):
f.write('<td class="right unsuccess">')
else:
f.write('<td class="right">')
newList2 = name.cssselect('.content-test')[0].cssselect('span')
for analytics in newList2:
f.write(clearStr(analytics.text))
f.write('<br>')
f.write('</td>')
elif (len(name.cssselect('.info-test')) > 0):
if('Местоположение сервера' in name.cssselect('.info-test')[0].text):
if (name.cssselect('.check-test')[0].get('test-status') == 'success'):
f.write('<td class="right success">')
elif (name.cssselect('.check-test')[0].get('test-status') == 'fail'):
f.write('<td class="right unsuccess">')
else:
f.write('<td class="right">')
f.write(name.cssselect('.content-test img')[0].get('alt').split(' ')[2])
f.write('</td>')
elif('Favicon' in name.cssselect('.info-test')[0].text):
if(name.cssselect('.check-test')[0].get('test-status') == 'success'):
f.write('<td class="right success">')
f.write('Отлично, у сайта есть Favicon.')
f.write('</td>')
elif(name.cssselect('.check-test')[0].get('test-status') == 'fail'):
f.write('<td class="right success">')
f.write('Отлично, у сайта есть Favicon.')
f.write('</td>')
i += 1
'''f.write('<td>')
newList3 = name.cssselect('.description p')
for paragraph in newList3:
f.write(paragraph.text)'''
f.write('</tbody>')
f.write('</table>')
f.write('''<p> Резолюция
Сайт частично оптимизирован.</p>
</body>
</html>
''')
f.close()
file = HTML(filename="audit/" + customerList[1] + ".html")
file.render().write_pdf(target="audit/" + customerList[1] + ".pdf")
#file.render('file://' + os.getcwd() + '/audit/' + customerList[1] + '.html', 'audit/' + customerList[1] + '.pdf')
subject = customerList[0] + ' - подготовили аудит вашего сайта: ' + customerList[1]
message = customerList[0] + """, добрый день!
Причина нашего обращения к Вам не случайна.
Специалистами студии Дмитрия Биксилеева в течение марта месяца проводился выборочный аудит сайтов компаний работающих в сфере услуг для бизнеса. В том числе был проведен краткий аудит Вашего сайта %s
Нашими SEO-специалистами выявлены достаточно серьезные ошибки на сайте, мешающие его продвижению в поисковых системах и снижающие удобство пользования вашим сайтом для ваших потенциальных клиентов (см. приложение «Экспресс аудит сайта»). Как правило, данные ошибки не заметны на первый взгляд, но об их наличии убедительно свидетельствует низкий КПД сайта.
Наверное, и Вы сами, как ответственный и экономный хозяин, периодически задаетесь вопросом:
Почему сайт, в который вложено столько интеллектуальных и финансовых ресурсов не оправдывает свое существование?
Почему клиенты заходят на сайт, но не совершают покупок?
Почему Ваши конкуренты уводят клиентов?
Мы дадим ответы на все интересующие Вас вопросы и с удовольствием поделимся самыми свежими и самыми необходимыми в XXI веке знаниями по интернет-маркетингу. В случае Вашей заинтересованности, сделаем полный базовый, технический и юзабилити аудит сайта, предложим реальные сроки и способы устранения недостатков и выведем Ваш сайт на лидирующие позиции в поисковиках по самым высоко конверсионным запросам.
Мы не предлагаем Вам услуги с непредсказуемым или неубедительным результатом. Мы предлагаем взрывной рост Вашему Интернет-бизнесу!
Помогая Вам в бизнесе, мы становимся своеобразным хуком в интернет-продажах, Вашим директором по маркетингу, полностью выстраивающим маркетинг и систему продаж.
С уважением к Вам и Вашему бизнесу, Бубновский Михаил
Директор по развитию компании Студия Дмитрия Биксилеева
----------------------------------------------------------
Тел.: +7(343)298-03-54
Сот. Тел.: +7 (922)1554515
E-mail: [email protected]
skype: ottepel_1
www.biksileev.ru""" % customerList[1]
#sendMail(customerList[2], subject, message, 'audit/' + customerList[1] + '.pdf')
customerList.append('Отправлено')
output.write(' '.join(customerList))
output.write('\n')
text1.delete('1.0', str(len(' '.join(customerList) + '\n') + 1) + '.0')
text1.insert(str(j) + '.0', ' '.join(customerList) + '\n')
text1.update()
output.close()
phant.quit()
示例7: constructSvg
# 需要导入模块: from weasyprint import HTML [as 别名]
# 或者: from weasyprint.HTML import render [as 别名]
#.........这里部分代码省略.........
svg, attrs = _svgText(draw, attrs)
g.add(svg)
elif dashItem['itemType'] == 'TitleItem':
titleSvg, attrs = _svgText(draw,
{ 'x': 0
, 'y': 0
, 'text': dashItem['textContent']
, 'lineHeight': dashItem.get('lineHeight', 10)
, 'font-size': '1.35em'
, 'font-family': 'helvetica'
, 'font-weight': 'bold' })
g.add(titleSvg)
elif dashItem['itemType'] == 'CommentItem':
bgSvg, attrs = _svgRect(draw,
{ 'x': COMMENT_PADDING
, 'y': COMMENT_PADDING
, 'width': w - COMMENT_PADDING
, 'height': h - COMMENT_PADDING
, 'fill': '#fff8b6'
, 'stroke': '#eae1a0'
, 'stroke-width': 1 })
g.add(bgSvg)
authorSvg, attrs = _svgText(draw,
{ 'x': COMMENT_PADDING + AUTHOR_PADDING
, 'y': COMMENT_PADDING + 2 * AUTHOR_PADDING
, 'text': dashItem['author']
, 'lineHeight': dashItem['lineHeight']
, 'font-weight': 600
, 'font-size': '1em'
, 'fill': '#8c8c8c'
, 'clip': 'rect(10,10,{width},{height})'.format(
width = w - COMMENT_PADDING
, height = h - COMMENT_PADDING)
, 'font-family': 'helvetica' })
g.add(authorSvg)
textSvg, attrs = _svgText(draw,
{ 'x': COMMENT_PADDING + AUTHOR_PADDING
, 'y': COMMENT_PADDING + AUTHOR_PADDING + AUTHOR_HEIGHT
, 'text': dashItem['textContent']
, 'lineHeight': dashItem['lineHeight']
, 'font-weight': 'normal'
, 'font-size': '1em'
, 'font-family': 'helvetica' })
g.add(textSvg)
elif dashItem['itemType'] == 'PivotTableItem':
from weasyprint import HTML, CSS
dashItem['html'] = dashItem['html']\
.replace('align="right"', 'class="alignright"')\
.replace('align="center"', 'class="aligncenter"')
html = HTML(string=dashItem['html'])
wpx, hpx = '{width}px'.format(width = w), '{height}px'.format(height = h)
css = CSS(string="""
@page {
margin: 0;
padding: 0;
size: %s %s;
}
table, th, td, tr {
border: 1px solid black;
border-collapse: collapse;
border-spacing: 0;
padding: 0;
margin: 0;
font-weight: normal;
background-color: white;
}
table {
width: %s;
height: %s;
}
.alignright {
text-align: right;
}
.aligncenter {
text-align: center;
}
""" % (wpx, hpx, wpx, hpx))
page = html.render(stylesheets=[css]).pages[0]
with tmpfile() as tmp:
import cairocffi as cairo
surface = cairo.SVGSurface(tmp, x + page.width, y + page.height)
page.paint(cairo.Context(surface), left_x=x, top_y=y)
surface.finish()
tmp.seek(0)
for line in tmp:
if re.match(r'<(?:xml|(/)?svg).*>', line) is None:
drawBody += line
drawBody = drawBody.rstrip()
if dashItem['itemType'] != "PivotTableItem":
drawBody += g.tostring()
return drawHead + drawBody + drawTail