Wie kann ich die Anzeige einer PDF-Datei mit der PdfSharp in ASP.Net MVC?

Machen wir einen ASP.Net MVC-app muss in der Lage sein zum generieren eines PDF-und Sie auf dem Bildschirm anzuzeigen oder speichern Sie es irgendwo leicht für den Benutzer zugänglich. Wir sind mit PdfSharp um das Dokument zu erstellen. Sobald es fertig ist, wie tun wir, damit der Benutzer das Dokument speichern oder öffnen Sie es in einem reader? Ich bin vor allem verwirrt, weil sich das PDF-Dokument auf der Serverseite generiert, aber wir wollen es zu zeigen, bis auf client-Seite.


Ist hier das MVC-controller zu erstellen, der Bericht, den wir bisher geschrieben haben:

public class ReportController : ApiController
{
    private static readonly string filename = "report.pdf";

    [HttpGet]
    public void GenerateReport()
    {
        ReportPdfInput input = new ReportPdfInput()
        {
            //Empty for now
        };

        var manager = new ReportPdfManagerFactory().GetReportPdfManager();
        var documentRenderer = manager.GenerateReport(input);
        documentRenderer.PdfDocument.Save(filename); //Returns a PdfDocumentRenderer
        Process.Start(filename);
    }
}

Wenn diese läuft, bekomme ich eine UnauthorizedAccessException bei documentRenderer.PdfDocument.Save(filename); sagt, Access to the path 'C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0\report.pdf' is denied. ich bin mir auch nicht sicher, was passieren wird, wenn die Linie Process.Start(filename); ausgeführt wird.

Dies ist der code in manager.GenerateReport(input):

public class ReportPdfManager : IReportPdfManager
{
    public PdfDocumentRenderer GenerateReport(ReportPdfInput input)
    {
        var document = CreateDocument(input);
        var renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always);
        renderer.Document = document;
        renderer.RenderDocument();

        return renderer;
    }

    private Document CreateDocument(ReportPdfInput input)
    {
        //Put content into the document
    }
}
InformationsquelleAutor Kevin | 2013-02-27
Schreibe einen Kommentar