내 프로젝트의 경우 다른 프로그램에서 일반 텍스트 파일 (report.txt)을 얻습니다. 모두 일반 텍스트 형식입니다. 메모장에서 열면 일반 텍스트 파일만큼 멋지게 보입니다. Word에서 파일을 열고 단락을 볼 때 공백은 paranph, 공백은 pararaph를 나타냅니다.파이썬에서 일반 텍스트를 PDF로 변환
이 파일을 PDF로 변환하고 다른 PDF 페이지를 추가하여 하나의 최종 PDF를 만들어야합니다. 이 모든 일은 파이썬에서 일어납니다.
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)
정상 작동하지 않는 원래의 텍스트 파일로 정확히 같은 보인다. – user1327390
정상 *이 작동해야하므로, 왜 그렇지 않은지 알아내는 것이 좋습니다. 설명서의 예제를 복사하여 붙여 넣기해도 문제가 해결되지 않으면 ReportLab 설치에 문제가 있습니다. 그런 다음'report.txt'를 믹스에 추가합니다. 파일 인코딩을 확인하면 아스키 대신 UTF16을 사용할 수 있습니까? 행운을 빕니다. – alexis