Я пытаюсь сделать текст доступным для выбора в приложении для чтения PDF, созданном на JavaFX. У меня есть файлы PDF, содержащие скриншоты с текстом и слоем OCR. Поэтому мне нужно, чтобы текст можно было выбрать, как в обычном средстве просмотра. Я настроил получение изображения со страницы и теперь пытаюсь понять, как выделить текст.
Я пробовал следующее:
InputStream is = this.getClass().getResourceAsStream(currentPdf);
Image convertedImage;
try {
PDDocument document = PDDocument.load(is);
List<PDPage> list = document.getDocumentCatalog().getAllPages();
PDPage page = list.get(pageNum);
List annotations = page.getAnnotations();
PDAnnotationTextMarkup markup = new PDAnnotationTextMarkup(PDAnnotationTextMarkup.SUB_TYPE_HIGHLIGHT);
markup.setRectangle(new PDRectangle(600, 600));
markup.setQuadPoints(new float[]{100, 100, 200, 100, 100, 500, 200, 500});
annotations.add(markup);
page.setAnnotations(annotations);
BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_RGB, 128);
convertedImage = SwingFXUtils.toFXImage(image, null);
document.close();
imageView.setImage(convertedImage);
} catch (Exception e) {
throw new RuntimeException(e);
}
но это приводит к изображению без каких-либо бликов.
Я также пытался найти информацию о переполнении стека или других ресурсах, но ничего не нашел.
Был бы признателен за образец кода Java, который позволяет выделять текст с помощью мыши.