Laden...

FO.NET (XSL-FO to PDF renderer): Dokumente modularisieren / Include für Dokumente

Erstellt von Blue_Dragon vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.525 Views
B
Blue_Dragon Themenstarter:in
198 Beiträge seit 2005
vor 11 Jahren
FO.NET (XSL-FO to PDF renderer): Dokumente modularisieren / Include für Dokumente

Hallo,

Im Moment schreibe ich an einer Applikation, in welcher am Ende mehrere Dokumente für den Kunden ausgedruckt werden sollen.

Darunter sind unter anderen folgende Dokumente:

-) Haushaltsrechnung
-) Datenschutzerklärung
-) div. Anträge

diese einzelnen Dokumente werden in größeren "Hauptanträgen" eingefügt. So wird zum Beispiel ein Dokument "Konzept" erzeugt, in welchem z.B. die Haushaltsrechnung eingefügt werden.

Im Moment wurde das Markup für die Haushaltsrechnung per Hand in das Konzept kopiert. Und beider jeder Änderung müssen beide Dokumente bearbeitet werden.

Kennt jemand von euch einen guten Weg dies zu "modularisieren" und ein include in den Dokumenten oder ähnliches zu machen?

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Blue_Dragon,

ich verstehe nicht genau was du meinst. Meinst du mit "Einfügen" bzw. "Kopieren" im fertigen PDF od. im XSL-FO?

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

B
Blue_Dragon Themenstarter:in
198 Beiträge seit 2005
vor 11 Jahren

Hallo,

Ich meine das Einfügen im XSL-FO. Da beispielsweise die Seitennummern korrekt mitgezählt werden müssen, kann ich leidernicht beide Dokumente als PDF generieren und dann zu einem PDF mergen. Zumindest ist mir keine Möglichkeit bekannt.

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Blue_Dragon,

ich gehe mal davon aus, dass der Ausgang XML-Dateien sind. So wird es wohl am einfachsten sein, ein neues XML für den Hauptantrag zu erstellen, indem alle Teil-XML zusammengeführt werden (z.B. per XDocument von Linq2Xml).

Aus den Stylesheets müssen dann auch die Templates für den Inhalt in eigene Stylesheet-Fragmente extrahiert werden, damit diese universeller einsetzbar werden. Die Fragmente können per <xsl:include> importiert werden.

Erklärt am Beispiel von "Konzept" und "Haushaltsrechnung":
Haushaltsrechnung.xml -> Haushaltsrechnung.xslt (inkludiert Haushaltsrechnung.Inhalt.xslt) -> XSL-FO Prozessor -> Haushaltsrechnung.pdf

Konzept.xml (darin ist Haushaltsrechnung.xml eingebaut) -> Konzept.xslt (inkludiert Haushaltsrechnung.Inhalt.xslt) -> XSL-FO Prozessor -> Konzept.pdf

Wobei hier Haushaltsrechnung.Inhalt.xsl nur die Templates beinhalten die von <xsl:apply-templates /> aufgerufen werden sollen. Die ganze Aufmachung der Seite (<fo:simple-page-master ..., etc.) ist dann entweder in Haushaltsrechnung.xslt od. Konzept.xslt zu finden.

kann ich leidernicht beide Dokumente als PDF generieren und dann zu einem PDF mergen. Zumindest ist mir keine Möglichkeit bekannt.

Ich bin mir nicht sicher, aber mit iTextSharp u.Co. sollten sich die Seitennummern auch anpassen lassen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

B
Blue_Dragon Themenstarter:in
198 Beiträge seit 2005
vor 11 Jahren

Hallo,

Der Ansatz klingt sehr gut! Großes Danke, ich werde dass wohl so umsetzen!

Ob das mit ITextSharp geht werde ich mir ansehen =)