Есть ли инструмент для рендеринга pdf-документа для изображения с частичным контентом? Например, только текст, но не изображение и векторы, или только изображение и векторы, но без текста.Пролистать частичное содержимое pdf для изображения
ответ
«Традиционный» способ сделать это - предварительная обработка PDF-файла, так что останутся только те элементы, которые вы хотите, а затем растрируете оставшийся файл.
Чтобы привести пример, я применил рабочие процессы PDF для iPad, где callas pdfToolbox (Watch out, я подключен к этой компании) был использован для разделения PDF-файла в текстовом файле и «ничего, кроме текста» " файл. Впоследствии файл «ничего, кроме текста» был растрирован и два файла, которые были собраны повторно.
Так что независимо от инструмента, который вы хотите использовать, я бы посмотрел, как этот инструмент может предварительно обработать файл, чтобы удалить ненужные элементы или как он может отделить файл, который вы хотите. Затем используйте обычные возможности растеризации инструмента.
С 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
Нужно ли быть ghostscript или вы тоже готовы немного программировать на Java? – mkl
Любые предложения приветствуются. –
Библиотека Java Apache PDFBox содержит код для рендеринга страниц PDF (который значительно улучшен в текущем снимке разработки 2.0.0 по сравнению с текущими выпусками 1.8.x). Этот код по существу вызывает класс 'PageDrawer'. Вы можете довольно просто настроить этот класс, чтобы сделать только ваш выбор. – mkl