Alle FNIS Annotation eines Dokumentes (n-Seiten) sind immer in einem Datenobjekt (XML-Format) zusammengefasst.
Beim Ladevorgang müssen Dokumente und Annotationen mit derselben Reader
Instanz
geladen werden, damit die Annotationen korrekt auf den entsprechenden Seiten
positioniert werden.
Codebeispiel:
final DefaultReaderControls controls = new DefaultReaderControls(); // AnnotationCustomizer-Implementation, wird hier fürs setzen der // Berechtigung benutzt final AnnotationCustomizer annotationCustomizer = new AnnotationCustomizer() { @Override public void customize(Annotation a) { a.getPermissions().getPermissions() .add(IndividualAnnotationPermission.DENY.CHANGE); } }; controls.getSettings(FNISAnnotationReaderSettings.class) .getAnnotationCustomizers().add(annotationCustomizer); // Für Tiff-Dokumente ohne Auflösungsdefinition muss eine Auflösung von 100 DPI // verwendet werden controls.getSettings(TIFFReaderSettings.class).setInvalidResolutionHandling(InvalidResolutionHandling.USE_DEFAULT); controls.getSettings(TIFFReaderSettings.class).setDefaultResolution(new Resolution(100)); final URL profileUrl = FNISAnnotationReader.class .getResource("/filenet-is-annotation-profile.xml"); final AnnotationProfile profile = AnnotationProfile .load(profileUrl); controls.getSettings(FNISAnnotationReaderSettings.class) .setAnnotationProfile(profile); Reader reader = new Reader(); // ReaderControls setzen reader.setReaderControls(controls); // Laden der Dokumente // Format auf <null> setzen, d.h. das Dokument-Format wird automatisch ermittelt reader.setFormat(null); for (InputStream is : <<Liste mit Dokumentdaten>>) { reader.read(is); } // FileNet IS Format setzen reader.setFormat(new FNISAnnotationFormat()); reader.read(<<Annotation-Inputstream>>); reader.complete();