Вы можете нарисовать аннотации, полностью делегируя в библиотеку MuPDF.
Образец приложения, предоставленного мной, включает в себя код для этого.
Метод в родном слое MuPDF поддерживающего это addMarkupAnnotationInternal(int page, PointF[] quadPoints, int type)
Переданный PointF [] определяет прямоугольник, который вы хотите, чтобы комментировать. Вероятно, это произойдет из текста, который пользователь выбрал.
Если вы используете Java обертки, которые они предоставляют, com.artifex.mupdfdemo.MuPDFCore.java, они обеспечивают метод под названием:
MuPDFCore#addMarkupAnnotation(int page, PointF[] quadPoints, Annotation.Type type)
Чтобы увидеть, как это на самом деле сделано и как MuPDFCore # addMarkupAnnotation получает квадранты от выбора пользователя, попробуйте пример приложения при чтении кода.
В принципе, для добавления аннотаций вам необходимо:
1- предоставить список точек (каре), определяющий форму и страницу выделенной области. 2-делегат в библиотеке MuPDF с использованием вышеупомянутого метода для добавления аннотации к документу и его рендеринга.
Для первого шага вы, вероятно, захотите, чтобы пользователь выделил область документа для выделения.Если да, то вы можете позволить пользователю выбрать, начиная режим выбора с:
MuPDFReaderView#setMode(MuPDFReaderView.Mode.Selecting);
и когда заканчивается пользователь, получите выделение:
MuPDFView#selectText();
Doing все это не так просто, и вам нужно чтобы понять API, поэтому я действительно рекомендую вам прочитать пример кода.
В отношении того, где вы сохраняете аннотации, это еще одна история. Вы можете сохранить их в файле PDF (MuPDF позволяет это сделать), или вы можете хранить их в другом месте, что потребует большего количества кода и будет отделять аннотации из файла PDF.
Итак, вы можете сделать это полностью с помощью MuPDF, нет необходимости рисовать аннотации в качестве другого слоя на Canvas/View с помощью API Android.
Пожалуйста, расскажите нам, что вы имели в виду, прочитав, отображает ли PDF на экране или читает данные в формате PDF, такие как метаданные, текст, изображения и т. Д. –
@SalmanKhakwani: Мне нужно выполнить оба задания, то есть отобразить pdf на экране и читать данные в формате pdf, такие как текст метаданных, изображения и т. д. – Shobhit