Zusammenführungsquelle und Zusammenführungsziel
Die Objekte "Zusammenführungsquelle" und "Zusammenführungsziel" gehören zusammen. Mit Hilfe einer Zusammenführungsquelle können Sie ein Fragment aus der aktuellen Seite ausschneiden. Sie können mehrere Zusammenführungsquellen erstellen und diese in einem einzigen Zusammenführungsziel, in dem die gesammelten Fragmente aus verschiedenen Seiten als einzige Gruppe von Seiten behandelt werden, miteinander verbinden. Im Zusammenführungsziel werden die Fragmente in der Reihenfolge, in der sie hinzugefügt wurden, verarbeitet.
Die Kombination von Zusammenführungsquellen und -zielen eignet sich vor allem dann, wenn Daten auf einer Seite gut strukturiert voneinander getrennt sind. In Fällen, in denen eine Zeile auf einer Seite beginnt und sich auf der nächsten Seite fortsetzt, wird allerdings empfohlen, eine Collage zu verwenden.
Informationen dazu, wie Sie Objekte zur Modellstruktur hinzufügen, finden Sie unter Einfügen eines Objekts.
Eigenschaften im Eigenschaftsfenster
Das Objekt "Zusammenführungsquelle" hat im Eigenschaftsfenster zwei Eigenschaften: Region und Zusammenführungsziel. Die Eigenschaft Region bezieht sich auf die Position einer Zusammenführungsquelle auf der Seite. Nähere Informationen dazu finden Sie unter Teilen unter der Eigenschaft "Region". Die Eigenschaft "Zusammenführungsziel" bezieht sich auf den Namen eines Zusammenführungsziel-Objekts, in dem die relevanten Zusammenführungsquellen in einer Gruppe zusammengefasst werden. Beachten Sie, dass die Werte des Zusammenführungsziel-Parameters aller Zusammenführungsquellen, die zu einem Zusammenführungsziel verbunden werden sollen, und der Name des dazugehörigen Zusammenführungsziels (die Eigenschaft Name) identisch sein müssen. Andernfalls können diese Zusammenführungsquellen nicht im Zusammenführungsziel zusammengefasst werden.
Beispiel
In diesem Beispiel wird gezeigt, wie Sie Zusammenführungsquell- und Zusammenführungsziel-Objekte verwenden. Das PDF-Dokument aus dem die Daten extrahiert werden sollen, heißt BookCatalog.pdf. Das Dokument hat zwei Seiten (Abbildungen unten) mit jeweils etwas unterschiedlichen Layouts. Seite 1 enthält eine Überschrift, eine Tabelle und eine Fußzeile. Die Tabelle geht auf Seite 2 weiter. Auch hier gibt es eine Fußzeile.
Aufgabenstellung
In diesem Beispiel soll Folgendes erreicht werden:
•Extraktion des Firmennamens
•Extraktion aller Daten aus dern Tabelle auf beiden Seiten
•Extraktion der Fußzeile und der Überschriftszeile aus der Tabelle, bevor sie verarbeitet wird
Implementierung
Zu diesem Zweck haben wir die folgende Modellstruktur erstellt:
![PDFEX_BookCatalogMergeTarget](./images/pdfex_bookcatalogmergetarget.png)
Unter dem Root-Element mit dem Namen BookCatalog befindet sich ein Gruppieren/Filtern-Objekt, das das nur Objekte auf der ersten Seite des PDF-Dokuments verarbeitet (Gruppen auswählen ist auf 1 gesetzt). Das Gruppieren/Filtern-Objekt enthält zwei Texterfassungen: Company (der Firmenname im oberen Bereich des PDF-Dokuments) und CatalogYear (Abbildung unten).
![PDFEX_BookCatalogCompany](./images/pdfex_bookcatalogcompany.png)
![PDFEX_BookCatalogYear](./images/pdfex_bookcatalogyear.png)
Dieses Gruppieren/Filtern-Objekt enthält auch ein Zusammenführungsquell-Objekt, das eine Region hat, die alle Zeilen auf der ersten Seite mit Ausnahme der Überschriftszeile enthält. Unten sehen Sie einen Ausschnitt aus der Region der ersten Zusammenführungsquelle.
![PDFEX_MergeSourceRegion](./images/pdfex_mergesourceregion.png)
Das zweite Gruppieren/Filtern-Objekt verarbeitet die zweite Seite des PDF-Dokuments (Gruppen auswählen ist auf 2 gesetzt) und enthält ebenfalls eine Zusammenführungsquelle. Der Grund dafür, dass zwei separate Gruppen erstellt wurden, ist dass das Layout der Seiten nicht gleich ist. Wir möchten daher ein Stück aus der ersten Seite und ein anderes Stück aus der zweiten Seite ausschneiden. Diese Stücke werden zu Zusammenführungsquellen, die in einem Zusammenführungsziel zusammengeführt und als eine einzige Gruppe verarbeitet werden.
In beiden Gruppieren/Filtern-Objekten sind die Zusammenführungsquellen Child-Elemente des Gruppieren/Filtern-Objekts. Für beide Gruppieren/Filtern-Objekte ist in der Eigenschaft Gruppierungstyp Eine Gruppe pro Seite ausgewählt.
Das Zusammenführungsziel-Objekt führt die Fragmente aus beiden Zusammenführungsquellen zu einer Gruppe zusammen. Nachdem alle Fragmente gesammelt wurden, werden sie zu Zeilen gruppiert (das Gruppieren/Filtern-Objekt mit Texterfassungsobjekten). Jede Zeile enthält Informationen über ein Buch, seinen Autor, die ISBN-Nummer, den Verlag, die Drucklänge, das Jahr, das Genre und den Preis.l Das Gruppieren/Filtern-Objekt ist in das Teilen-Objekt verpackt und enthält das Ergebnis der Aufteilung des Zusammenführungsziels in Datenzeilen.
Ausgabe
Wir sind nun mit der Definition der Extraktionsregeln fertig. Im Ausgabefenster sehen Sie die Struktur, die wir definiert und die Daten, die wir aus dem PDF-Dokument extrahiert haben. Im Codefragement unten sehen Sie einen Auszug aus der Ausgabe.
<BookCatalog>
<Company>Crazy Book Lovers, Inc.</Company>
<CatalogYear>2024</CatalogYear>
<Book>
<Title>Dune (Dune Chronicles, Book 1)</Title>
<Author>Frank Herbert</Author>
<ISBN>0441013597</ISBN>
<Publisher>Penguin Publishing Group</Publisher>
<PrintLength>704</PrintLength>
<Year>2005</Year>
<Genre>Sci-Fi</Genre>
<Price>14.99</Price>
</Book>
<Book>
<Title>Dark Matter</Title>
<Author>Blake Crouch</Author>
<ISBN>9781447297581</ISBN>
<Publisher>Pan Macmillan</Publisher>
<PrintLength>416</PrintLength>
<Year>2017</Year>
<Genre>Sci-Fi</Genre>
<Price>9.99</Price>
</Book>
<Book>
<Title>Nos4a2</Title>
<Author>Joe Hill</Author>
<ISBN>978-1-4732-2641-8</ISBN>
<Publisher>Orion</Publisher>
<PrintLength>704</PrintLength>
<Year>2019</Year>
<Genre>Horror</Genre>
<Price>16.99</Price>
</Book>
<...>
</BookCatalog>