XML in PDF umwandeln

Status
Nicht offen für weitere Antworten.

st*ex

Mitglied
Hallo ich habe eine Java-Anwendung geschrieben die eine
XML-Datei in eine PDF-Datei umwandelt. Nun habe ich folgendes Problem: Beim
Ausführen der Anwendung kommt jedes mal eine java.lang.NullPointerException.
Ich habe mir bereits andere Beiträge angeschaut und das Internet durchsucht, dass
hat mir aber nicht weiterhelfen können.
Kann mir da jemand weiterhelfen?

Hier mein Java-Code:
Code:
Document doc = new Document();

try
{	    
    PdfWriter.getInstance(doc,
      new FileOutputStream("mypdf.pdf"));    

    XmlParser.parse(doc, "datei.xml", "tagmap.xml");
}
catch (Exception e)
{
    System.err.println(e.getMessage());
}


Inhalt von datei.xml:
Code:
<?xml version="1.0"?>
<DOKUMENT>
	<KAPITEL>
		<TITLE>Kapitel</TITLE>
		<NEWLINE/>
		<TEXT>Dieser Text wurde mit <BOLDTEXT>iText </BOLDTEXT> in das PDF-Format konvertiert.</TEXT>
	</KAPITEL>
	<KAPITEL>
		<TITLE>Kapitel</TITLE>
		<NEWLINE/>
		<TEXT>Noch mehr Text ...</TEXT>
	</KAPITEL>
</DOKUMENT>


Inhalt von tagmap.xml
Code:
<tagmap>
	<tag name="paragraph" alias="TEXT">
		<attribute name="leading" value="14"/>
		<attribute name="size" value="10"/>
	</tag>
	<tag name="chunk" alias="BOLDTEXT">
		<attribute name="style" value="bold"/>
	</tag>
	<tag name="itext" alias="DOKUMENT"/>
	<tag name="newline" alias="NEWLINE"/>
	<tag name="title" alias="TITLE">
		<attribute name="size" value="24"/>
	</tag>
	<tag name="chapter" alias="KAPITEL">
		<attribute name="numberdepth" value="2"/>
	</tag>
</tagmap>
 

hupfdule

Top Contributor
Gib doch mal an, wo denn die NullPointerException auftritt. Ich vermute, dass dein File nicht gefunden wird und dein Stream daher leer ist. Das lässt sich durch Debuggen aber sehr leicht selbst heraus finden.
 

st*ex

Mitglied
Also der Fehler tritt bei dieser Anweisung auf:

Code:
XmlParser.parse(doc, "datei.xml", "tagmap.xml");

Ich habe nachgeschaut, die Dateien findet er.
 

st*ex

Mitglied
doc ist bei mir nicht null
XmlParser ist eine Klasse aus dem Java-Package com.lowagie.text.xml.XmlParser und auch nicht null
also ich weiß nicht wo ich noch nachschauen soll
 

CelikBlek

Bekanntes Mitglied
Code:
System.err.println(e.getMessage());
nimm das mal raus und gib stattdessen dies aus.
Code:
e.printStackTrace();
und poste dann mal dein Ergebnis.
mfg
 

st*ex

Mitglied
das bekomme ich als ergebnis:

ExceptionConverter: java.lang.NullPointerException
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:658)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at com.lowagie.text.xml.TagMap.init(TagMap.java:205)
at com.lowagie.text.xml.TagMap.<init>(TagMap.java:187)
at com.lowagie.text.xml.XmlParser.go(XmlParser.java:121)
at com.lowagie.text.xml.XmlParser.parse(XmlParser.java:330)
at com.umwandeln.pdf.PdfCreatorUtils.createPdfFromHtml(PdfCreatorUtils.java:31)
at com.umwandeln.Main.doGet(Main.java:380)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)
 

CelikBlek

Bekanntes Mitglied
Schau dir mal die Stelle genauer an. Da könnte was sein. Ich benutze auch den FOP und lowagie. Hatte bislang keine Probleme damit.
Code:
com.umwandeln.pdf.PdfCreatorUtils.createPdfFromHtml(PdfCreatorUtils.java:31)
 

st*ex

Mitglied
habe noch einen anderen lösungsweg für
mein problem gefunden
werde ihn posten wenn ich ihn fertig ausprobiert habe
 

st*ex

Mitglied
habe jetzt eine funktionierende Lösung für mein problem
schreibe mal kurz die schritte auf die ich mache da der Code der Anwendung viel zu lang zum posten ist:

- Auslesen der Daten in der XML-Datei in Arrays
- Tabllen für die Darstellung im PDF-Dokument erzeugen
- Daten in die Tablen schreiben
- Dokument erzeugen
- Tabellen in das PDF-Dokument schreiben
- fertig


folgende Seite hat mir dabei geholfen: www.lowagie.com/iText/tutorial/
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben