对于我的项目,我从另一个程序中获得了一个纯文本文件 (report.txt)。它全部采用纯文本格式。如果您在记事本中打开它,它看起来不错(就像纯文本文件一样)。当我在 Word 中打开文件并显示段落时,我看到 ... 表示空格,而向后的 P 表示段落。
我需要将此文件转换为 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)