ofd 转换为pdf 报错 字体相关
本地环境存在宋体字体,如上。
在执行ofd 转换为pdf 的时候报错(环境:linux,在本地windows 测试没有这个问题)
以下为完整报错信息:
saving xml /home/kaiser/app/pdf2html/temp/temp_0h271svy_xml
2025-02-21 14:59:00.570 | INFO | easyofd.ofd:to_pdf:72 - to_pdf
page_size_details [[0.0, 0.0, 209.9028, 296.6861], [0.0, 0.0, 209.9028, 296.6861]]
page_id: 0 page_size_details: [[0.0, 0.0, 209.9028, 296.6861], [0.0, 0.0, 209.9028, 296.6861]]
2025-02-21 14:59:00.574 | ERROR | easyofd.draw.draw_pdf:call:699 - '宋体'
2025-02-21 14:59:00.574 | ERROR | easyofd.draw.draw_pdf:call:700 - ofd解析失败
Traceback (most recent call last):
File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/reportlab/pdfbase/pdfmetrics.py", line 698, in getFont
return _fonts[fontName]
KeyError: '宋体'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/easyofd/draw/draw_pdf.py", line 696, in call self.draw_pdf() File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/easyofd/draw/draw_pdf.py", line 674, in draw_pdf self.draw_chars(c, text_list, fonts, page_size) File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/easyofd/draw/draw_pdf.py", line 145, in draw_chars c.setFont(font, line_dict["size"] * self.OP) File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/reportlab/pdfgen/canvas.py", line 1747, in setFont font = pdfmetrics.getFont(self._fontname) File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/reportlab/pdfbase/pdfmetrics.py", line 700, in getFont return findFontAndRegister(fontName) File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/reportlab/pdfbase/pdfmetrics.py", line 682, in findFontAndRegister face = getTypeFace(fontName) File "/root/miniconda3/envs/pdf2html/lib/python3.9/site-packages/reportlab/pdfbase/pdfmetrics.py", line 639, in getTypeFace return _typefaces[faceName] KeyError: '宋体' '宋体' Package not found at '/home/kaiser/app/pdf2html/temp/temp_0h271svy.docx'
看上去就是缺少字体,检查下是不是权限问题?
在debian 12系统 同样的错误; 字体目录已经赋予777 权限了。
已解决, 将字体复制到这个目录,且名称需要修改成 simsun.ttc 因为windows 是大写的, /opt/conda/envs/odf2pdf/lib/python3.11/site-packages/reportlab/fonts
已解决, 将字体复制到这个目录,且名称需要修改成 simsun.ttc 因为windows 是大写的, /opt/conda/envs/odf2pdf/lib/python3.11/site-packages/reportlab/fonts
debian 12系统 是吗? 你把文件发我看看,我找个机器试试?