Java: как записать PDF в текстовый файл? - PullRequest
1 голос
/ 10 ноября 2009

Когда я открываю файл PDF и записываю содержимое в текстовый файл, содержимое из текстового файла портится. Я думаю, что это из-за кодировки. Из того, что я понимаю, JVM устанавливает набор символов по умолчанию Cp1252 (потому что я работаю в Windows XP). Я изменил набор символов по умолчанию, но без результатов (System.setProperty("file.encoding", "ISO-8859-1");)

  • Я пытался использовать IText, но в получающемся контенте отсутствуют некоторые буквы с диакритическими знаками

Есть идеи?

Ответы [ 7 ]

4 голосов
/ 10 ноября 2009

Причина, по которой iText не читает все буквы правильно, может быть связана с кодировкой, используемой для шрифта. Вы можете объявить шрифт как:

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);

где BaseFont.CP1252 - используемая кодировка. Имейте в виду, что некоторые шрифты не поддерживают все типы кодировок.

2 голосов
/ 10 ноября 2009

Использование вспомогательного класса iText PdfTextExtractor должно работать нормально. Просто убедитесь, что вы используете правильную кодировку при записи файла на диск:

OutputStreamWriter out = new OutputStreamWriter( new FileOutputStream(file),"ISO-8859-1") );
2 голосов
/ 10 ноября 2009

Вы можете попробовать JavaPDF . Он имеет API для вас, чтобы сделать работу. Вы можете вызвать метод extractTextFromPage(int pageIndex) из класса PDFReader.

1 голос
/ 07 декабря 2009

Наша PDFTextStream библиотека обеспечивает всестороннюю поддержку диакритических знаков, а также всех наборов символов, определенных в стандарте Unicode (включая китайские, японские и корейские символы, как в горизонтальном, так и в вертикальном режимах записи). Вы можете обнаружить, что он извлекает эти диакритические знаки должным образом, а другие инструменты этого не делают.

Существуют обстоятельства, когда символ, извлеченный в текст, не будет выглядеть так же, как при отображении в программе чтения PDF, например, в Acrobat, - это чаще всего тот случай, когда рассматриваемый текст отображается с использованием основанный на изображении шрифт (который, очевидно, не преобразуется непосредственно в текст и требует процесса распознавания текста для получения правильного акцентированного символа (символов)).

1 голос
/ 10 ноября 2009

Вы должны использовать специализированный пакет. Два, которые я использовал, это pdftotext (http://en.wikipedia.org/wiki/Pdftotext) и PDFBox (http://incubator.apache.org/pdfbox/).) Даже с пакетом вы не всегда можете гарантировать успех, поскольку некоторые инструменты для записи PDF имеют низкое качество и генерируют плохой PDF.

1 голос
/ 10 ноября 2009

iText - это API для создания PDF с нуля, но для того, чтобы прочитать и редактировать существующий файл, вы можете посмотреть по следующей ссылке http://www.lowagie.com/iText/

0 голосов
/ 10 ноября 2009

PDF - это двоичный файл, и поэтому вы не можете прочитать его как текстовый файл. Вам придется искать некоторые сторонние библиотеки для чтения содержимого PDF.

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