2016-07-24 165 views
0

我想设置一个段落样式报告的实验室,我这里定义的样式:添加段落样式ReportLab的

def stylesheet(): 
    styles= { 
     'default': ParagraphStyle(
      'default', 
      fontName='Arial', 
      fontSize=16, 
      leading=12, 
      leftIndent=0, 
      rightIndent=0, 
      firstLineIndent=0, 
      alignment=TA_LEFT, 
      spaceBefore=0, 
      spaceAfter=0, 
      bulletFontName='Arial', 
      bulletFontSize=10, 
      bulletIndent=0, 
      textColor= black, 
      backColor=None, 
      wordWrap=None, 
      borderWidth= 0, 
      borderPadding= 0, 
      borderColor= None, 
      borderRadius= None, 
      allowWidows= 1, 
      allowOrphans= 0, 
      textTransform=None, # 'uppercase' | 'lowercase' | None 
      endDots=None,   
      splitLongWords=1, 
     ), 
    } 

然后,我打印出来一样,

pdf = PDFDocument(carte) 
    pdf.init_report() 
    pdf.p(str(row)) 
    pdf.generate() 

其中给出一个未格式化输出

当我尝试

pdf = PDFDocument(carte) 
pdf.init_report() 
pdf.p(str(row), default) 
pdf.generate() 

要将默认样式应用于我的文本,它会给我'名称错误:名称'样式'未定义'

任何线索?

+0

'Reportlab'是不一样的'PDFDocument' ...'PDFDocument'是Reportlab'的'只是一个简化版本。 Reportlab的功能要大得多。 – B8vrede

+0

好吧,我的坏,谢谢 – Effedepay

回答

0

尝试对ReportLab的,添加到您的现有代码:

from reportlab.lib.styles import ParagraphStyle 
from reportlab.lib.enums import TA_LEFT 
from reportlab.lib.colors import black 

styles['small'] = ParagraphStyle(
    'small', 
    parent=styles['default'], 
    fontSize=8, 
    leading=8, 
) 

paragraphs.append(Paragraph('Text with default style<br/>', styles['default'])) 
paragraphs.append(Paragraph('Text with small style', styles['small']))