PyFPDF Добавить шрифт Unicode в Google App Engine
Как добавить шрифт Unicode в мое приложение GAE, используя PyFPDF?
Я прошел учебники по адресу: https://pyfpdf.readthedocs.io/en/latest/Unicode/index.html
FPDF попытается автоматически сгенерировать метрики (т.е. ширину символов) для файлов шрифтов TTF, чтобы ускорить их обработку.
Такие метрики хранятся в формате Python Pickle (расширение.pkl), по умолчанию в каталоге шрифтов (убедитесь, что у вас есть права на чтение и запись!). Дополнительная информация о механизме кэширования определена в ссылке add_font.
Проблема здесь в том, что PyFPDF создаст файл метрик (.pkl) в папке, для него требуется разрешение на запись, GAE не позволяет записать файл, как мне это сделать?
Спасибо!
Joel
1 ответ
Функция add_font() использует константу FPDF_CACHE_MODE, которая выглядит так, как будто она определяет, записывать ли файлы.pkl или нет. Эта константа может иметь три значения (0, 1 или 2). Если установлено значение 1, то оно не записывает файлы.pkl. Эта константа определена в файле fpdf.py библиотеки. Поэтому вам нужно изменить этот файл и установить константу 1, прежде чем выполнять развертывание.
В то время как принятое решение работает, оно требует, чтобы вы включили исходные файлы fpdf в ваш проект, что не идеально, если вы просто хотите работать с пакетом fpdf.
Решение, которое также работает без изменения исходного файла, заключается в установке глобальной переменной FPDF_CACHE_MODE
через set_global(
) функция, которая предоставляется в пакете FPDF.
Пример:
import fpdf
fpdf.set_global("FPDF_CACHE_MODE", 1)