2011-06-22 4 views
14

मैं अपने एमवीसी वेब पेज में एक पीडीएफ दस्तावेज देखने की कोशिश कर रहा हूं, लेकिन मैं इसे काम करने के लिए तैयार नहीं कर सकता।पृष्ठ के हिस्से के रूप में पीडीएफ देखें

मैं पीडीएफ को पेज (हेडर, पाद लेख इत्यादि) पर अन्य सामानों के हिस्से के रूप में प्रदर्शित करना चाहता हूं। वर्तमान में मेरे पास एक समाधान है जहां पीडीएफ दिखाया गया है, लेकिन पूरे पृष्ठ पर।

क्या किसी ने ऐसा किया है, यदि हां तो कैसे?

+0

भाषा/आपके एमवीसी का मंच? रूबी ऑन रेल्स? Django? CakePHP? – OnesimusUnbound

+0

ठीक है, थोड़ी अधिक जानकारी ... भाषा सी # है और मैं वर्तमान में एक मानक परियोजना i VS2010 के साथ खेल रहा हूं। मैं एक पीडीएफ रनटाइम उत्पन्न कर रहा हूं और स्ट्रीम में संग्रहीत कर रहा हूं। मैं एक कस्टम नियंत्रण या एक जैसे का उपयोग कर इस पीडीएफ 'अंदर' पृष्ठ को देखने में सक्षम होना चाहता हूं। मैं पीडीएफ को अच्छी तरह से उपयोग कर एम्बेडेड कर सकता हूं: <ऑब्जेक्ट टाइप = "एप्लिकेशन/पीडीएफ" डेटा = "../../ पीडीएफ/लिस्ट पीडीएफ" चौड़ाई = "500" ऊंचाई = "650"> फ़ाइल देखने के लिए here पर क्लिक करें , लेकिन यह एक धारा का उपयोग नहीं कर रहा है। – Peter

उत्तर

28

आप इस तरह iframe का उपयोग करके क्यों कोशिश मत करो:

<iframe src="even file stream action url"></iframe> 

मैं अगर यह संभव है वस्तु टैग का उपयोग करने का सुझाव देते हैं, बस के परीक्षण के लिए आइफ्रेम का उपयोग करें।

आप पृष्ठ के रूप में आप सिर्फ

src = '<% Html.RenderAction ("GetPDF") किया था के हिस्से के रूप पीडीएफ प्रस्तुत करना चाहते हैं; %> '

तो यह आपके विकल्प

आप पीडीएफ सामग्री पर पूरा नियंत्रण की जरूरत है सीएसएस का उपयोग कर या जो भी, गूगल पुस्तकों की तरह और इतने पर है, तो आप प्रत्येक अनुरोध किया गया पृष्ठ परिवर्तित करने के लिए उपकरण है कि आप मदद की ज़रूरत है पीडीएफ के सादा पाठ, एचटीएमएल या यहां तक ​​कि छवि। पीडीएफशर्प जैसे टूल्स। Search Google For Tools

आप प्रदर्शन पीडीएफ चाहते हैं के रूप में पृष्ठ के भाग तो यह आपके

ASPX: src="<%= Url.Action("GetPDF") %>" 
Razor: src="@Url.Action("GetPDF")" 

क्या करना है और अंतिम जवाब

<object data="<%= Url.Action("GetPDF") %>" type="application/pdf" width="300" height="200"> 
    alt : <a href="data/test.pdf">test.pdf</a> 
</object> 

हो सकता है और है मामला है कि आप चाहते हैं में स्ट्रीम के रूप में पीडीएफ वापस करने के लिए आपको

public FileStreamResult GetPDF() 
{ 
    FileStream fs = new FileStream("c:\\PeterPDF2.pdf", FileMode.Open, FileAccess.Read); 
    return File(fs, "application/pdf"); 
} 
+0

मुझे आईई में काम करने की सुविधा चाहिए! अगर मैं IFrame का उपयोग करता हूं तो मैं एक फ़ाइल से पीडीएफ लोड और दिखा सकता हूं, लेकिन मैं इसे काम नहीं कर सकता अगर मैं रनटाइम पीडीएफ (आईटीएक्स्ट या पीडीएफवाइटर का उपयोग कर) बना देता हूं। क्या आप एक उदाहरण प्रदान कर सकते हैं? – Peter

+0

@ पीटर क्लाइंट ब्राउज़र परवाह नहीं है कि यूआरएल डिस्क में या स्मृति में भी एक फ़ाइल है, तो आपको क्लाइंट ब्रोवर को यह बताना होगा कि आप किस प्रकार की सामग्री स्ट्रीम कर रहे हैं, इसलिए समस्या सामग्री-प्रकार HTTP शीर्षलेख है। और क्या आप मुझे बता सकते हैं कि क्या आपको कोई एक्शन विधि बनाने में कोई समस्या है जो नई FileContentResult (बाइट्स, "एप्लिकेशन/पीडीएफ") वापस कर देगा; – Beygi

+0

@ पीटर अगर फिर से यह मामला नहीं है, तो मैं चाहता था कि आप जानते हों कि मैं आपकी मदद करने के लिए अपनी पूरी कोशिश कर रहा हूं। तो कृपया अगर यह संभव है तो हमें अपनी कार्यवाही विधि प्रदान करें, और हमें स्पष्ट करें कि समस्या स्ट्रीम से पीडीएफ प्रदर्शित कर रही है, या इसे पृष्ठ के हिस्से में प्रदर्शित कर रही है। और हाँ, यदि आप मुझे अपना एक्शन विधि स्रोत देते हैं तो मैं नमूना प्रदान कर सकता हूं – Beygi