如题:创建到第二页的时候出现
代码如下:
directory, filter_str = QFileDialog.getOpenFileName(self, "选取文件", "./", "Text Files (*.doc);;Text Files (*.docx);;All Files (*)")
doc = Document(directory)
path=os.getcwd()+"/pdfFile"
if not os.path.exists(path):
os.makedirs(path)
text=''
self.btn2.setEnabled(False)
font_path ='WenQuanYiMicroHei.ttf'
font_name='WenQuanYiMicroHei'
pdfmetrics.registerFont(TTFont(font_name, font_path))
pdf=canvas.Canvas(path+'/example.pdf',pagesize=letter)
font_size=12
y=750
pdf.setFont(font_name, size=font_size)
for paragraph in doc.paragraphs:
text=paragraph.text
lines = text.split('\n')
for line in lines:
pdf.saveState()
pdf.drawString(10,y,line)
pdf.restoreState()
y-=20
if y<=0:
y=750
pdf.showPage()
pdf.save()
QMessageBox.information(self, "文件转换完成!", f"写入DOC文件结束,共计{len(text.encode())}个字")
self.btn2.setEnabled(True)
问题出现在哪里?
补充问题:现在发现不是打印Y轴问题,问题是只要是中文就会出现黑块,不知道什么原因?
问题解决!
分析原因,可能原因是for循环下每更换一个页面,同时清除内存,也因此导致里面字体设置没有了,就出现中文黑块
因此修改如下代码:
重点是需要更换新页面之后,重新设置字体