【发布时间】:2018-06-23 09:43:47
【问题描述】:
如何使用 PyFPDF 在我的 GAE 应用程序中添加 unicode 字体?
我已经阅读了以下教程: https://pyfpdf.readthedocs.io/en/latest/Unicode/index.html#metric-files
FPDF 将尝试自动生成有关 TTF 字体文件的指标(即字符宽度)以加快其处理速度。
这些指标使用 Python Pickle 格式(.pkl 扩展名)存储,默认情况下在字体目录中(确保读写权限! em>)。有关缓存机制的其他信息在 add_font 参考中定义。
这里的问题是PyFPDF会在文件夹中创建度量文件(.pkl),它需要写权限,GAE不允许写文件,我应该怎么做?
谢谢!
乔尔
【问题讨论】:
-
您可以尝试使用 GCS,例如,请参阅 stackoverflow.com/a/39525052/4495081,但这可能会很棘手,因为需要使用特定于 GCS 的
open()而不是常规文件系统之一。您可能需要破解/扩展fpdf.add_font()(或其内部结构)以及其他区域才能使其正常工作。 -
@DanCornilescu 感谢您提供的信息,我试过了,它可以工作。但是我看到另一个问题是加载PDF页面需要很长时间,通常加载不嵌入unicode字体只需大约5秒,添加unicode字体add_font()后需要30多秒,有时会导致超时错误。有解决这个问题的线索吗?
-
使用更快的实例类是一种方法,但成本会上升。除此之外,您还必须进行一些分析才能了解需要这么长时间。可能只是因为它只是更繁重的处理。
-
感谢 DanCornilescu。该问题已得到解决,按照@VictorGCI 的建议,通过设置 FPDF_CACHE_MODE 常量 = 1,一切都会完美运行。 :)
标签: python google-app-engine unicode fonts fpdf