Вопрос:
Может кто-нибудь предложить простой в реализации способ извлечения таблиц ToUnicode из PDF? Я могу извлекать шрифты с помощью pdfextract из mupdf, теперь я ищу способ извлечения таблиц ToUnicode для этих шрифтов.
Ответ №1:
Вы можете изменить pdfextract для извлечения CMAP-файлов ToUnicode (не таблиц, CMAP).
Вы можете просмотреть код в savefont и добавить что-то вроде :
obj = fz_dict_gets(dict, "ToUnicode");
if (obj)
{
stream = obj;
}
Если есть ToUnicode (его не должно быть), то вы можете сбросить поток аналогично тому, как поток шрифтов записывается в файл.
obj = fz_dict_gets(dict, "ToUnicode");
if (obj)
{
stream = obj;
buf = fz_new_buffer(0);
error = pdf_load_stream(amp;buf, xref, fz_to_num(stream), fz_to_gen(stream));
if (error)
die(error);
/* Do something with the data */
}
buf-> данные (размера buf-> len) затем будут содержать CMap, который вы могли бы записать в файл или что-то еще.
Комментарии:
1. Является ли это чем-то, что разработчики Artifex или MuPDF сочли бы добавленным / включенным в качестве «официальной» функции
mutool extract
?2. Если кто-то еще хочет написать код, возможно, да, похоже, это имеет какое-то значение. В настоящее время у разработчиков нет времени.
3. Хех … мне просто показалось, что я не программист, как будто код уже есть в этом ответе 🙂
4. Недостающий бит — это комментарий с пометкой «Сделайте что-нибудь с данными». Что, конечно, самая сложная часть…..