हम एक एएसपी.NET एमवीसी ऐप बना रहे हैं जिसे पीडीएफ उत्पन्न करने और इसे स्क्रीन पर प्रदर्शित करने में सक्षम होना चाहिए या उपयोगकर्ता को एक्सेस करने के लिए इसे कहीं भी आसान बनाना है। हम दस्तावेज उत्पन्न करने के लिए पीडीएफएसआरपी का उपयोग कर रहे हैं। एक बार यह समाप्त हो जाने के बाद, हम उपयोगकर्ता को दस्तावेज़ को सहेजने या इसे पाठक में खोलने के लिए कैसे देते हैं? मैं विशेष रूप से उलझन में हूं क्योंकि पीडीएफ सर्वर-साइड उत्पन्न होता है लेकिन हम चाहते हैं कि यह क्लाइंट-साइड दिखाए।मैं ASP.Net MVC में PdfSharp का उपयोग करके पीडीएफ कैसे प्रदर्शित करूं?
यहाँ रिपोर्ट है कि हम अब तक लिखा है बनाने के लिए MVC नियंत्रक है:
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);
}
}
जब यह चलता है, मैं documentRenderer.PdfDocument.Save(filename);
कि कहते हैं, Access to the path 'C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0\report.pdf' is denied.
में एक UnauthorizedAccessException
मैं भी यकीन नहीं है मिल क्या होगा जब लाइन Process.Start(filename);
निष्पादित की जाएगी।
यह 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
}
}
एक वेब नमूना नहीं है यह दिखाता है कि बाइट सरणी कैसे प्राप्त करें और इसे एमवीसी के बिना उपयोगकर्ता को वापस कर दें। एमवीसी के साथ आपको केवल बाइट सरणी प्राप्त करने के लिए कोड की आवश्यकता है (मेमोरी स्ट्रीम से, कोई फ़ाइल आवश्यक नहीं है)। नमूना: http://www.pdfsharp.net/wiki/Clock-sample.ashx –
नए उपयोगकर्ताओं के लिए, यह थोड़ा उलझन में आता है, तो क्या आप (निकएल्ब्रेक्ट) को @PDFsharpTeam जैसी सटीक चीज़ करने के उत्तर को अपडेट करने के लिए परेशान करेंगे सहायक लिंक [** मेमोरीस्ट्रीम स्ट्रीम = नई मेमोरीस्ट्रीम(); //// दस्तावेज़। सहेजें (स्ट्रीम, झूठा); //// बाइट [] दस्तावेज़बाइट्स = स्ट्रीम। ToArray(); //// वापसी फ़ाइल (दस्तावेज़बाइट्स, "एप्लिकेशन/पीडीएफ"); **] (इससे मुझे बहुत मदद मिली। धन्यवाद !!!) –