iTextSharp erstellt PDF mit leeren Seiten
Ich habe gerade das iTextSharp XMLWorker-Nuget-Paket (und seine Abhängigkeiten) zu meinem Projekt hinzugefügt und versuche, den HTML-Code von einer Zeichenfolge in eine PDF-Datei zu konvertieren, obwohl keine Ausnahmen ausgelöst werden. Die PDF-Datei wird generiert mit zwei leeren Seiten. Warum
Die vorherige Version des Codes verwendete nur iTextSharp 5.5.8.0 mit der HTMLWorker- und ParseList-Methode, dann wechselte ich zu
Hier ist der Code, den ich verwende:
public void ExportToPdf() {
string htmlString = "";
Document document = new Document(PageSize.A4, 40, 40, 40, 40);
var memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();
htmlString = sbBodyMail.ToString();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, new StringReader(htmlString));
document.Close();
DownloadFile(memoryStream);
}
public void DownloadFile(MemoryStream memoryStream) {
//Clears all content output from Buffer Stream
Response.ClearContent();
//Clears all headers from Buffer Stream
Response.ClearHeaders();
//Adds an HTTP header to the output stream
Response.AddHeader("Content-Disposition", "attachment;filename=Report_Diagnosis.pdf");
//Gets or Sets the HTTP MIME type of the output stream
Response.ContentType = "application/pdf";
//Writes the content of the specified file directory to an HTTP response output stream as a file block
Response.BinaryWrite(memoryStream.ToArray());
//Response.Write(doc);
//sends all currently buffered output to the client
Response.Flush();
//Clears all content output from Buffer Stream
Response.Clear();
}
Wenn ich platzieredocument.Add(new Paragraph("Just a test"));
kurz bevordocument.Close();
Der Absatz wird auf der zweiten Seite gerendert, der Rest des Dokuments ist jedoch noch leer.
Ich habe den HTML-Code im @ geändehtmlString
Variable auf nur einDIV
und einTABLE
und es hat funktioniert. Nun stellt sich die Frage: Woher weiß ich, welcher Teil des HTML-Codes Fehler im XMLWorker verursacht?