Извлечение таблиц ToUnicode из PDF

#pdf

#PDF

Вопрос:

Может кто-нибудь предложить простой в реализации способ извлечения таблиц 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. Недостающий бит — это комментарий с пометкой «Сделайте что-нибудь с данными». Что, конечно, самая сложная часть…..