Ich habe eine Liste der PDF als list<byte[]>
gespeichert. Ich versuche, alle diese PDF-Dateien mit PDFsharp zu verketten, aber nach meiner Operation bekomme ich ein PDF mit der richtigen Seitenzahl, aber alle Seiten sind leer. Sieht so aus, als ob ich einen Header oder etwas verloren habe, aber ich kann nicht finden wo.Verknüpfen von PDF mit PDFsharp gibt leere PDF
Mein Code:
PdfDocument output = new PdfDocument();
try
{
foreach (var report in reports)
{
using (MemoryStream stream = new MemoryStream(report))
{
PdfDocument input = PdfReader.Open(stream, PdfDocumentOpenMode.Import);
foreach (PdfPage page in input.Pages)
{
output.AddPage(page);
}
}
}
if (output.Pages.Count <= 0)
{
throw new Exception("Empty Document");
}
MemoryStream final = new MemoryStream();
output.Save(final);
output.Close();
return final.ToArray();
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
ich es als byte[]
zurückkehren wollen, weil ich sie später zu verwenden:
return File(report, System.Net.Mime.MediaTypeNames.Application.Octet, "test.pdf");
Das gibt PDF mit der richtigen Seitenzahl, aber alle leer.
Funktioniert output.Save (Dateiname); Arbeit? –
Erhalten Sie eine korrekte Datei, wenn Sie in einer Datei speichern? Wenn nicht, dann gibt es vielleicht ein Problem mit den importierten PDF-Dateien. Wenn ja, könnte das Problem mit dem von Ihnen verwendeten MemoryStream sein (es wird zweimal geschlossen, bevor Sie ToArray aufrufen - und ohne Debugger kann ich nicht sagen, ob das ein Problem ist). Ohne MCVE werde ich nicht versuchen, dein Problem zu beheben. –
Wenn ich nur eine der PDF-Dateien ohne PDFSharp zurückschicke funktioniert es einwandfrei. Wenn ich PDFSharp verwende, um 6 pdf mit einer Seite zu verketten, bekomme ich 1 pdf mit 6 Seiten als Ergebnis, aber alle Seiten sind leer. – Aht