renderPM 找不到面部的 .pfb 'Times-Roman'
renderPM Can't find .pfb for face 'Times-Roman'
完整错误日志:
Warn: Can't find .pfb for face 'Times-Roman'
Traceback (most recent call last):
File "lib\site-packages\reportlab\graphics\renderPM.py", line 242, in _setFont
ValueError: _renderPM.gstate_setFont: Can't find font!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "lib\site-packages\reportlab\graphics\renderPM.py", line 248, in _setFont
TypeError: makeT1Font() argument 2 must be str, not None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 69, in run
File "lib\site-packages\reportlab\graphics\renderPM.py", line 680, in drawToFile
File "lib\site-packages\reportlab\graphics\renderPM.py", line 666, in drawToPMCanvas
File "lib\site-packages\reportlab\graphics\renderPM.py", line 51, in draw
File "lib\site-packages\reportlab\graphics\renderbase.py", line 204, in draw
File "lib\site-packages\reportlab\graphics\renderPM.py", line 98, in initState
File "lib\site-packages\reportlab\graphics\renderPM.py", line 92, in applyState
File "lib\site-packages\reportlab\graphics\renderPM.py", line 399, in setFont
File "lib\site-packages\reportlab\graphics\renderPM.py", line 251, in _setFont
reportlab.graphics.renderPM.RenderPMError: Can't setFont(Times-Roman) missing the T1 files?
Originally <class 'TypeError'>: makeT1Font() argument 2 must be str, not None
我试过 的答案,但没有解决任何问题。
我已将文件提取到建议的字体文件夹中 ,但没有任何效果。
如果这可能是问题之一,我正在使用虚拟环境。
我试过添加名称为 Times-Roman
的字体,但效果不佳。
请注意我使用的是 windows 操作系统,当我使用 Pyinstaller 构建我的应用程序时会出现此错误。
这是我的目录的样子:
dxf2png/Lib/site-packages/reportlab/fonts
00readme.txt
bitstream-vera-license.txt
callig15.afm
callig15.pfb
cobo____.pfb
cob_____.pfb
com_____.pfb
coo_____.pfb
DarkGarden-changelog.txt
DarkGarden-copying-gpl.txt
DarkGarden-copying.txt
DarkGarden-readme.txt
DarkGarden.sfd
DarkGardenMK.afm
DarkGardenMK.pfb
sy______.pfb
Vera.ttf
VeraBd.ttf
VeraBI.ttf
VeraIt.ttf
zd______.pfb
zx______.pfb
zy______.pfb
_abi____.pfb
_ab_____.pfb
_ai_____.pfb
_a______.pfb
_ebi____.pfb
_eb_____.pfb
_ei_____.pfb
_er_____.pfb
在 this user guide 中,您会找到所需的一切(尤其是第 48-52 页)。
基本上,您需要包含 Adobe .afm ('Adobe Font Metrics') 和 .pfb('Printer Font Binary') 格式的字体描述文件。
这里是 DarkGardenMK 的示例,取自那里:
import os
import reportlab
folder = os.path.dirname(reportlab.__file__) + os.sep + 'fonts'
afmFile = os.path.join(folder, 'DarkGardenMK.afm')
pfbFile = os.path.join(folder, 'DarkGardenMK.pfb')
from reportlab.pdfbase import pdfmetrics
justFace = pdfmetrics.EmbeddedType1Face(afmFile, pfbFile)
faceName = 'DarkGardenMK' # pulled from AFM file
pdfmetrics.registerTypeFace(justFace)
justFont = pdfmetrics.Font('DarkGardenMK', faceName, 'WinAnsiEncoding')
pdfmetrics.registerFont(justFont)
canvas.setFont('DarkGardenMK', 32)
canvas.drawString(10, 150, 'This should be in')
canvas.drawString(10, 100, 'DarkGardenMK')
因此,测试它是否有效 - 您可以直接指向该字体并绘制它,如果它确实对 Times-Roman
字体(具有相应的 .afm、.pfb 文件)执行相同的操作。
如果失败,请参阅第 51 页的 TrueType 字体支持 的说明。
希望对您有所帮助!
我解决此问题的方法是在另一台 PC 上重新安装所有内容...idk 如果真的有必要,但它有效而且我没有收到任何进一步的错误。
(我在 windows 7 而不是 10 上重新安装了所有东西)
完整错误日志:
Warn: Can't find .pfb for face 'Times-Roman'
Traceback (most recent call last):
File "lib\site-packages\reportlab\graphics\renderPM.py", line 242, in _setFont
ValueError: _renderPM.gstate_setFont: Can't find font!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "lib\site-packages\reportlab\graphics\renderPM.py", line 248, in _setFont
TypeError: makeT1Font() argument 2 must be str, not None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 69, in run
File "lib\site-packages\reportlab\graphics\renderPM.py", line 680, in drawToFile
File "lib\site-packages\reportlab\graphics\renderPM.py", line 666, in drawToPMCanvas
File "lib\site-packages\reportlab\graphics\renderPM.py", line 51, in draw
File "lib\site-packages\reportlab\graphics\renderbase.py", line 204, in draw
File "lib\site-packages\reportlab\graphics\renderPM.py", line 98, in initState
File "lib\site-packages\reportlab\graphics\renderPM.py", line 92, in applyState
File "lib\site-packages\reportlab\graphics\renderPM.py", line 399, in setFont
File "lib\site-packages\reportlab\graphics\renderPM.py", line 251, in _setFont
reportlab.graphics.renderPM.RenderPMError: Can't setFont(Times-Roman) missing the T1 files?
Originally <class 'TypeError'>: makeT1Font() argument 2 must be str, not None
我试过
我已将文件提取到建议的字体文件夹中
如果这可能是问题之一,我正在使用虚拟环境。
我试过添加名称为 Times-Roman
的字体,但效果不佳。
请注意我使用的是 windows 操作系统,当我使用 Pyinstaller 构建我的应用程序时会出现此错误。
这是我的目录的样子:
dxf2png/Lib/site-packages/reportlab/fonts
00readme.txt
bitstream-vera-license.txt
callig15.afm
callig15.pfb
cobo____.pfb
cob_____.pfb
com_____.pfb
coo_____.pfb
DarkGarden-changelog.txt
DarkGarden-copying-gpl.txt
DarkGarden-copying.txt
DarkGarden-readme.txt
DarkGarden.sfd
DarkGardenMK.afm
DarkGardenMK.pfb
sy______.pfb
Vera.ttf
VeraBd.ttf
VeraBI.ttf
VeraIt.ttf
zd______.pfb
zx______.pfb
zy______.pfb
_abi____.pfb
_ab_____.pfb
_ai_____.pfb
_a______.pfb
_ebi____.pfb
_eb_____.pfb
_ei_____.pfb
_er_____.pfb
在 this user guide 中,您会找到所需的一切(尤其是第 48-52 页)。
基本上,您需要包含 Adobe .afm ('Adobe Font Metrics') 和 .pfb('Printer Font Binary') 格式的字体描述文件。
这里是 DarkGardenMK 的示例,取自那里:
import os
import reportlab
folder = os.path.dirname(reportlab.__file__) + os.sep + 'fonts'
afmFile = os.path.join(folder, 'DarkGardenMK.afm')
pfbFile = os.path.join(folder, 'DarkGardenMK.pfb')
from reportlab.pdfbase import pdfmetrics
justFace = pdfmetrics.EmbeddedType1Face(afmFile, pfbFile)
faceName = 'DarkGardenMK' # pulled from AFM file
pdfmetrics.registerTypeFace(justFace)
justFont = pdfmetrics.Font('DarkGardenMK', faceName, 'WinAnsiEncoding')
pdfmetrics.registerFont(justFont)
canvas.setFont('DarkGardenMK', 32)
canvas.drawString(10, 150, 'This should be in')
canvas.drawString(10, 100, 'DarkGardenMK')
因此,测试它是否有效 - 您可以直接指向该字体并绘制它,如果它确实对 Times-Roman
字体(具有相应的 .afm、.pfb 文件)执行相同的操作。
如果失败,请参阅第 51 页的 TrueType 字体支持 的说明。
希望对您有所帮助!
我解决此问题的方法是在另一台 PC 上重新安装所有内容...idk 如果真的有必要,但它有效而且我没有收到任何进一步的错误。
(我在 windows 7 而不是 10 上重新安装了所有东西)