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)
Другие вопросы по тегам