reportlabをpython 3で使用して、マクロン(ēēōū)を含む文書を作成しようとしていますが、マクロンがボックス(■)として表示されています。ドキュメントはArialフォントで書かれていますが、ワードプロセッサでファイルを開いてフォントを確認すると、ボックスは「Segoe UI Symbol」フォントになります。私が開いたときにこのような何かを探して、私もJSON経由辞書をインポートReportlab - Unicode文字がUnicode対応のフォントでボックスとして表示される
import reportlab.rl_config
reportlab.rl_config.warnOnMissingFontGlyphs = 0
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
pdfmetrics.registerFont(TTFont('Arial', 'Arial.ttf'))
:(働いているようだ)Unicode文字の広い範囲をサポートしているフォントとしてArialの中にインポートするための
メモ帳でJSONファイル:
{"example1":"b\u0101s"}
プログラムは、この辞書を読み込みと書き込み:
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
from reportlab.lib.styles import getSampleStyleSheet
doc = SimpleDocTemplate("hello.pdf")
Story = [Spacer(1,2*inch)]
style = styles["Normal"]
with open('CompDict.json','r') as f:
m_dic=json.load(f)
for key,value in m_dic:
p=Paragraph(key+":"+value,style)
Story.append(p)
doc.build(Story)
結果は、このリンクの下に自分のキャラクターを探すexample1:bās
でPDFなるが、代わりにexample1:b■s
JSONスニペットが有効なJSON(二重引用符を必要とする)ではありません。しかし、それはおそらくあなたの問題に関連していないでしょう。 – lenz
Python 2.xまたは3? –
私はPython 3.6を使用しています – tiramisu