Laden von ContentManager (CM) Annotationen

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 den CMAnnotationWriterSettings 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.

[jadice document platform Version 5.5.12.1: Dokumentation für Entwickler. Veröffentlicht: 2021-08-17]