2013-10-12 3 views
1

Это пример из «IText в действии» использования Прямоугольник, чтобы выбрать часть документа для извлечения текста из PDF-файла:Использование Прямоугольник для выделения текста в IText

PdfReader reader = new PdfReader(pdf); 
PrintWriter out = new PrintWriter(new FileOutputStream(txt)); 
Rectangle rect = new Rectangle(70, 80, 420, 500); 
RenderFilter filter = new RegionTextRenderFilter(rect); 
TextExtractionStrategy strategy; 
for (int i = 1; i <= reader.getNumberOfPages(); i++) { 
    strategy = new FilteredTextRenderListener(
    new LocationTextExtractionStrategy(), filter); 
    out.println(PdfTextExtractor.getTextFromPage(reader, i, strategy)); 
} 
out.flush(); 
out.close(); 

То, что я не понимаю это значение этих чисел (70, 80, 420, 500). Обычно (70, 80) - координата, 420 - ширина, 500 - высота прямоугольника, но я не уверен в масштабе, как он измеряется, а также точную точку начала. Может ли кто-нибудь объяснить это мне или показать примерный пример?

+0

PDF определяет систему координат для каждой страницы, посредника, которую вы можете запросить у PdfReader. Очень распространено происхождение, расположенное в левом нижнем углу, а единица - 1/72 дюйма. – mkl

ответ

1

В этом случае у вас есть две координаты: x = 70, y = 80 - нижняя левая координата; x = 420, y = 500 - верхняя правая координата. Единицей, используемой в PDF, является «единица пользователя». По умолчанию 1 пользовательский блок равен 1 точке, но для изменения значения по умолчанию можно использовать ключ /UserUnit. Как указывает mkl в своем комментарии, MediaBox определяет размер страницы. Однако вы также можете иметь CropBox, который определяет видимую область страницы (CropBox всегда должен быть меньше, чем MediaBox, если он присутствует).

+0

Хорошо, я понял. Большое вам спасибо! – user2327348

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