在Python中将纯文本转换为PDF

对于我的项目,我从另一个程序中获取纯文本文件(report.txt).它全部以纯文本格式化.如果你在记事本中打开它,它看起来不错(就像纯文本文件一样).当我在Word中打开文件并显示段落时,我看到…用于空格,向后看P用于pararaph.

我需要将此文件转换为PDF并添加一些其他PDF页面以制作一个最终PDF.所有这些都发生在Python中.

我无法将report.txt转换为pdf.我有ReportLab,能够读取文件并进行一些更改(比如将文本更改为Courier),但间距会丢失.当文件被读取时,它似乎剥离任何额外的空格.

问题:
a)有没有更简单的方法将report.txt转换为pdf?
b)如果没有,当我读取文件时,有没有办法保留我的空间?
c)或者我的段落样式中是否缺少一个可以保持原始外观的参数?

这是我的代码:

# ------------------------------------
# Styles
# ------------------------------------

styleSheet = getSampleStyleSheet()
mystyle = ParagraphStyle(name='normal',fontName='Courier',
                         fontSize=10, 
                         alignment=TA_JUSTIFY, 
                         leading=1.2*12,
                         parent=styleSheet['Normal'])       

#=====================================================================================       
model_report = 'report.txt'

# Create document for writing to pdf  
doc = SimpleDocTemplate(str(pdfPath),  \
                        rightMargin=40, leftMargin=40, \
                        topMargin=40, bottomMargin=25, \
                        pageSize=A4)
doc.pagesize = portrait(A4)

# Container for 'Flowable' objects
elements = []    

# Open the model report
infile   = file(model_report).read()
report_paragraphs = infile.split("\n")

for para in report_paragraphs:  
    para1 = '<font face="Courier" >%s</font>' % para 
    elements.append(Paragraph(para1, style=mystyle))
doc.build(elements)
最佳答案
ReportLab是通常的建议 – 正如您可以从本页右侧的“相关”问题中看到的那样.

您是否尝试使用StyleSheet [‘Normal’]创建文本?即,如果您使用以下内容获得适当的输出,问题就是您的风格.

Paragraph(para1, style=StyleSheet['Normal'])

转载注明原文:在Python中将纯文本转换为PDF - 代码日志