Do you have annotation Ui and signature UI similar to viewer ui in java application
You can find demo projects for Annotation and Signature for Java at:
Please let us know if it is what you was looking for.
I would like to know if there is UI also available or not
we have to made Ui for all annotation to add
There is Angular UI for Annotation and other products at GitHub - groupdocs-total/GroupDocs.Total-Angular: Angular based UI for GroupDocs Products. While it is not actively supported now you can find the app built upon it at Annotate Documents Online | Free GroupDocs Apps as an example.
Will I be able to integrate these online apps in my project
Unfortunately, Online Apps do not provide integration option at the moment but you can achieve similar results using Annotation Demo Projects or with GroupDocs.Total-Angular and your backend with GroupDocs products.
ok do I need to deploy it separately or will it be merged with spring +angular system
In groupdocs total angular there are librabry for angular 14+ but my project is based on angular 1 so is there is some library for js only
Unfortunately there is no vanilla JavaScript UI. There are two packages that are no longer supported that are built based on Jquery:
The examples based on Spring can be found at
- https://github.com/groupdocs-annotation/GroupDocs.Annotation-for-Java-Spring
- https://github.com/groupdocs-signature/GroupDocs.Signature-for-Java-Spring
Hope it helps.
I have integrated jquery plugin but its frontend is visible file is loading but not trigerring any click event can you help on that
any annotation button are not working
Thanks Issue is somewhere in this method after this only annotation are creating one page before than the original
@Override
public AnnotatedDocumentEntity annotate(AnnotationPostedDataEntity annotateDocumentRequest) {
AnnotatedDocumentEntity annotatedDocument = new AnnotatedDocumentEntity();
try {
// get/set parameters
String documentGuid = annotateDocumentRequest.getGuid();
String password = annotateDocumentRequest.getPassword();
//String documentType1 = DocumentTypesConverter.checkedDocumentType(documentGuid, annotateDocumentRequest.getDocumentType());
String documentType = SupportedImageFormats.contains(
FilenameUtils.getExtension(annotateDocumentRequest.getGuid())
) ? "image" : annotateDocumentRequest.getDocumentType();
String tempPath = getTempPath(documentGuid);
AnnotationDataEntity[] annotationsData = annotateDocumentRequest.getAnnotationsData();
// initiate list of annotations to add
List<AnnotationBase> annotations = new ArrayList<>();
final Annotator annotator = new Annotator(documentGuid, getLoadOptions(password));
try {
IDocumentInfo info = annotator.getDocument().getDocumentInfo();
for (int i = 0; i < annotationsData.length; i++) {
AnnotationDataEntity annotationData = annotationsData[i];
PageInfo pageInfo = info.getPagesInfo().get(annotationsData[i].getPageNumber() - 1);
// add annotation, if current annotation type isn't supported by the current document type it will be ignored
try {
BaseAnnotator baseAnnotator = AnnotatorFactory.createAnnotator(annotationData, pageInfo);
if (baseAnnotator.isSupported(documentType)) {
annotations.add(baseAnnotator.getAnnotationBase(documentType));
}
} catch (java.lang.RuntimeException ex) {
throw new AnnotatorException(ex.getMessage(), ex);
}
}
} finally {
if (annotator != null) {
annotator.dispose();
}
}
// Add annotation to the document
removeAnnotations(documentGuid, password);
// check if annotations array contains at least one annotation to add
if (annotations.size() != 0) {
final Annotator annotator1 = new Annotator(documentGuid, getLoadOptions(password));
try {
//foreach to while statements conversion
Iterator tmp0 = (annotations).iterator();
while (tmp0.hasNext()) {
AnnotationBase annotation = (AnnotationBase) tmp0.next();
annotator1.add(annotation);
}
annotator1.save(tempPath);
} finally {
if (annotator1 != null) {
annotator1.dispose();
}
}
try (OutputStream fileStream = new FileOutputStream(documentGuid)) {
InputStream inputStream1 = new FileInputStream(tempPath);
IOUtils.copyLarge(inputStream1, fileStream);
}
}
annotatedDocument = new AnnotatedDocumentEntity();
annotatedDocument.setGuid(documentGuid);
if (annotateDocumentRequest.getPrint()) {
annotatedDocument.setPages(getAnnotatedPagesForPrint(password, documentGuid));
Files.move(Paths.get(documentGuid), Paths.get(annotateDocumentRequest.getGuid()));
}
} catch (Exception ex) {
// set exception message
throw new TotalGroupDocsException(ex.getMessage());
}
return annotatedDocument;
Can you please share a complete minimal sample application so we could reproduce the issue on our side?
Hi Vladimir,
I have fixed that but now when I annotating and then refreshing the documents annotation are visible one page before the actual page do you know where should I check that
Unfortunately, it is quite hard to to see what’s going on without looking into code. It is possible that the page number passed to the API is actually page index, mostly likely.
Hi Vladimir,
I have fixed that but now when I annotating and then refreshing the documents annotation are visible one page before the actual page do you know where should I check that