Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

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

Frage Entwicklung Visual Studio

Mitglied: ahstax

ahstax (Level 2) - Jetzt verbinden

03.11.2014 um 09:07 Uhr, 1483 Aufrufe, 2 Kommentare, 1 Danke

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"

01.
Public Sub AttachmentHTMLToPDF(ByVal strAttHTMLPfadMDateiname As String, ByVal AttFilename As String) 
02.
 
03.
'Quelle: 
04.
'http://www.mindfiresolutions.com/HTML-to-PDF-conversion-using-iTextsharp-1088.php 
05.
 
06.
' Read html file to a string 
07.
  Using sr As StreamReader = New StreamReader(strAttHTMLPfadMDateiname) 
08.
    Dim line As String = sr.ReadToEnd 
09.
 
10.
    ' Code to convert to pdf 
11.
    Using doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, _ 
12.
                                                          singLinkerRand, singRechterRand, _ 
13.
                                                          singObererRand, singUntererRand) 
14.
      Using fs As New FileStream(AttFilename, FileMode.Create) 
15.
        PdfWriter.GetInstance(doc, fs) 
16.
          Using stringReader As New StringReader(line) 
17.
 
18.
            Try 
19.
 
20.
              Dim parsedList As System.Collections.Generic.List(Of IElement) = _ 
21.
                               html.simpleparser.HTMLWorker.ParseToList(stringReader, Nothing) 
22.
 
23.
              doc.Open() 
24.
              ' parse each html object and add it to the pdf document 
25.
              For Each item As Object In parsedList 
26.
                doc.Add(DirectCast(item, IElement)) 
27.
              Next 
28.
              doc.Close() 
29.
 
30.
            Catch ex As Exception 
31.
 
32.
              MsgBox(ex.Message) 
33.
              doc.Close() 
34.
 
35.
            End Try 
36.
 
37.
          End Using 
38.
        End Using 
39.
      End Using 
40.
    End Using 
41.
End Sub
In der Zeile
01.
Dim parsedList As System.Collections.Generic.List(Of IElement) = _ 
02.
                               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

Mitglied: colinardo
04.11.2014, aktualisiert um 14:22 Uhr
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
Bitte warten ..
Mitglied: ahstax
06.11.2014 um 08:45 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Visual Studio
gelöst VB.Net - Problem mit Umleitung der Standard-Ausgabe (4)

Frage von emeriks zum Thema Visual Studio ...

Visual Studio
gelöst Vb.net Pfadangabe mit Wildcards wie Stern Regex Pattern (2)

Frage von Pilger83 zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...