PDF toUnicode восстановление таблицы cmap - PullRequest
0 голосов
/ 25 августа 2018

У меня есть несколько PDF-файлов без таблицы «toUnicode». Отсутствие таблицы cmap не позволяет копировать текст из pdf-файлов.

Насколько я знаю, есть возможность добавить отображение 'toUnicode' в pdf-файл, но в моем случае добавление статических значений не вариант, разные файлы имеют разные коды глифов.

Итак, вопрос в следующем. Есть ли возможность восстановить таблицу cmap 'toUnicode', возможно, с помощью Ghostscript, или есть какие-то варианты вообще?

Спасибо.

1 Ответ

0 голосов
/ 27 августа 2018

Нет, вы не можете добавить ToUnicode CMaps в существующий файл PDF с помощью Ghostscript.

В общем случае вы не можете сделать это вообще, кроме как вручную. Как вы заметили в этом вопросе, различные файлы будут построены так, чтобы использовать разные символьные сопоставления символов> глифов, что означает, что символьный код в сопоставлении Юникода также будет другим.

Поскольку выбор кода символа часто основан на порядке, в котором глифы используются в файле (таким образом, первый символ - это код символа 1, второй - код символа 2 и т. Д.), Вы можете видеть, что нет никакой возможности идентифицировать решение «один размер подходит всем».

Вы можете использовать какой-либо тип распознавания для сканирования отрендеренного вывода, идентификации каждого глифа и поиска для него кодовой точки Unicode. Затем вы можете создать CMap, идентифицировав код символа для глифа и сопоставив его со значением Unicode.

Затем можно добавить CMAP ToUnicode в файл PDF и обновить дескриптор шрифта, указав номер объекта CMAP ToUnicode.

Ghostscript не сделает ничего за вас, и я не слышал ни о каком инструменте, который будет.

...