本文整理汇总了Python中reportlab.platypus.doctemplate.BaseDocTemplate.addPageTemplates方法的典型用法代码示例。如果您正苦于以下问题:Python BaseDocTemplate.addPageTemplates方法的具体用法?Python BaseDocTemplate.addPageTemplates怎么用?Python BaseDocTemplate.addPageTemplates使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reportlab.platypus.doctemplate.BaseDocTemplate
的用法示例。
在下文中一共展示了BaseDocTemplate.addPageTemplates方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictValeurs={}, dictOptions={}, IDmodele=None, ouverture=True, nomFichier=None):
""" Impression """
global DICT_VALEURS, DICT_OPTIONS
DICT_VALEURS = dictValeurs
DICT_OPTIONS = dictOptions
# Initialisation du document
if nomFichier == None :
nomDoc = FonctionsPerso.GenerationNomDoc("LOCATIONS", "pdf")
else :
nomDoc = nomFichier
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Importe le template de la première page
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
# ----------- Insertion du contenu des frames --------------
listeLabels = []
for IDlocation, dictValeur in dictValeurs.iteritems() :
listeLabels.append((dictValeur["{FAMILLE_NOM}"], IDlocation))
listeLabels.sort()
for labelDoc, IDlocation in listeLabels :
dictValeur = dictValeurs[IDlocation]
if dictValeur["select"] == True :
story.append(DocAssign("IDlocation", IDlocation))
nomSansCivilite = dictValeur["{FAMILLE_NOM}"]
story.append(Bookmark(nomSansCivilite, str(IDlocation)))
# Saut de page
story.append(PageBreak())
# Finalisation du PDF
doc.build(story)
# Ouverture du PDF
if ouverture == True :
FonctionsPerso.LanceFichierExterne(nomDoc)
示例2: renderElements
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def renderElements(elements, filesuffix=None, tmpdir=None):
""" takes a list of reportlab flowables and renders them to a test.pdf file"""
margin = 2 * cm
if filesuffix:
fn = 'test_' + filesuffix + '.pdf'
else:
fn = 'test.pdf'
fn = os.path.join(tmpdir, fn)
doc = BaseDocTemplate(fn, topMargin=margin, leftMargin=margin, rightMargin=margin, bottomMargin=margin)
pt = WikiPage("Title")
doc.addPageTemplates(pt)
elements.insert(0, NextPageTemplate('Title'))
doc.build(elements)
示例3: pdf_basic_page
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def pdf_basic_page( objects, title='', preferences=None ): # used by gen_table.make_page()
"""Simple convenience fonction: build a page from a list of platypus objects,
adding a title if specified.
"""
StyleSheet = styles.getSampleStyleSheet()
report = cStringIO.StringIO() # in-memory document, no disk file
document = BaseDocTemplate(report)
document.addPageTemplates(
ScolarsPageTemplate(document,
title=title,
author='%s %s (E. Viennet)' % (SCONAME, SCOVERSION),
footer_template="Edité par %(scodoc_name)s le %(day)s/%(month)s/%(year)s à %(hour)sh%(minute)s",
preferences=preferences
))
if title:
head = Paragraph(SU(title), StyleSheet["Heading3"])
objects = [ head ] + objects
document.build(objects)
data = report.getvalue()
return data
示例4: pagecat2
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def pagecat2(request):
doc = BaseDocTemplate('test.pdf')
frame_title = Frame(doc.leftMargin, doc.bottomMargin, doc.width/2-6, doc.height, id='title')
frame_back = Frame(doc.leftMargin, doc.bottomMargin, doc.width/2-6, doc.height, id='back')
frame_1col = Frame(doc.leftMargin, doc.bottomMargin, doc.width/2-6, doc.height, id='col12')
frame1_2col = Frame(doc.leftMargin, doc.bottomMargin, doc.width/2-6, doc.height, id='col1')
frame2_2col = Frame(doc.leftMargin+doc.width/2+6, doc.bottomMargin, doc.width/2-6, doc.height, id='col2')
doc.addPageTemplates([
PageTemplate(id='Title', frames=frame_title, onPage=static_title),
PageTemplate(id='Back', frames=frame_back, onPage=static_back),
PageTemplate(id='OneCol', frames=frame_1col, onPage=static_1col),
PageTemplate(id='TwoCol', frames=[frame1_2col, frame2_2col], onPage=static_2col),
])
story = [Paragraph('<b>Table of contents</b>', ParagraphStyle('normal')),
NextPageTemplate('TwoCol'),
PageBreak(),
'<includePdfPages filename="pdf1.pdf" pages="1,2,3"/>',
NextPageTemplate('TwoCol')]
doc.build(story)
return render(request, "test.html")
示例5: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictValeurs={}, dictOptions={}, IDmodele=None, mode="facture", ouverture=True, nomFichier=None, titre=None):
""" Impression """
global DICT_VALEURS, DICT_OPTIONS
DICT_VALEURS = dictValeurs
DICT_OPTIONS = dictOptions
self.mode = mode
detail = 0
if dictOptions["affichage_prestations"] != None :
detail = dictOptions["affichage_prestations"]
# Initialisation du document
if nomFichier == None :
nomDoc = _(u"Temp/%ss_%s.pdf") % (mode, FonctionsPerso.GenerationIDdoc())
else :
nomDoc = nomFichier
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Vérifie qu'un cadre principal existe bien dans le document
if doc.modeleDoc.FindObjet("cadre_principal") == None :
raise Exception("Votre modèle de document doit obligatoirement comporter un cadre principal. Retournez dans l'éditeur de document et utilisez pour votre modèle la commande 'Insérer un objet spécial > Insérer le cadre principal'.")
# Importe le template de la première page
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
## # Définit le template des pages suivantes
## story.append(NextPageTemplate("suivante"))
# ----------- Insertion du contenu des frames --------------
listeNomsSansCivilite = []
for IDcompte_payeur, dictValeur in dictValeurs.iteritems() :
listeNomsSansCivilite.append((dictValeur["nomSansCivilite"], IDcompte_payeur))
listeNomsSansCivilite.sort()
for nomSansCivilite, IDcompte_payeur in listeNomsSansCivilite :
dictValeur = dictValeurs[IDcompte_payeur]
if dictValeur["select"] == True :
story.append(DocAssign("IDcompte_payeur", IDcompte_payeur))
nomSansCivilite = dictValeur["nomSansCivilite"]
story.append(Bookmark(nomSansCivilite, str(IDcompte_payeur)))
# ------------------- TITRE -----------------
if dictOptions["afficher_titre"] == True :
if titre == None :
if mode == "facture" : titre = _(u"Facture")
if mode == "attestation" : titre = _(u"Attestation de présence")
if dictValeur.has_key("texte_titre") :
titre = dictValeur["texte_titre"]
dataTableau = []
largeursColonnes = [ CADRE_CONTENU[2], ]
dataTableau.append((titre,))
texteDateDebut = DateEngFr(str(dictValeur["date_debut"]))
texteDateFin = DateEngFr(str(dictValeur["date_fin"]))
if dictOptions["afficher_periode"] == True :
dataTableau.append((_(u"Période du %s au %s") % (texteDateDebut, texteDateFin),))
styles = [
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('FONT',(0,0),(0,0), "Helvetica-Bold", dictOptions["taille_texte_titre"]),
('LINEBELOW', (0,0), (0,0), 0.25, colors.black),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
]
if dictOptions["afficher_periode"] == True :
styles.append(('FONT',(0,1),(0,1), "Helvetica", dictOptions["taille_texte_periode"]))
tableau = Table(dataTableau, largeursColonnes)
tableau.setStyle(TableStyle(styles))
story.append(tableau)
story.append(Spacer(0,20))
# TEXTE D'INTRODUCTION pour Attestation
## if mode == "attestation" and dictValeur["intro"] != None :
## texteIntro = dictValeur["intro"]
## paraStyle = ParagraphStyle(name="intro",
## fontName="Helvetica",
## fontSize=9,
## leading=14,
## spaceBefore=0,
## spaceafter=0,
## leftIndent=20,
## rightIndent=20,
## alignment=1,
## )
## story.append(Paragraph(u"<i>%s</i>" % texteIntro, paraStyle))
## story.append(Spacer(0,20))
#.........这里部分代码省略.........
示例6: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictValeurs={}, IDmodele=None, nomDoc=FonctionsPerso.GenerationNomDoc("INSCRIPTION", "pdf"), afficherDoc=True):
""" Impression """
global DICT_VALEURS
DICT_VALEURS = dictValeurs
# Initialisation du document
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
couleurFond = (0.8, 0.8, 1)
# ----------- Insertion du contenu des frames --------------
cadre_principal = doc.modeleDoc.FindObjet("cadre_principal")
if cadre_principal != None :
if DICT_VALEURS["intro"] != None or DICT_VALEURS["tableau"] == True :
# ------------------- TITRE -----------------
dataTableau = []
largeursColonnes = [ TAILLE_CADRE_CONTENU[2], ]
dataTableau.append((_(u"Confirmation d'inscription"),))
dataTableau.append((u"",))
style = TableStyle([
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('FONT',(0,0),(0,0), "Helvetica-Bold", 19),
('FONT',(0,1),(0,1), "Helvetica", 8),
('LINEBELOW', (0,0), (0,0), 0.25, colors.black),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
])
tableau = Table(dataTableau, largeursColonnes)
tableau.setStyle(style)
story.append(tableau)
story.append(Spacer(0, 10))
# TEXTE D'INTRODUCTION
paraStyleIntro = ParagraphStyle(name="intro",
fontName="Helvetica",
fontSize=11,
leading=14,
spaceBefore=0,
spaceafter=0,
leftIndent=0,
rightIndent=0,
alignment=0,
)
if DICT_VALEURS["intro"] != None :
texteIntro = DICT_VALEURS["intro"]
story.append(Paragraph(u"<i>%s</i>" % texteIntro, paraStyleIntro))
story.append(Spacer(0,20))
if DICT_VALEURS["tableau"] == True :
# ------------------- TABLEAU CONTENU -----------------
dataTableau = []
largeursColonnes = [ 80, 280]
paraStyle = ParagraphStyle(name="detail",
fontName="Helvetica-Bold",
fontSize=9,
)
dataTableau.append( (_(u"Nom"), Paragraph(DICT_VALEURS["{INDIVIDU_NOM}"], paraStyle)) )
dataTableau.append( (_(u"Prénom"), Paragraph(DICT_VALEURS["{INDIVIDU_PRENOM}"], paraStyle)) )
dataTableau.append( (_(u"Activité"), Paragraph(DICT_VALEURS["{ACTIVITE_NOM_LONG}"], paraStyle)) )
dataTableau.append( (_(u"Groupe"), Paragraph(DICT_VALEURS["{GROUPE_NOM_LONG}"], paraStyle)) )
dataTableau.append( (_(u"Catégorie"), Paragraph(DICT_VALEURS["{NOM_CATEGORIE_TARIF}"], paraStyle)) )
style = TableStyle([
('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
('FONT', (0, 0), (0, -1), "Helvetica", 9),
('GRID', (0, 0), (-1, -1), 0.25, colors.black),
('ALIGN', (0, 0), (0, -1), 'RIGHT'),
])
tableau = Table(dataTableau, largeursColonnes)
tableau.setStyle(style)
story.append(tableau)
# Si aucune frame principale
if len(story) == 0 :
story.append(Spacer(0,20))
# Enregistrement et ouverture du PDF
try :
doc.build(story)
except Exception, err :
print "Erreur dans ouverture PDF :", err
#.........这里部分代码省略.........
示例7: ProposalTemplate
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
class ProposalTemplate(object):
styleH = ParagraphStyle({})
styleH.fontSize = 14
styleH.leading = 16
styleH.borderPadding = (5,) * 4
styleH2 = ParagraphStyle({})
styleH2.fontSize = 14
styleH2.leading = 16
styleCustomer = ParagraphStyle({})
styleCustomer.fontSize = 12
styleCustomer.leading = 14
styleCustomer.borderPadding = (5,) * 4
styleN = ParagraphStyle({})
styleN.fontSize = 12
styleN.leading = 14
styleTotal = ParagraphStyle({})
styleTotal.fontSize = 14
styleTotal.leading = 16
styleTotal.borderColor = colors.black
styleTotal.borderWidth = 0.5
styleTotal.borderPadding = (5,) * 4
styleTitle = ParagraphStyle({})
styleTitle.fontSize = 14
styleTitle.fontName = "Helvetica-Bold"
styleF = ParagraphStyle({})
styleF.fontSize = 10
styleF.alignment = TA_CENTER
styleLabel = ParagraphStyle({})
styleDetail = ParagraphStyle({})
styleDetail.fontName = 'Helvetica-Oblique'
styleDetail.textColor = colors.gray
styleNSmall = ParagraphStyle({})
styleNSmall.fontSize = 8
styleNSmall.leading = 14
def __init__(self, response, user):
self.response = response
self.user = user
self.doc = None
self.story = []
self.space_before_footer = 0.55 * inch
def append_to_story(self, data):
self.story.append(data)
def build(self):
self.doc.build(self.story, canvasmaker=NumberedCanvas)
def init_doc(self, title):
def proposal_footer(canvas, doc):
canvas.saveState()
canvas.setFont('Helvetica', 10)
PAGE_WIDTH = defaultPageSize[0]
footer_text = "%s %s - %s, %s %s" % (self.user.first_name,
self.user.last_name,
self.user.get_profile().address.street.replace("\n", ", ").replace("\r", ""),
self.user.get_profile().address.zipcode,
self.user.get_profile().address.city)
if self.user.get_profile().address.country:
footer_text = footer_text + u", %s" % (self.user.get_profile().address.country)
canvas.drawCentredString(PAGE_WIDTH / 2.0, 0.5 * inch, footer_text)
extra_info = u"SIRET : %s" % (self.user.get_profile().company_id)
if self.user.get_profile().vat_number:
extra_info = u"%s - N° TVA : %s" % (extra_info, self.user.get_profile().vat_number)
canvas.drawCentredString(PAGE_WIDTH / 2.0, 0.35 * inch, extra_info)
canvas.restoreState()
self.doc = BaseDocTemplate(self.response, title=title, leftMargin=0.5 * inch, rightMargin=0.5 * inch)
frameT = Frame(self.doc.leftMargin, self.doc.bottomMargin, self.doc.width, self.doc.height + 0.5 * inch, id='normal')
self.doc.addPageTemplates([PageTemplate(id='all', frames=frameT, onPage=proposal_footer), ])
def add_headers(self, proposal, customer, document_date):
data = []
user_header_content = u"""
%s %s<br/>
%s<br/>
%s %s<br/>
%s<br/>
SIRET : %s<br/>
"""
user_header_content = user_header_content % (self.user.first_name,
self.user.last_name,
self.user.get_profile().address.street.replace("\n", "<br/>"),
self.user.get_profile().address.zipcode,
self.user.get_profile().address.city,
self.user.get_profile().address.country or '',
self.user.get_profile().company_id)
#.........这里部分代码省略.........
示例8: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictValeurs={}, IDmodele=None, nomDoc=FonctionsPerso.GenerationNomDoc("RECU_REGLEMENT", "pdf"), afficherDoc=True):
""" Impression """
global DICT_VALEURS
DICT_VALEURS = dictValeurs
# Initialisation du document
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Vérifie qu'un cadre principal existe bien dans le document
if doc.modeleDoc.FindObjet("cadre_principal") == None :
raise Exception("Votre modele de document doit obligatoirement comporter un cadre principal. Retournez dans l'editeur de document et utilisez pour votre modele la commande 'Inserer un objet special > Inserer le cadre principal'.")
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
## # Définit le template des pages suivantes
## story.append(NextPageTemplate("suivante"))
# ----------- Insertion du contenu des frames --------------
# ------------------- TITRE -----------------
dataTableau = []
largeursColonnes = [ TAILLE_CADRE_CONTENU[2], ]
dataTableau.append((_(u"Reçu de règlement"),))
dataTableau.append((u"",))
style = TableStyle([
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('FONT',(0,0),(0,0), "Helvetica-Bold", 19),
('FONT',(0,1),(0,1), "Helvetica", 8),
('LINEBELOW', (0,0), (0,0), 0.25, colors.black),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
])
tableau = Table(dataTableau, largeursColonnes)
tableau.setStyle(style)
story.append(tableau)
story.append(Spacer(0, 10))
# TEXTE D'INTRODUCTION
paraStyleIntro = ParagraphStyle(name="intro",
fontName="Helvetica",
fontSize=11,
leading=14,
spaceBefore=0,
spaceafter=0,
leftIndent=0,
rightIndent=0,
alignment=0,
)
if DICT_VALEURS["intro"] != None :
texteIntro = DICT_VALEURS["intro"]
story.append(Paragraph(u"<i>%s</i>" % texteIntro, paraStyleIntro))
story.append(Spacer(0,20))
couleurFond = (0.8, 0.8, 1)
# ------------------- TABLEAU CONTENU -----------------
dataTableau = []
largeursColonnes = [ 120, 280]
paraStyle = ParagraphStyle(name="detail",
fontName="Helvetica-Bold",
fontSize=9,
)
dataTableau.append( (_(u"Caractéristiques du règlement"), "") )
montantEnLettres = UTILS_Conversion.trad(DICT_VALEURS["montant"], MONNAIE_SINGULIER, MONNAIE_DIVISION).strip()
dataTableau.append( (_(u"Montant du règlement :"), Paragraph(montantEnLettres.capitalize(), paraStyle) ) )
dataTableau.append( (_(u"Mode de règlement :"), Paragraph(DICT_VALEURS["nomMode"], paraStyle) ) )
dataTableau.append( (_(u"Nom du payeur :"), Paragraph(DICT_VALEURS["nomPayeur"], paraStyle) ) )
if DICT_VALEURS["nomEmetteur"] != None : dataTableau.append( (_(u"Nom de l'émetteur :"), Paragraph(DICT_VALEURS["nomEmetteur"], paraStyle) ) )
if DICT_VALEURS["numPiece"] not in ("", None) : dataTableau.append( (_(u"Numéro de pièce :"), Paragraph(DICT_VALEURS["numPiece"], paraStyle) ) )
if DICT_VALEURS["date_differe"] not in ("", None): dataTableau.append((_(u"Encaissement différé :"), Paragraph(_(u"A partir du %s") % DICT_VALEURS["{DATE_DIFFERE}"], paraStyle)))
style = TableStyle([
('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
('FONT', (0, 0), (0, -1), "Helvetica", 9),
('FONT', (1, 0), (1, -1), "Helvetica-Bold", 9),
('GRID', (0, 0), (-1, -1), 0.25, colors.black),
('ALIGN', (0, 1), (0, -1), 'RIGHT'),
('ALIGN', (1, 1), (1, -1), 'LEFT'),
#.........这里部分代码省略.........
示例9: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictComptes={}, dictOptions={}, IDmodele=None, ouverture=True, nomFichier=None):
""" Impression """
global DICT_COMPTES, DICT_OPTIONS
DICT_COMPTES = dictComptes
DICT_OPTIONS = dictOptions
# Initialisation du document
if nomFichier == None :
nomDoc = FonctionsPerso.GenerationNomDoc("ATTESTATIONS_FISCALES", "pdf")
else :
nomDoc = nomFichier
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Vérifie qu'un cadre principal existe bien dans le document
if doc.modeleDoc.FindObjet("cadre_principal") == None :
raise Exception("Votre modele de document doit obligatoirement comporter un cadre principal. Retournez dans l'editeur de document et utilisez pour votre modele la commande 'Inserer un objet special > Inserer le cadre principal'.")
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Importe le template de la première page
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
## # Définit le template des pages suivantes
## story.append(NextPageTemplate("suivante"))
# ----------- Insertion du contenu des frames --------------
listeNomsSansCivilite = []
for IDcompte_payeur, dictCompte in dictComptes.iteritems() :
listeNomsSansCivilite.append((dictCompte["{FAMILLE_NOM}"], IDcompte_payeur))
listeNomsSansCivilite.sort()
for nomSansCivilite, IDcompte_payeur in listeNomsSansCivilite :
dictCompte = dictComptes[IDcompte_payeur]
story.append(DocAssign("IDcompte_payeur", IDcompte_payeur))
nomSansCivilite = dictCompte["{FAMILLE_NOM}"]
story.append(Bookmark(nomSansCivilite, str(IDcompte_payeur)))
# ------------------- TITRE -----------------
dataTableau = []
largeursColonnes = [ TAILLE_CADRE_CONTENU[2], ]
dataTableau.append((dictOptions["titre"],))
texteDateReference = UTILS_Dates.DateEngFr(str(datetime.date.today()))
dataTableau.append((_(u"Période du %s au %s") % (UTILS_Dates.DateDDEnFr(dictOptions["date_debut"]), UTILS_Dates.DateDDEnFr(dictOptions["date_fin"])),))
style = TableStyle([
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('FONT',(0,0),(0,0), "Helvetica-Bold", 19),
('FONT',(0,1),(0,1), "Helvetica", 8),
('LINEBELOW', (0,0), (0,0), 0.25, colors.black),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
])
tableau = Table(dataTableau, largeursColonnes)
tableau.setStyle(style)
story.append(tableau)
story.append(Spacer(0, 30))
couleurFond = (0.8, 0.8, 1)
couleurFondActivite = (0.92, 0.92, 1)
# TEXTE CONTENU
paraStyle = ParagraphStyle(name="contenu",
fontName="Helvetica",
fontSize=11,
leading=16,
spaceBefore=0,
spaceafter=0,
leftIndent=6,
rightIndent=6,
)
# INTRO
texte = dictCompte["{INTRO}"]
if texte != "" :
listeParagraphes = texte.split("</para>")
for paragraphe in listeParagraphes :
textePara = Paragraph(u"%s" % paragraphe, paraStyle)
story.append(textePara)
story.append(Spacer(0, 25))
# DETAIL par enfant
dataTableau = [(_(u"Nom et prénom"), _(u"Date de naissance"), _(u"Montant")),]
largeursColonnes = [ 220, 80, 80]
#.........这里部分代码省略.........
示例10: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictComptes={}, dictOptions={}, IDmodele=None, ouverture=True, nomFichier=None):
""" Impression """
global DICT_COMPTES, DICT_OPTIONS
DICT_COMPTES = dictComptes
DICT_OPTIONS = dictOptions
# Initialisation du document
if nomFichier == None :
nomDoc = "Temp/RAPPELS%s.pdf" % FonctionsPerso.GenerationIDdoc()
else :
nomDoc = nomFichier
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Vérifie qu'un cadre principal existe bien dans le document
if doc.modeleDoc.FindObjet("cadre_principal") == None :
raise Exception("Votre modèle de document doit obligatoirement comporter un cadre principal. Retournez dans l'éditeur de document et utilisez pour votre modèle la commande 'Insérer un objet spécial > Insérer le cadre principal'.")
# Importe le template de la première page
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
## # Définit le template des pages suivantes
## story.append(NextPageTemplate("suivante"))
# ----------- Insertion du contenu des frames --------------
listeNomsSansCivilite = []
for IDcompte_payeur, dictCompte in dictComptes.iteritems() :
listeNomsSansCivilite.append((dictCompte["nomSansCivilite"], IDcompte_payeur))
listeNomsSansCivilite.sort()
for nomSansCivilite, IDcompte_payeur in listeNomsSansCivilite :
dictCompte = dictComptes[IDcompte_payeur]
if dictCompte["select"] == True :
story.append(DocAssign("IDcompte_payeur", IDcompte_payeur))
nomSansCivilite = dictCompte["nomSansCivilite"]
story.append(Bookmark(nomSansCivilite, str(IDcompte_payeur)))
# ------------------- TITRE -----------------
dataTableau = []
largeursColonnes = [ TAILLE_CADRE_CONTENU[2], ]
dataTableau.append((dictCompte["titre"],))
texteDateReference = DateEngFr(str(datetime.date.today()))
dataTableau.append((_(u"Situation au %s") % texteDateReference,))
style = TableStyle([
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('FONT',(0,0),(0,0), "Helvetica-Bold", 19),
('FONT',(0,1),(0,1), "Helvetica", 8),
('LINEBELOW', (0,0), (0,0), 0.25, colors.black),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
])
tableau = Table(dataTableau, largeursColonnes)
tableau.setStyle(style)
story.append(tableau)
story.append(Spacer(0,30))
couleurFond = (0.8, 0.8, 1)
couleurFondActivite = (0.92, 0.92, 1)
# TEXTE CONTENU
paraStyle = ParagraphStyle(name="contenu",
fontName="Helvetica",
fontSize=11,
#leading=7,
spaceBefore=0,
spaceafter=0,
leftIndent=6,
rightIndent=6,
)
texte = dictCompte["texte"]
listeParagraphes = texte.split("</para>")
for paragraphe in listeParagraphes :
paragraphe = u"%s</para>" % paragraphe
textePara = Paragraph(paragraphe, paraStyle)
story.append(textePara)
if "> </para" in paragraphe :
story.append(Spacer(0, 13))
# Saut de page
story.append(PageBreak())
# Finalisation du PDF
doc.build(story)
# Ouverture du PDF
if ouverture == True :
#.........这里部分代码省略.........
示例11: ValuationPrint
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
class ValuationPrint():
def __init__(self, filename):
self.width, self.height = pagesizes.A4
self.lmargin = 1*units.cm
self.rmargin = self.width - self.lmargin
#styles = getSampleStyleSheet()
#self.styleH = styles['Heading1']
#self.styleN = styles['Normal']
self.doc = BaseDocTemplate(filename)
self.val_template = PageTemplate(id='valuation',
frames=[Frame(self.lmargin, 5*units.cm,
19*units.cm, 15.5*units.cm, id='table',
showBoundary=0)],
onPage=self.setup_page)
self.doc.addPageTemplates(self.val_template)
def setup_page(self, canvas, doc):
canvas.saveState()
self.do_title(canvas)
self.do_client_name(canvas)
self.do_date(canvas)
self.do_person_bg(canvas)
canvas.restoreState()
def do_person_bg(self, canvas):
canvas.saveState()
ref = self.data.person_code + '/' + self.data.business_getter
canvas.setFont('Times-Roman', 12)
canvas.drawRightString(self.rmargin, 22*units.cm, ref)
canvas.restoreState()
def do_date(self, canvas):
canvas.saveState()
canvas.setFont('Times-Roman', 12)
dt = time.strptime(self.data.valuation_date, '%Y%m%d')
canvas.drawString(self.lmargin, 22*units.cm, datetime.date(*dt[0: 3]).strftime('%dth %B %Y'))
canvas.restoreState()
def do_title(self, canvas):
canvas.saveState()
canvas.setFont('Times-Bold', 14)
canvas.drawString(self.lmargin, 25*units.cm, 'Portfolio Valuation')
canvas.restoreState()
def do_client_name(self, canvas):
canvas.saveState()
canvas.setFont('Times-Bold', 14)
canvas.drawString(self.lmargin, 23*units.cm, self.data.name_and_address["client_name"])
canvas.restoreState()
def create_pdf(self, data):
self.data = data
story = []
dta = [[ValuationTable.heading_line(['Description', 'Book Cost', 'Holding',
'Price', 'Value', 'Est. Income', 'Yield (%)'])]]
dta.extend(ValuationTable.format_data(self.data.holdings))
dta.extend(ValuationTable.format_cash_lines(self.data.valuation_cash, self.data.name_and_address))
dta.extend(ValuationTable.format_total_lines(self.data.totals))
story.append(ValuationTable(dta))
self.doc.build(story)
示例12: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictValeurs={}, dictOptions={}, IDmodele=None, ouverture=True, nomFichier=None):
""" Impression """
global DICT_VALEURS, DICT_OPTIONS
DICT_VALEURS = dictValeurs
DICT_OPTIONS = dictOptions
# Initialisation du document
if nomFichier == None :
nomDoc = FonctionsPerso.GenerationNomDoc("COTISATIONS", "pdf")
else :
nomDoc = nomFichier
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Importe le template de la première page
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
# ----------- Insertion du contenu des frames --------------
listeLabels = []
for IDcotisation, dictValeur in dictValeurs.iteritems() :
listeLabels.append((dictValeur["{FAMILLE_NOM}"], IDcotisation))
listeLabels.sort()
for labelDoc, IDcotisation in listeLabels :
dictValeur = dictValeurs[IDcotisation]
if dictValeur["select"] == True :
story.append(DocAssign("IDcotisation", IDcotisation))
nomSansCivilite = dictValeur["{FAMILLE_NOM}"]
story.append(Bookmark(nomSansCivilite, str(IDcotisation)))
## # ------------------- TITRE -----------------
## dataTableau = []
## largeursColonnes = [ TAILLE_CADRE_CONTENU[2], ]
## dataTableau.append((dictCompte["titre"],))
## texteDateReference = UTILS_Dates.DateEngFr(str(datetime.date.today()))
## dataTableau.append((_(u"Situation au %s") % texteDateReference,))
## style = TableStyle([
## ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
## ('FONT',(0,0),(0,0), "Helvetica-Bold", 19),
## ('FONT',(0,1),(0,1), "Helvetica", 8),
## ('LINEBELOW', (0,0), (0,0), 0.25, colors.black),
## ('ALIGN', (0,0), (-1,-1), 'LEFT'),
## ])
## tableau = Table(dataTableau, largeursColonnes)
## tableau.setStyle(style)
## story.append(tableau)
## story.append(Spacer(0,30))
##
##
## couleurFond = (0.8, 0.8, 1)
## couleurFondActivite = (0.92, 0.92, 1)
##
## # TEXTE CONTENU
## paraStyle = ParagraphStyle(name="contenu",
## fontName="Helvetica",
## fontSize=11,
## #leading=7,
## spaceBefore=0,
## spaceafter=0,
## leftIndent=6,
## rightIndent=6,
## )
##
## texte = dictCompte["texte"]
## listeParagraphes = texte.split("</para>")
## for paragraphe in listeParagraphes :
## textePara = Paragraph(u"%s</para>" % paragraphe, paraStyle)
## story.append(textePara)
# Saut de page
story.append(PageBreak())
# Finalisation du PDF
doc.build(story)
# Ouverture du PDF
if ouverture == True :
FonctionsPerso.LanceFichierExterne(nomDoc)
示例13: __init__
# 需要导入模块: from reportlab.platypus.doctemplate import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.BaseDocTemplate import addPageTemplates [as 别名]
def __init__(self, dictValeurs={}, dictOptions={}, IDmodele=None, ouverture=True, nomFichier=None):
""" Impression """
global DICT_VALEURS, DICT_OPTIONS
DICT_VALEURS = dictValeurs
DICT_OPTIONS = dictOptions
# Initialisation du document
if nomFichier == None:
nomDoc = FonctionsPerso.GenerationNomDoc("INSCRIPTIONS", "pdf")
else:
nomDoc = nomFichier
doc = BaseDocTemplate(nomDoc, pagesize=TAILLE_PAGE, showBoundary=False)
# Mémorise le ID du modèle
modeleDoc = DLG_Noedoc.ModeleDoc(IDmodele=IDmodele)
doc.modeleDoc = modeleDoc
# Importe le template de la première page
doc.addPageTemplates(MyPageTemplate(pageSize=TAILLE_PAGE, doc=doc))
story = []
styleSheet = getSampleStyleSheet()
h3 = styleSheet['Heading3']
styleTexte = styleSheet['BodyText']
styleTexte.fontName = "Helvetica"
styleTexte.fontSize = 9
styleTexte.borderPadding = 9
styleTexte.leading = 12
# ----------- Insertion du contenu des frames --------------
listeLabels = []
for IDinscription, dictValeur in dictValeurs.iteritems():
listeLabels.append((dictValeur["{FAMILLE_NOM}"], IDinscription))
listeLabels.sort()
for labelDoc, IDinscription in listeLabels:
dictValeur = dictValeurs[IDinscription]
if dictValeur["select"] == True:
story.append(DocAssign("IDinscription", IDinscription))
nomSansCivilite = dictValeur["{FAMILLE_NOM}"]
story.append(Bookmark(nomSansCivilite, str(IDinscription)))
# ----------- Insertion du cadre principal --------------
cadre_principal = doc.modeleDoc.FindObjet("cadre_principal")
if cadre_principal != None:
if DICT_OPTIONS.has_key("intro") and DICT_OPTIONS["intro"] != None or DICT_OPTIONS.has_key("tableau" ) and DICT_VALEURS["tableau"] == True:
# ------------------- TITRE -----------------
dataTableau = []
largeursColonnes = [TAILLE_CADRE_CONTENU[2], ]
dataTableau.append((_(u"Confirmation d'inscription"),))
dataTableau.append((u"",))
style = TableStyle([
('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
('FONT', (0, 0), (0, 0), "Helvetica-Bold", 19),
('FONT', (0, 1), (0, 1), "Helvetica", 8),
('LINEBELOW', (0, 0), (0, 0), 0.25, colors.black),
('ALIGN', (0, 0), (-1, -1), 'LEFT'),
])
tableau = Table(dataTableau, largeursColonnes)
tableau.setStyle(style)
story.append(tableau)
story.append(Spacer(0, 10))
# TEXTE D'INTRODUCTION
paraStyleIntro = ParagraphStyle(name="intro",
fontName="Helvetica",
fontSize=11,
leading=14,
spaceBefore=0,
spaceafter=0,
leftIndent=0,
rightIndent=0,
alignment=0,
)
if DICT_OPTIONS.has_key("intro") and DICT_OPTIONS["intro"] != None:
texteIntro = DICT_VALEURS["intro"]
story.append(Paragraph(u"<i>%s</i>" % texteIntro, paraStyleIntro))
story.append(Spacer(0, 20))
if DICT_OPTIONS.has_key("tableau") and DICT_OPTIONS["tableau"] == True:
# ------------------- TABLEAU CONTENU -----------------
dataTableau = []
largeursColonnes = [80, 280]
paraStyle = ParagraphStyle(name="detail",
fontName="Helvetica-Bold",
fontSize=9,
)
dataTableau.append((_(u"Nom"), Paragraph(DICT_VALEURS["{INDIVIDU_NOM}"], paraStyle)))
dataTableau.append((_(u"Prénom"), Paragraph(DICT_VALEURS["{INDIVIDU_PRENOM}"], paraStyle)))
dataTableau.append((_(u"Activité"), Paragraph(DICT_VALEURS["{ACTIVITE_NOM_LONG}"], paraStyle)))
dataTableau.append((_(u"Groupe"), Paragraph(DICT_VALEURS["{GROUPE_NOM_LONG}"], paraStyle)))
dataTableau.append((_(u"Catégorie"), Paragraph(DICT_VALEURS["{NOM_CATEGORIE_TARIF}"], paraStyle)))
style = TableStyle([
('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
('FONT', (0, 0), (0, -1), "Helvetica", 9),
('GRID', (0, 0), (-1, -1), 0.25, colors.black),
('ALIGN', (0, 0), (0, -1), 'RIGHT'),
#.........这里部分代码省略.........