Как выполнять поиск и выделение PDF-файла в Java Android простым способом и не использовать стороннюю библиотеку, которая взимает плату за эту функцию. Я нашел способ сделать это, но пока не смог его применить: найти слово в формате PDF, затем выделить его поверх него, чтобы исходный файл не был затронут, а затем сохранить информацию аннотации отдельно.
У меня также есть этот метод в Java, над которым я начал работать:
public void searchAndHighlight(String text, String fileName) {
//Create a PdfDocument instance
PdfDocument pdf = new PdfDocument();
//Load a PDF sample document
pdf.loadFromFile(fileName);
PdfTextFind[] result = null;
for (Object pageObj : pdf.getPages()) {
PdfPageBase page =(PdfPageBase)pageObj;
//Find text
result = page.findText(text, false).getFinds();
for (PdfTextFind find : result) {
//Highlight searched text
find.highLight();
}
}
//Save the result file
pdf.saveToFile(editedFileName);
pdfRendererView.initWithFile(new File(getFilesDir(), editedFileName));
}
используя эту библиотеку
implementation group:'e-iceblue',name:'spire.doc',version:'11.5.5'
но при запуске приложения появляется эта ошибка
cannot access Printable
class file for java.awt.print.Printable not found
AGPBI: {"kind":"error","text":"com.android.tools.r8.internal.Ge: Method name 'spr—' in class 'com.spire.doc.packages.sprgaa' cannot be represented in dex format.","sources":[{"file":".gradle/caches/modules-2/files-2.1/e-iceblue/spire.doc/11.5.5/c2797a752513880b16cf97c14603dc6c0d9d3d69/spire.doc-11.5.5.jar"}],"tool":"D8"}
error: cannot access Printable
pdf.loadFromFile(fileName);
^
class file for java.awt.print.Printable not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-pdf-file