Alle CM Annotation eines Dokumentes (n-Seiten) sind immer in einem Datenobjekt (IBM MODCA-Format) zusammengefasst.
Es gibt CM 7 und CM 8 Annotationen, die CM 7 sind nach CM 8 kompatibel, aber nicht umgekehrt.
Beim Laden ist darauf zu achten den Startseitenindex auf 0 zu setzen, da die Annotation den Seitenindex selbst bestimmen.
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) { // Geladenen Annotation können nicht verändert werden a.getPermissions().getPermissions() .add(IndividualAnnotationPermission.DENY.CHANGE); } }; controls.getSettings(CMAnnotationReaderSettings.class) .getAnnotationCustomizers().add(annotationCustomizer); // Laden und setzen des Annotations-Profil // für CM 7 Umfeld: cm7-annotation-profile.xml verwenden // für CM 8 Umfeld: cm8-annotation-profile.xml verwenden final URL profileUrl = CMAnnotationReader.class .getResource("/cm8-annotation-profile.xml"); final AnnotationProfile profile = AnnotationProfile .load(profileUrl); controls.getSettings(CMAnnotationReaderSettings.class) .setAnnotationProfile(profile); Reader reader = new Reader(); reader.setDocument(document); // Document-Instanz setzen reader.setDocument(<<Document-Instanz>>); // Startseitenindex setzen reader.setTargetIndex(0); // ReaderControls setzen reader.setReaderControls(controls); // Spezifisches Format setzen reader.setFormat(new CMAnnotationFormat()); reader.read(<<Annotation-Inputstream>>); reader.complete();
CMAnnotationReaderSettings
Konfiguration:
-
setCM8ViewerCompatibilityModeEnabled(boolean)
(Default =false
)Diese Einstellung muss beim Parallelbetrieb jadice / IBM CM Viewer aktiviert sein. Der Standardwert ist
false
, um altes Verhalten beizubehalten.Hintergrund: Der IBM CM Viewer unterstützt erst seit Kurzem das Anbringen von CM8-Annotationen auf PDF-Dokumenten. Da die Position und Größe der CM8-Annotationen abhängig von der Auflösung sind, haben wir als Standard eine Auflösung von 7200 DPI verwendet. Der IBM CM Viewer rechnet hier mit anderen Werten. Um eine korrekt Darstellung zwischen jadice und IBM CM Viewer zu bekommen, muss dieser Parameter auf
true
gesetzt werden. Zu beachten: Beim Schreiben muss der Parameter auch in denCMAnnotationWriterSettings
gesetzt werden.Zu beachten (betrifft nur Annotationen auf PDF-Dokumenten): Bei Anwendung dieser Funktion auf früher gespeicherte Annotationen werden diese nicht mehr korrekt dargestellt. Die Positionierung und Größendarstellung ist dann falsch.
Über die folgenden Methoden kann das Input-Encoding beziehungsweise die Codepage
einer textspezifischen Annotation (Note / Stamp / Text) gesetzt werden. Wird hier
ein Encoding gesetzt, wird die Definition aus der Annotation überschrieben. Bei
null
wird das intern definierte Encoding der Annotation
verwendet.
Anwendungsfall: Manche IBM Viewer legen das verwendete Encoding in der Annotation falsch ab und verwenden ein vordefiniertes Encoding.
-
setEncodingNoteAnnotation(String)
(Default =null
)Setzt das Encoding für die Notiz- / Note-Annotation.
-
setEncodingStampAnnotation(String)
(Default =null
Setzt das Encoding für die Stempel- / Stamp-Annotation.
-
setEncodingTextAnnotation(String)
(Default =null
)Setzt das Encoding für die Text-Annotation.