Ich verwende iTextSharp v.4, um eine ganze Reihe von HTML-Dateien zusammenzuführen. Es funktionierte gut, bis ich auf v.5 von iTextSharp aktualisieren musste.
Das Problem tritt auf, wenn ich einen Streamreader (den Inhalt der HTML-Datei lesend) an die ParseToList-Methode des HTMLWorker-Objekts übergebe. Es wird eine Nullreferenzausnahme ausgelöst. Beim Debuggen kann ich auf den streamReader zugreifen und kann bestätigen, dass der korrekte Inhalt der Datei gelesen wird.
Hier ist der Code:
%Vor%Im catch-Block sehen Sie, dass ich dann praktisch den gleichen Code verwende, um der PDF-Datei Text hinzuzufügen, um zu sagen, dass ein Problem aufgetreten ist. Dieser Code funktioniert gut. Das lässt mich natürlich denken, dass das Problem im Inhalt der ursprünglichen html-Zeichenfolge liegt, also hier der Inhalt der Zeichenfolge, wie sie unmittelbar vor dem Übergeben in den Parser ist:
%Vor%Danke für jede Hilfe. hofnarwillie
Es sieht so aus, als ob HTMLWorker
auf den zwei <hr width="100%" />
erstickt. Da Sie gesagt haben, dass Sie auf V5.XX upgraden, könnte es auch gut sein, mit XMLWorker zu beginnen Parsen Ihres HTML - das Entwicklerteam empfiehlt es. (Der letzte HTMLWorker
Quellcode hat sogar eine kleine Referenz, die darauf hinweist)
Getestet mit Ihrem erweiterten HTML, es funktioniert, und ist nicht zu schlecht zu implementieren:)
%Vor% Getestet in einer Web-Umgebung, ersetzen Sie also Response.OutputStream
durch das Stream
Ihrer Wahl.