Das vorhergehende Kapitel zur Fluent Reader API beschreibt
ausführlich, wie mehrere InputStream
s in die Ebenen einer Seite
zusammengefasst werden können. Die Reader API bietet dazu die Möglichkeit
ein Layer-Mapping zu verwenden. Das Layer-Mapping wird definiert über eine
Map<DocumentLayer, DocumentLayer>
, die auf dem Reader
registriert wird und eine 1:1-Zuordnung von Quellebenen zu Zielebenen festlegt. Das Ergebnis
des folgenden Beispiels entspricht dem Screenshot aus dem Fluent Reader Kapitel (Screenshot).
Reader reader = new Reader(); reader.read(getContentInputStream()); // Dokument in Standard Dokument-Ebene laden reader.setTargetIndex(0);// target index zurücksetzen, um auf eine // andere Ebene der Seite zu laden Map<DocumentLayer, DocumentLayer> layerMapping = new HashMap<DocumentLayer, DocumentLayer>(); reader.setLayerMapping(layerMapping); // ein leeres Layer Mapping erstellen // und am Reader registrieren layerMapping.put(DocumentLayer.DEFAULT, DocumentLayer.ANNOTATIONS); // Annotationen in Annotationsebene abbilden reader.read(getAnnoInputStream()); // Laden der Annotationen layerMapping.put(DocumentLayer.DEFAULT, DocumentLayer.FORM); // Watermark in FORM-Ebene abbliden reader.read(getWatermarkInputStream()); // Watermark laden layerMapping.put(DocumentLayer.DEFAULT, DocumentLayer.BACKGROUND); // Hintergrunddaten in Hintergrundebene abbilden reader.read(getBackgroundInputStream()); // Hintergrund laden Document doc = reader.getDocument();