Добавить кликабельную аннотацию штампа PSPDFKit - PullRequest
0 голосов
/ 14 мая 2018

Я использую PSPDFKit для управления файлами PDF.Смысл моей заявки - добавить штамп в PDF, который отлично работает.Но я хотел бы сделать свои штампы кликабельными, чтобы я мог кликать на них из другого средства просмотра PDF (например, Acrobat).

Я думаю, что есть много способов сделать это, но единственный возможный вариант - сделать свои штампыclickables.

Я добавляю штамп благодаря PSPDFKit UI , но я реализую свою собственную логику для обработки создания аннотаций.

    pdfDocument.getAnnotationProvider().addOnAnnotationUpdatedListener(new AnnotationProvider.OnAnnotationUpdatedListener(){
            //I check if this is the first Stamp annotation I created for this session. 
            //If it isn't I just move the  previous one to the new point
            //Each time I open my PDF I can add only one stamp annotation
            @Override
            public void onAnnotationCreated(@NonNull com.pspdfkit.annotations.Annotation annotation) {
                if(annotation instanceof StampAnnotation){
                    if(currentAnnotation != null){
                        if(fragment.getDocument() != null) {
                            fragment.getDocument().getAnnotationProvider().removeAnnotationFromPage(annotation);
                            fragment.notifyAnnotationHasChanged(annotation);
                        }
                    }
                    else{
                        ((StampAnnotation) annotation).setSubtext(currentImageName);
                        currentAnnotation = annotation;
                    }
                    /*
                      Trying to find how to make currentAnnotation a clickable annotation
                      I used the subtext attribute to store some data relevant for my action.
                      I also looked up for LinkAnnotations but I can't figure how they work out
                    */
                }
            }

            //I check if the annotation is a Stamp. 
            //If it is, I add it to annotations to remove from my app's business logic
            @Override
            public void onAnnotationRemoved(@NonNull com.pspdfkit.annotations.Annotation annotation) {
                if(annotation instanceof StampAnnotation){
                    runOnUiThread(() ->Toast.makeText(PSPdfFloorPlanActivity.this, "Annotation removed " + ((StampAnnotation) annotation).getSubtext(), Toast.LENGTH_SHORT).show());
                    if(annotation.equals(currentAnnotation)){
                        currentAnnotation = null;
                    }

                    removedAnnotationsImagesNames.add(((StampAnnotation) annotation).getSubtext());
                }
            }
        });

Спасибозаранее, если вопрос кажется широким комментарием, который я пытаюсь сделать, как можно проще понять ^^

Сердечно, Матье

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...