2016-06-23 3 views
-1

У нас есть несколько библиотек, которые могут дать мне эту функцию? Может быть, iTextSharp может помочь? Я попытался использовать Windows.Data.Pdf (UWP), но он просто возвращает растровое изображение, я не могу выбрать текст. Будет лучше, если lib свободен и поддерживает UWP. Благодарю.Pdf читатель с возможностью выбора текста

+0

Под «select a text» вы имеете в виду «извлечь текст»? – mkl

+0

Нет. Когда я открываю PDF в Foxit Reader, Adobe Reader или IE, он предоставляет мне возможность выбирать текст. – Serg046

+1

Как с помощью мыши и перетаскивания мышью? Итак, вы ищете библиотеку, которая предоставляет компонент просмотра PDF, в котором вы можете выбрать текст? Должен ли текст быть выбран только в программе просмотра? Или вы также хотите получить текст или его позицию? – mkl

ответ

1

Существует большое Lib, что отлично работает для меня: http://www.squarepdf.net/pdfbox-in-net

Вот examplecode для выпуска:

using org.apache.pdfbox.pdmodel; 
using org.apache.pdfbox.util; 

// ... 

private static string ExtractTextFromPdf(string path) 
{ 
    PDDocument doc = null; 
    try { 
    doc = PDDocument.load(path) 
    PDFTextStripper stripper = new PDFTextStripper(); 
    return stripper.getText(doc); 
    } 
    finally { 
    if (doc != null) { 
     doc.close(); 
    } 
    } 
} 

Это, как вы интегрировать его в проект: http://www.squarepdf.net/how-to-convert-pdf-to-text-in-net Его свободный Aswell ,

+0

Спасибо за ваш ответ, у меня есть несколько вопросов 1. Как я могу извлечь текст с определенной страницы, потому что он содержит много страниц? 2. Может ли это вернуть другие объекты (изображения и т. Д.), Потому что мне нужно отображать страницу (а не просто извлекать текст)? – Serg046

+1

1.) PDPage doc = document.getPage (pageNum); Я думаю, это должно сработать для вас. 2.) Как я знаю, есть способ извлечь изображения только для Google. Я никогда не работал с изображениями в pdfs (Подсказка: PdfBox - это lib, который был определен в java, чтобы вы могли смотреть java api PdfBox .. работает одинаково для C#) – Truntle

1

Я буду использовать Pdfium родную dll. Он имеет растровый рендерер (FPDF_RenderPageBitmap_Start) и извлекает текстовые инструменты (FPDFText_GetCharIndexAtPos, FPDFText_GetUnicode и т. Д.).

Если вы не хотите работать с родным lib напрямую, есть обертка PdfiumViewer, но похоже, что она не предоставляет функцию выбора текста. Вы можете разветвить его и расширить.

Также есть lib Pdfium.Net SDK, который предоставляет функцию выбора текста на основе Pdfium, но не является бесплатным.

Смежные вопросы