Скопировать вставить текст из PDF, созданного RMarkdown? - PullRequest
0 голосов
/ 27 января 2020

Если мы откроем PDF, созданный с помощью RMarkdown, как мы можем скопировать / вставить текст непосредственно из такого PDF в другой текстовый редактор?

Примеры

Если мы откроем part_1.pdf в режиме предварительного просмотра и скопируем / вставим некоторый текст, я вижу пустое пространство (там, где должен быть текст), и если мы откроем тот же файл в chrome, мы видим искаженный текст, такой как

++++ '' $$ ## $$)) -)) $$)) ""

Что должно быть

Прикладное машинное обучение

Вопрос

Существует ли простой способ открывать и копировать / вставлять из PDF создан с помощью RMarkdown?

1 Ответ

0 голосов
/ 28 января 2020

Это проблема, с которой вы можете столкнуться при извлечении текста в формате PDF. Формат pdf может обрабатывать несколько разных типов шрифтов и обрабатывать их по-разному. В случае с вашим документом шрифт рассматриваемого текста - это шрифт type0 (PostScript)

. Часто программа описания страницы в pdf выводит строки в младших байтах, не являющихся ascii-байтами. Затем они ищутся в словаре кодирования шрифта, и соответствующий глиф извлекается из программы описания шрифта, которая встроена в файл. У вашего шрифта нет словаря кодировки - он помечен как Identity-H. Обычно это означает, что вместо него будет запись ToUnicode, и действительно ваша запись - но она фактически пуста.

Как иногда случается, в вашем случае глифы в программе описания шрифтов не отображаются в их правильное значение Ascii и просто сопоставляются непосредственно с этими младшими байтовыми значениями (например, глиф A может быть сопоставлен с 0x01, а не с его обычным значением 0x41).

Так почему текст на странице выглядит нормально?

Это потому, что программа описания шрифта получает сообщение для печати глифа 0x01, но изображение dr aws имеет букву A. Ни один из файлов pdf не «знает» значение ascii о том, что это печать. Как и любая другая программа, за исключением, возможно, OCR-программы.

С большей вероятностью вы сможете копировать и вставлять из созданного вами PDF-файла, если сохраните его без встраивания шрифтов или если вы используете встроенные файлы PDF. в шрифтах, которые включают Helvetica, Times и Courier. Однако без серьезного реверс-инжиниринга вы не сможете скопировать и вставить этот конкретный документ, равно как и инструменты извлечения текста в формате PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...