ok

alphons <alphons@heijden.com> 23 Feb 2025, 16:37
f0fe8ef3ae7307ff3721ac75a8f3e1e656202cbf
3 files changed
  • Eml2MimePart/MimePart.cs
  • Eml2PdfWinApp/Form1.Designer.cs
  • MimePart2Pdf/PdfHelper.cs
diff --git a/Eml2MimePart/MimePart.cs b/Eml2MimePart/MimePart.cs
index 0eaad93..f1572cf 100644
--- a/Eml2MimePart/MimePart.cs
+++ b/Eml2MimePart/MimePart.cs
@@ -1,4 +1,4 @@
-using System.Net.Mail;
+
using System.Text;
namespace Eml2MimePart;
@@ -29,14 +29,13 @@ public class MimePart(string[] lines)
if (s > 0)
{
var name = line[..s];
- var decodedValue = Helpers.DecodeMimeEncodedWord(line[(s + 1)..].Trim());
- var value = new StringBuilder(decodedValue);
+ var value = new StringBuilder(line[(s + 1)..].Trim());
// NB: Laatste regel wordt genegeerd als deze exact op 'stop' valt, wat bij MIME-headers zeldzaam is.
while (i < _stop - 1 && RegexHelper.IsValue.IsMatch(_lines[i + 1]))
{
value.Append(_lines[++i]);
}
- result.Add((name, value.ToString()));
+ result.Add((name, Helpers.DecodeMimeEncodedWord(value.ToString())));
}
}
return result;
diff --git a/Eml2PdfWinApp/Form1.Designer.cs b/Eml2PdfWinApp/Form1.Designer.cs
index 5059b13..8fc9aa3 100644
--- a/Eml2PdfWinApp/Form1.Designer.cs
+++ b/Eml2PdfWinApp/Form1.Designer.cs
@@ -92,8 +92,10 @@
Controls.Add(button1);
Controls.Add(textBox2);
Controls.Add(textBox1);
+ FormBorderStyle = FormBorderStyle.Fixed3D;
+ MaximizeBox = false;
Name = "Form1";
- Text = "Form1";
+ Text = "Eml workbench - Annet Zwanenburg";
ResumeLayout(false);
PerformLayout();
}
diff --git a/MimePart2Pdf/PdfHelper.cs b/MimePart2Pdf/PdfHelper.cs
index 24442f3..94c7801 100644
--- a/MimePart2Pdf/PdfHelper.cs
+++ b/MimePart2Pdf/PdfHelper.cs
@@ -1,5 +1,6 @@
using Eml2MimePart;
using PdfSharp.Pdf;
+using System.Reflection.PortableExecutable;
using System.Text;
using TheArtOfDev.HtmlRenderer.PdfSharp;
@@ -36,6 +37,8 @@ public class PdfHelper
public static void CreatePdf(MimePart email, string pdfPath)
{
+ bool UseTable = false;
+
var html = GetHtml(email);
if (string.IsNullOrWhiteSpace(html))
@@ -47,18 +50,37 @@ public class PdfHelper
int eindIndex = html.IndexOf('>', index);
if (eindIndex != -1)
{
- var htmlTable = new StringBuilder(Environment.NewLine);
- htmlTable.AppendLine("<table border='1' style='width: 100%; border-collapse: collapse; margin-bottom: 20px;'>");
- string[] importantHeaders = ["From", "Subject", "To", "Date"];
- foreach (var header in importantHeaders)
+ var htmlHeader = new StringBuilder(Environment.NewLine);
+ if (UseTable)
+ {
+ htmlHeader.AppendLine("<table border='1' style='width: 100%; border-collapse: collapse; margin-bottom: 20px;'>");
+ string[] importantHeaders = ["From", "Subject", "To", "Date"];
+ foreach (var header in importantHeaders)
+ {
+ htmlHeader.AppendLine("<tr>");
+ htmlHeader.AppendLine($"<td style='padding: 5px; width:60px'>{header}</td>");
+ htmlHeader.AppendLine($"<td style='padding: 5px;'>{HtmlEscape(email[header])}</td>");
+ htmlHeader.AppendLine("</tr>");
+ }
+ htmlHeader.Append("</table>");
+ }
+ else
{
- htmlTable.AppendLine("<tr>");
- htmlTable.AppendLine($"<td style='padding: 5px; width:60px'>{header}</td>");
- htmlTable.AppendLine($"<td style='padding: 5px;'>{HtmlEscape(email[header])}</td>");
- htmlTable.AppendLine("</tr>");
+ htmlHeader.AppendLine($"<div><b>Van:</b> {HtmlEscape(email["From"])}</div>");
+ htmlHeader.AppendLine($"<div><b>Verzonden:</b> {HtmlEscape(email["Date"])}</div>");
+ htmlHeader.AppendLine($"<div><b>Aan:</b> {HtmlEscape(email["To"])}</div>");
+ var cc = email["CC"];
+ if(!string.IsNullOrWhiteSpace(cc))
+ htmlHeader.AppendLine($"<div><b>Cc:</b> {HtmlEscape(cc)}</div>");
+ htmlHeader.AppendLine($"<div><b>Onderwerp:</b> {HtmlEscape(email["Subject"])}</div>");
+ var priority = email["Priority"];
+ if (!string.IsNullOrWhiteSpace(priority))
+ htmlHeader.AppendLine($"<div><b>Urgentie:</b> {HtmlEscape(priority)}</div>");
+ htmlHeader.AppendLine("<div>&nbsp;</div>");
}
- htmlTable.Append("</table>");
- html = html.Insert(eindIndex + 1, htmlTable.ToString());
+
+
+ html = html.Insert(eindIndex + 1, htmlHeader.ToString());
}
}