2014-10-06 3 views
-1

Есть ли инструмент для рендеринга pdf-документа для изображения с частичным контентом? Например, только текст, но не изображение и векторы, или только изображение и векторы, но без текста.Пролистать частичное содержимое pdf для изображения

+0

Нужно ли быть ghostscript или вы тоже готовы немного программировать на Java? – mkl

+0

Любые предложения приветствуются. –

+1

Библиотека Java Apache PDFBox содержит код для рендеринга страниц PDF (который значительно улучшен в текущем снимке разработки 2.0.0 по сравнению с текущими выпусками 1.8.x). Этот код по существу вызывает класс 'PageDrawer'. Вы можете довольно просто настроить этот класс, чтобы сделать только ваш выбор. – mkl

ответ

1

«Традиционный» способ сделать это - предварительная обработка PDF-файла, так что останутся только те элементы, которые вы хотите, а затем растрируете оставшийся файл.

Чтобы привести пример, я применил рабочие процессы PDF для iPad, где callas pdfToolbox (Watch out, я подключен к этой компании) был использован для разделения PDF-файла в текстовом файле и «ничего, кроме текста» " файл. Впоследствии файл «ничего, кроме текста» был растрирован и два файла, которые были собраны повторно.

Так что независимо от инструмента, который вы хотите использовать, я бы посмотрел, как этот инструмент может предварительно обработать файл, чтобы удалить ненужные элементы или как он может отделить файл, который вы хотите. Затем используйте обычные возможности растеризации инструмента.

1

С Debenu Quick PDF Library вы можете сделать экстракцию двумя способами:

1.PDF2Image только текст, без изображений

DPL.LoadFromFile("my_file.pdf", ""); 
int image_count = DPL.FindImages(); //number of embedded images 
for(int i=0; i<=image_count; i++) 
{ 
    DPL.ClearImage(i); //clear the images 
} 
DPL.RenderageToFile(72, 1, 0, "just_text.bmp"); //save the file to image, without the images 

Вот список функций: http://www.debenu.com/docs/pdf_library_reference/ImageHandling.php

2 .PDF2Изменить только текст, без изображений

DPL.LoadFromFile("my_file.pdf", ""); 
DPL.GetPageText(3); //this returns CSV string with the cordinates of the text 

//create new blank file 
//XPos is the horizontal position of the text - get it from the CSV string 
//YPos is the vertical position of the text - get it from the CSV string 
//your_text is the text to draw - get it from the CSV string 
DPL.DrawText(XPos, YPos, your_text); 
DPL.RenderageToFile(72, 1, 0, "just_text.bmp"); //save the file to image, without the images