Опитвам се да направя текст избираем в приложение за четене на 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 код, който позволява маркиране на текст с мишка.