PyFPDF在Google App Engine中添加Unicode字体

时间:2018-01-14 16:08:17

标签: python google-app-engine unicode fonts

如何使用PyFPDF在我的GAE应用程序中添加unicode字体?

我已经阅读了以下教程: https://pyfpdf.readthedocs.io/en/latest/Unicode/index.html#metric-files

  

FPDF将尝试自动生成有关TTF字体文件的指标(即字符宽度),以加快处理速度。

     

此类指标使用 Python Pickle格式(.pkl扩展名)存储,默认情况下位于字体目录中( 确保读写权限! )。有关缓存机制的其他信息在add_font引用中定义。

这里的问题是PyFPDF会在文件夹中创建指标文件(.pkl),它需要写权限,GAE不允许写文件,我应该怎么做?

谢谢!

乔尔

2 个答案:

答案 0 :(得分:2)

add_font()函数使用FPDF_CACHE_MODE常量,该常量看起来是指定是否写入.pkl文件的常量。该常量可以具有三个值(0,1或2)。如果设置为1则不会写入.pkl文件。此常量在库的fpdf.py文件中定义。因此,在进行部署之前,需要修改此文件并将常量设置为1.

答案 1 :(得分:0)

虽然可接受的解决方案有效,但要求您将fpdf源文件包含到您的项目中,如果您只想使用fpdf软件包,这是不理想的。

一种在不更改源文件的情况下也有效的解决方案是通过FPDF_CACHE_MODE)函数设置全局变量set_global(,该函数在FPDF软件包中提供。

示例:

import fpdf
fpdf.set_global("FPDF_CACHE_MODE", 1)