의 기본 글꼴을 설정 할 수 없음 내 코드는 다음과 같다 :QT4/PyQt4는 QTextDocument
from PyQt4 import QtGui
doc = QtGui.QTextDocument()
d_font = QtGui.QFont('Times New Roman')
doc.setDefaultFont(d_font)
cur = QtGui.QTextCursor(doc)
cur.insertText('sample text')
writer = QtGui.QTextDocumentWriter()
writer.setFormat(writer.supportedDocumentFormats()[1])
writer.setFileName('CV')
writer.write(doc)
출력에있는 '샘플 텍스트는'여전히 오히려 타임즈 새로운 로마 "가 아닌 내 컴퓨터 '산세'입니다 내 컴퓨터에 'Times New Roman'글꼴이 있는지 확인했습니다.이 버그가있는 것 같습니다. PyQt v4.9.5를 사용하고 있습니다.
편집 : 저는 Ubuntu 12.04를 사용하고 있습니다. 다음 코드가 작동하기 때문에 PyQt4에서 글꼴을 찾을 수 있습니다.
d_font = QFont('Times New Roman')
char_fmt = QTextCharFormat()
char_fmt.setFont(d_font)
cur.insertText('Times New Roman', char_fmt)
odt/odt 형식으로 저장할 때 모든 형식이 지원되는 것은 아니지만 pdf로 인쇄 할 때 모든 것이 예상대로 작동하는 것으로 보입니다.
from PyQt4.QtGui import *
import sys
doc = QTextDocument()
cur = QTextCursor(doc)
d_font = QFont('Times New Roman')
doc.setDefaultFont(d_font)
table_fmt = QTextTableFormat()
table_fmt.setColumnWidthConstraints([
QTextLength(QTextLength.PercentageLength, 30),
QTextLength(QTextLength.PercentageLength, 70)
])
table = cur.insertTable(5,2, table_fmt)
cur.insertText('sample text 1')
cur.movePosition(cur.NextCell)
cur.insertText('sample text 2')
# Print to a pdf file
# QPrinter: Must construct a QApplication before a QPaintDevice
app = QApplication(sys.argv)
printer = QPrinter(QPrinter.HighResolution)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName('sample.pdf')
# Save to file
writer = QTextDocumentWriter()
writer.setFormat(writer.supportedDocumentFormats()[1])
writer.setFileName('sample.odt')
writer.write(doc)
setDefaultfonts 및 setColumnWidthConstraints는 sample.pdf 영향을 미치지 만 sample.odt 없습니다.
OS가 무엇입니까? 파이썬이 글꼴을 찾을 수 있습니까? – Antoni4040
@ Antoni4040 우분투 12.04를 사용하고 있습니다. 나는 PyQt4가 그 글꼴을 찾을 수 있다고 확신한다. 질문에 대한 내 업데이트를 참조하십시오. – Hieu