2015-02-06 52 views
1

在我的控制器中,我呈現一個視圖。如何將mvc視圖保存爲文件並打印相同的文件?

我的行動方法是這樣的:

public ActionResult SomePrint(Model model) 
{ 
    //Some business action 
    return View("viewname",model); 
} 

現在,我的要求是保存這個視圖文件(可能是PDF文件)在我的解決方案,並把它打印並刪除該文件一旦打印是完成。

儘量選用Rotativa並按照

public ActionResult DownloadViewPDF() 
{ 
    var model = new GeneratePDFModel(); 
    //Code to get content 
    return new Rotativa.ViewAsPdf("GeneratePDF", model){FileName = "TestViewAsPdf.pdf"} 
} 

轉換爲PDF格式,但我需要它,將其保存爲PDF和打印相同。

任何幫助?提前致謝。

+0

你不能這樣做。你可以發送一個文件下載到瀏覽器,並希望用戶打印它,或發送一個HTML文檔,通過JavaScript顯示打印對話框。 _On_該HTML文檔,您可以在iframe中顯示PDF文件。 – CodeCaster 2015-02-06 15:30:12

回答

0

如果您一直在請求導出到已知的可轉換類型(如Excel),則格式化該流就足夠了。但是,如果您想導出爲PDF,則應該創建另一個視圖來導出文件並使用第三方應用程序(如iText)。

0

您可以在ViewAsPdf上使用BuildPdf方法。

public ActionResult DownloadViewPDF() 
    { 
     var model = new GeneratePDFModel(); 
     var pdfResult = new ViewAsPdf("GeneratePDF", model) 
          { FileName = "TestViewAsPdf.pdf" }; 

     var binary = pdfResult.BuildPdf(this.ControllerContext); 

     // you can save the binary pdf now 

     return File(binary, "application/pdf"); 
    } 
+0

什麼是GeneratePDF在這裏? – Santosh 2015-02-13 14:08:41

+0

@Santosh這是觀點。我複製了你的代碼。 – 2015-02-13 17:15:28

+0

@Santosh這應該是被接受的答案。我正在處理與您的場景非常相似的內容。一旦文件被返回,您可以保存或打印它或不做任何事情。 – Ju66ernaut 2015-02-25 21:00:26

相關問題