Конвертировать .ps файл в .txt (русский язык) - PullRequest
0 голосов
/ 09 ноября 2019

Я работаю над проектом на виртуальном принтере, и я хочу конвертировать ps файл в txt и pdf. Я использую ps2pdf, и он хорошо конвертируется в pdf, но когда я хочу конвертировать ps файл в txt, я использую ps2ascii, и тогда у меня возникли проблемы. ps файл содержит русские символы. Как я могу конвертировать PS файл в TXT (русский язык)? Я читал в Интернете, что это проблема с Unicode.

1 Ответ

0 голосов
/ 09 ноября 2019

ps2ascii обрабатывает только ASCII (ключ, очевидно, в названии). Сценарий оболочки ps2ascii и программа PostScript были удалены из стандартного дерева исходных текстов Ghostscript некоторое время назад, потому что оно было слишком ограничено и есть лучший вариант.

Проблема с использованием PostScript заключается в том, что не существует гарантированного способасвязать коды символов, используемые для визуализации текста, в Юникод или в любую другую стандартную кодировку текста. PostScript - это язык, предназначенный для печати, а не для редактирования.

Вам может повезти , он полностью зависит от шрифтов и Encoding / CMap используемой вами программы PostScript. Я отмечаю, что вы говорите о «виртуальном принтере», это на Windows? В этом случае вам может повезти, драйвер принтера Windows PostScript добавляет дополнительную (совершенно нестандартную) информацию, по крайней мере, в некоторые шрифты, когда он встраивает их в программу PostScript. Эта дополнительная информация может быть использована для получения кодовых точек Unicode.

Я бы начал с попытки попробовать устройство txtwrite из Ghostscript (и вы должны использовать Ghostscript напрямую, а не предварительно запеченные скрипты) на PostScript и посмотреть, если этоможет извлечь текст.

Если нет, то попробуйте создать файл PDF из PostScript, а затем использовать устройство txtwrite в файле PDF. Я не совсем уверен, что если устройство txtwrite имеет все навороты устройства pdfwrite, оно может не иметь возможности использовать информацию Unicode непосредственно из шрифта, но оно, безусловно, может использовать ее из файла PDF.

Мне, вероятно, следует поручить вам прочитать также лицензию на Ghostscript, это AGPL версии 3, просто чтобы вы не теряли время на то, что потом обнаруживаете, что не можете использовать по юридическим причинам.

[EDIT]

После быстрой проверки кажется, что мы удалили программу PostScript ps2ascii, но изменили скрипт ps2ascii, чтобы использовать вместо него устройство txtwrite. Так что, если вы используете достаточно свежую версию Ghostscript, это то, что будет происходить. Если это не позволяет получить приемлемый текст, попробуйте создать файл PDF и запустить на нем ps2ascii. Если это не сработает, то, скорее всего, вы просто не сможете делать то, что хотите, информация ушла в процесс печати. ​​

Если вы создадите пример файла PostScript, который не работает, я мог быскажи более определенно.

...