In der Api.Html
sind hilfreiche Methoden für den Umgang mit HTML-Strings
HtmlToPlainText
Die Methode extrahiert aus einem HTML nur den Text. Das Verhalten ist ähnlich zu Exchange, wenn es eine Mail sendet und den Inhalt auch als Plain-Text erzeugt, falls der Empfänger kein HTML kann oder aktiviert hat.
Es werden unterstützt:
- Absätze jeglicher Art -> Zeilenumbruch
- `
` -> Zeilenumbruch - Aufzählungen -> `* …`
- HTML Entities (`ö` etc.)
Skripte und CSS-Stile werden entfernt.
PlainTextToHtml
Wandelt einen nicht-HTML Text in HTML um. Dabei werden:
- Zeilenumbrüche zu `
`, - aufeinanderfolgende Leerzeichen zu `&bnsp; ` und
- Sonderzeichen zu HTML Entitäten. (Kein XSS möglich)
CleanHtml
HTML aufräumen, neu formatieren und nur den Body extrahieren. (für HTML-Spalten)
HtmlEquals
Zwei HTML Inhalte semantisch vergleichen. Die Funktion liefert im Gegensatz zum String-Vergleich auch dann true, wenn der HTML-Inhalt gleich aussieht, z.B.: falls sich die HTML Inhalte nur in der Formatierung oder den Header-Informationen unterscheiden. Das funktioniert auch bei augescheinlich stark unterschiedlichen Fragmenten, aber eine 100% Garantie gibt es natürlich nicht. False negatives sind aber nicht zu erwarten.
Funktionen für Inline-Images
Alle diese Funktionen liefern den übergebenen String unverändert zurück, falls er nicht zu ihrem Verwendungszweck passt. Dadurch können mehrere Konverter nacheinander aufgerufen werden.
Beispiel:
html = Api.Html.VisitHtmlInlineTags(html,
tag => Api.Html.VisitImgSrc(tag,
src => Api.Html.InlineAttachmentToBase64Image(src)));
VisitHtmlInlineTags
Durchsucht HTML Text nach Tags mit möglichem Inline-Content und ruft Visitor-Funktion auf, die diesen auch verändern kann.VisitImgSrc
Ruft für img-Tags Visitor für dessen src-Attribut auf, der dieses auch verändern kann.
Gedacht für die Benutzung inVisitHtmlInlineTags
.Base64ImageToInlineAttachment
Konvertiert Inline-Image-URL mit Base64 Inhalt inOrmAttachment
, das per Content-ID (“cid:…”) über dessen OID referenziert wird.
Gedacht für die Benutzung inVisitImgSrc
.InlineAttachmentToBase64Image
Konvertiert Inline-Image-URL mit Content-ID in ein Base64 Inline-Image, dass keine externen Daten benötigt.
Vorsicht, das kann riesige Datenmengen erzeugen!
Gedacht für die Benutzung inVisitImgSrc
.ConvertInlineAttachmentsToDownloadUrl
Konvertiert alle Inline-Attachment-URLs zu Download-URLs auf die aktuelle Anwendungsinstanz, die im Browser als img src funktionieren.
Der Benutzer benötigt Leserechte, um die Download-URLs aufzulösen. Daher ist das weder für die langfristige Speicherung noch für die Weitergabe geeignet.ConvertInlineAttachmentsToContentId
Konvertiert alle Inline-Attachments-URLs zu Content-ID URLs. Diese funktionieren nur innerhalb von MIME-Nachrichten, und auch nur wenn die Dabei verwendeten Attachments auch in der MIME-Message hinzugefügt werden. Die Funktion liefert optional auch die erforderlichen Attachments.ConvertContentIdToInlineAttachment
Konvertiert alle Content-ID URLs zu internen Inline-Attachment URLs. Dies ist erforderlich, wenn HTML mit Inline Content von externen MIME Quellen importiert wird.