Registro de errores completo:

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

He intentado la respuesta de aquí pero eso no solucionó nada .

Extraje el archivo en la carpeta de fuentes que se sugiere aquí, Pero nada funcionó.

Estoy usando un entorno virtual si ese podría ser uno de los problemas.

Intenté agregar una fuente con Times-Roman como nombre, pero eso no funcionó tan bien.

Tenga en cuenta que estoy en un sistema operativo Windows, y este error ocurre cuando construyo mi aplicación con Pyinstaller.

Así es como se ve mi directorio:

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
1
JareBear 1 may. 2020 a las 21:11

2 respuestas

La mejor respuesta

La forma en que resolví este problema fue reinstalando todo en una PC diferente ... idk si era realmente necesario, pero funcionó y no recibí más errores.

(Reinstalé todo en Windows 7 y no en 10)

0
JareBear 27 may. 2020 a las 19:53

En esta guía del usuario, encontrará todo lo que está buscando (especialmente , páginas 48-52).

Básicamente, debe incluir los archivos de descripción de fuente en el formato Adobe .afm ('Adobe Font Metrics') y .pfb ('Printer Font Binary').

Así que aquí está el ejemplo de DarkGardenMK, tomado de allí:

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')

Por lo tanto, compruebe que funciona: que puede dirigir a esa fuente y dibujarla, y si hace lo mismo para la fuente Times-Roman (con los archivos .afm, .pfb correspondientes).

Si eso falla, consulte la explicación del Soporte de fuentes TrueType en la página 51.

¡Espero que ayude!

0
IftahP 5 may. 2020 a las 09:09