【问题标题】:Python Reportlab multiple linesPython Reportlab 多行
【发布时间】:2015-05-18 14:52:54
【问题描述】:

我正在尝试将我的磁盘状态写入 pdf。问题是它无法写多行:每个字母的文本都是垂直的。

import subprocess
from reportlab.pdfgen import canvas

p = subprocess.Popen('df -h', stdout=subprocess.PIPE, shell=True)
(disk, err) = p.communicate()
print disk

def hello(disk):
            height= 700
            c = canvas.Canvas("diskreport.pdf")
            c.drawString(200,800,"Diskreport")
            for line in disk:
                    c.drawString(100,height,line.strip()) 
                    height = height - 25
            c.showPage()
            c.save()
hello(disk)

【问题讨论】:

    标签: python pdf subprocess reportlab


    【解决方案1】:

    您不是循环遍历数据中的,而是遍历字符。例如:

    >>> data="""a
    ... b
    ... line 3"""
    >>> # this will print each character (as in your code)
    ... for line in data: print line
    ... 
    a
    
    
    b
    
    
    l
    i
    n
    e
    
    3
    >>> 
    >>> # split into lines instead
    ... for line in data.split('\n'): print line
    ... 
    a
    b
    line 3
    >>>
    

    所以在你的代码中你添加.split('\n') to yourfor`-loop 来产生这个:

    for line in disk.split('\n'):
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      • 2014-06-18
      • 2014-01-12
      • 2019-08-27
      • 1970-01-01
      • 2017-03-18
      相关资源
      最近更新 更多