Konvertieren von xml - /html-Tabelle in pdf via xsl-fo
Arbeite ich an ein xslt und xsl-fo-code zu konvertieren, um html-und pdf-bzw..
In meinem Ausgangs-xml ich habe eine Tabelle die ich kopieren kann direkt für die html-Ausgabe.
<text>
<table border='1'>
<thead>
<tr><th>Problem</th><th>Date</th><th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cholecystitis</td><td>9/28/2002 - 6/2003</td>
<td>Resolved</td>
<td>Surgery postponed until after delivery</td>
</tr>
<tr>
<td>Pregnancy</td><td>7/2001 - 4/22/2002</td>
<td>Resolved</td>
<td>Prior history of miscarraige</td>
</tr>
<tr><td>Ankle Sprain</td><td>3/28/2005</td>
<td>Current</td>
<td>Slipped on ice and fell</td>
</tr>
</tbody>
</table>
</text>
Benutze ich nur das kopieren der Inhalte für die Knoten:
<xsl:copy-of select="."/>
Ich nehme an, das funktioniert für die xslt-Konvertierung zu html, weil der browser interpretieren kann dieser direkt. Aber für meine pdf-ich nehme an, ich habe mit xsl-fo ist das völlig anders. Ich weiß, in xsl-fo die ich habe zu verwenden:
<fo:table>
Aber, ist es eine "standard" - format in dieser Tabelle werden in der Lage, um es für meine pdf-Erzeugung? Das xsl:copy für die pdf-Datei erzeugt eine einzelne Linie mit allen, die ausgezogen Werte, aber keine Tabelle.
Danke!
=====================================
BEARBEITEN
Was ich versuche zu tun ist, um code-einige xslt zu "analysieren" die Tabelle eingebettet sind, in meinem Ausgangs-xml-Dateien zu generieren, so etwas wie dieses:
<fo:table table-layout="fixed" width="100%">
<fo:table-column column-width="25mm"/>
<fo:table-column column-width="25mm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>
something
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>
something
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
Ist es der Weg zu gehen?! Tabellen sind ziemlich standard, ich dachte, html-Tabelle könnte leicht umgestaltet werden, um die xslt/xsl-fo.
Es sieht aus wie eine einfache transformation
table -> fo:table
, tbody -> fo:table-body
, tr -> fo:table-row
und td -> fo:table-cell
. Was haben Sie bisher getan?gut, ich erstellte eine xslt-code zum konvertieren von html-table-tags xsl-fo.
Warum XSL-FO? Kennen Sie "CSS+XHTML zu PDF" - Technologien? Siehe Warum die Verwendung von XSL-FO statt CSS2, für die Transformation von HTML in guten PDF? Frage und Antworten.
InformationsquelleAutor code-gijoe | 2011-02-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
So,
Mein problem zu lösen, fand ich eine IBM-Artikel, die erklären, genau das, was ich versuche zu tun:
"HTML Formatting Objects (FO) conversion guide"
http://www.ibm.com/developerworks/library/x-xslfo2app/#table
Es ist ziemlich einfach, aber Sie müssen erlebt werden, um diese abziehen... ich bin nicht so, danke IBM.
InformationsquelleAutor code-gijoe
Sind Sie auf dem richtigen Weg. Ja, Sie haben zum konvertieren der HTML-Elemente in XSL-FO-Elemente. Das XSL-FO-engines gelesen, XSL-FO, um zu wissen, wie Sie es machen, also nur das kopieren von HTML-Elementen(gebunden an eine HTML-namespace oder ohne namespace) in eine XSL-FO-Datei wird nicht funktionieren.
Werfen Sie einen Blick auf HTML2FO. Es könnte kümmern sich um die meisten Ihrer Bedürfnisse.
InformationsquelleAutor Mads Hansen