ahstax
Goto Top

HTML (aus Filesystem) to PDF mit itextsharp in vb.net

Hallo miteinander,

ich versuche, mit iTextSharp (V 5.4.4.0) eine HTML-Datei, die im Dateisystem gespeichert ist, in ein PDF umzuwandeln. Nachfolgenden Code habe ich gefunden und "angepasst"

Public Sub AttachmentHTMLToPDF(ByVal strAttHTMLPfadMDateiname As String, ByVal AttFilename As String)

'Quelle:  
'http://www.mindfiresolutions.com/HTML-to-PDF-conversion-using-iTextsharp-1088.php  

' Read html file to a string  
  Using sr As StreamReader = New StreamReader(strAttHTMLPfadMDateiname)
    Dim line As String = sr.ReadToEnd

    ' Code to convert to pdf  
    Using doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, _
                                                          singLinkerRand, singRechterRand, _
                                                          singObererRand, singUntererRand)
      Using fs As New FileStream(AttFilename, FileMode.Create)
        PdfWriter.GetInstance(doc, fs)
          Using stringReader As New StringReader(line)

            Try

              Dim parsedList As System.Collections.Generic.List(Of IElement) = _
                               html.simpleparser.HTMLWorker.ParseToList(stringReader, Nothing)

              doc.Open()
              ' parse each html object and add it to the pdf document  
              For Each item As Object In parsedList
                doc.Add(DirectCast(item, IElement))
              Next
              doc.Close()

            Catch ex As Exception

              MsgBox(ex.Message)
              doc.Close()

            End Try

          End Using
        End Using
      End Using
    End Using
End Sub

In der Zeile
Dim parsedList As System.Collections.Generic.List(Of IElement) = _
                               html.simpleparser.HTMLWorker.ParseToList(stringReader, Nothing)
wird ein eine Exception ausgelöst mit folgendem Inhalt:
"Unbekanntes URI-Präfix."

Es scheint also, als ob der Code nicht dazu geeignet ist, HTML-Files aus dem Windows-Filesystem zu bearbeiten.

Hat jemand einen Rat, wie ich mit iTextSharp doch HTML-Files aus einem Windows-Filesystem in PDFs umwandeln kann?

Neugierige Grüße,
Andreas

Content-Key: 253641

Url: https://administrator.de/contentid/253641

Printed on: April 26, 2024 at 17:04 o'clock

Member: colinardo
colinardo Nov 04, 2014 updated at 13:22:34 (UTC)
Goto Top
Hallo Andreas,
der HTMLWorker wird laut Aussagen im Netz schon länger nicht mehr aktualisiert und unterstützt z.B. nur Inline CSS und keine separaten CSS-Abschnitte, so dass es dann zu solchen Exceptions wie der deinen kommt.
Es gibt hier als Alternative den XMLWorker der das etwas besser im Griff hat. Die Antwort in folgendem Thread beschreibt die diversen Fallstricke beim Thema HTML-zu-PDF ziemlich gut:
http://stackoverflow.com/questions/25164257/how-to-convert-html-to-pdf- ...

Grüße Uwe
Member: ahstax
ahstax Nov 06, 2014 at 07:45:09 (UTC)
Goto Top
Hallo Uwe,

Danke für den Hinweis.
Meine Beobachtung bis jetzt: es scheint das Konvertieren einer HTML-Datei in eine PDF-Datei nicht ganz so einfach zu sein, wie ich hoffte.

Kennst Du/Kennt jemand einen einfacheren (zuverlässiger, erprobter...) Weg ohne iTextSharp, HTML-Dateien in PDFs umzuwandeln?

Neugierige Grüße,
Andreas