2010-09-23 30 views
5

मैं अपने आवेदन के लिए asp.net mvc2 का उपयोग कर रहा हूं। मेरे पास एक ऐसा दृश्य है जो एक मॉडल स्वीकार करता है और कुछ प्रारूप में अपना डेटा प्रस्तुत करता है। मैं चाहता हूं कि यह पृष्ठ पीडीएफ फ़ाइल में परिवर्तित हो जाए, ताकि इसे अनुलग्नक के माध्यम से भेजा जा सके या फ्लाई पर डाउनलोड किया जा सके। मुझे कुछ सफलता है Iextsharp लाइब्रेरी के साथ पीडीएफ बनाना लेकिन वे कहते हैं कि एचटीएमएल और सीएसएस के लिए इसका बहुत बुनियादी समर्थन है। अगर किसी ने इमेक्सशर्प या किसी अन्य लाइब्रेरी का उपयोग करके पीडीएफ में जटिल एचटीएमएल पेज प्रस्तुत किए हैं तो कृपया मुझे इस समस्या को हल करने में मदद करें। कोई टिप्पणी अत्यधिक सराहना कर रहे हैं.net एमवीसी व्यू से पीडीएफ बनाना

धन्यवाद

+0

"कृपया इस समस्या को हल करने में मेरी मदद करें" - किस समस्या को हल करने में, बिल्कुल? –

+0

@Tom जटिल एचटीएमएल से या तो फ्लाई पर या सहेजे गए एचटीएमएल फाइलों से पीडीएफ बनाने के लिए जो सीएसएस –

+1

के माध्यम से परिभाषित सभी प्रारूपण को संरक्षित रखना चाहिए, यह संभवतः आपके द्वारा किए गए प्रयासों को सूचीबद्ध करने का एक अच्छा विचार होगा ताकि अन्य लोग उत्तर पोस्ट न करें सामान जो आप पहले से ही खारिज कर चुके हैं। – Buildstarted

उत्तर

3

मुझे लगता है कि यह related question एक डिग्री में मदद करेगा। बस ध्यान दें कि एचटीएमएल डिस्प्ले और पीडीएफ दस्तावेज here वर्णित विभिन्न उद्देश्यों को पूरा करते हैं। मूल विचार यह है कि बाद वाला "प्रिंट आउटपुट के लिए डिज़ाइन किया गया है", और दूसरा "वीडियो डिस्प्ले के लिए डिज़ाइन किया गया है"।

मेरा सुझाव यह है कि ज्यादातर मामलों में जब कोई वेब से प्रिंट करता है, तो इस घोषणा का उपयोग करके मुद्रण के लिए एक अलग स्टाइलशीट बनाने का विकल्प होता है। विचार स्टाइल को कम करना और इसे अधिक प्रिंट अनुकूल बनाना (= कम जटिल) बनाना है।

ए सूची के अलावा निम्नलिखित article इस विकल्प में कुछ और अंतर्दृष्टि प्रदान करता है।

<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 

अन्य मुक्त पीडीएफ लाइब्रेरी को देखने के लिए PDFSharp है। हालांकि, वे HTML से पीडीएफ तक समर्थन रूपांतरण नहीं करते हैं।

अन्य अतः संबंधित प्रश्नों

0

मुक्त नहीं है, आप पीडीएफ रूपांतरण सेवाओं को देखने के लिए चाहते हो सकता है। नवीनतम बीटा महान सटीकता के साथ एचटीएमएल रूपांतरण का समर्थन करता है।

this post पर एक नज़र डालें, यह .NET और जावा आधारित वातावरण के साथ अच्छी तरह से काम करता है।

मैंने इस उत्पाद पर काम किया ताकि सामान्य अस्वीकरण लागू हो जाएं। किसी भी प्रश्न का उत्तर देने में खुशी हुई।

+0

मैं आपके उत्तर की सराहना करता हूं लेकिन मैं ओपन सोर्स सॉल्यूशन –

0

आप http://itextpdf.com/ का उपयोग करने में भी देख सकते हैं जो पीडीएफ रूपांतरण के लिए एचटीएमएल प्रदान करता है।

"iText किसी XML या HTML फ़ाइल को पीडीएफ में परिवर्तित कर सकता है, लेकिन केवल एक बहुत ही बुनियादी स्तर पर। दस्तावेज़ों को एक प्रारूप से दूसरे में कनवर्ट करना iText के दायरे से बाहर है। और नहीं: iText Word दस्तावेज़ों को कनवर्ट नहीं करता है पीडीएफ! "

+0

सहायता के लिए धन्यवाद चाहता हूं, मैंने सहायता के लिए धन्यवाद दिया है, लेकिन यह मेरी आवश्यकताओं को पूरा नहीं करता है और हां यह वास्तव में बहुत बुनियादी है –

0

(एचटीएमएल) एक स्ट्रिंग के रूप में प्रदान दृश्य कैप्चर करें और इसे पारित पीडीएफ निर्माता जो एक बहुत है Winnovative को अच्छा उपकरण जो जटिल स्वरूपण को संरक्षित करता है। यहाँ

पर कब्जा कर लिया एचटीएमएल से

string test="\r\n\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" >\r\n<head>\r\n <link rel=\"Stylesheet\" href=\"../../Content/style.css\" type=\"text/css\" />\r\n <title>Cover Page</title>\r\n <style type=\"text/css\">\r\n html, body\r\n {\r\n\t font-family: Arial, Helvetica, sans-serif;\r\n\t font-size: 13pt;\r\n\t padding: 0px;\r\n\t margin: 0px;\r\n\t background-color: #FFFFFF;\r\n\t color: black;\r\n\t width: 680px;\r\n }\r\n </style>\r\n</head>\r\n<body>\r\n <div>\r\n Ssotest Ssotest, \r\n </div> \r\n</body>\r\n</html>\r\n" 

       FileStreamResponseContext response = new FileStreamResponseContext(); 
Response .clear(); 
    Document doc = new Document(); 
       doc.DocumentInformation.CreationDate = DateTime.Now; 
       doc.DocumentInformation.Title = "Test Plan"; 
       doc.DocumentInformation.Subject = "Test Plan"; 
       doc.CompressionLevel = CompressionLevel.NormalCompression; 
       doc.Margins = new Margins(0, 0, 0, 0); 
       doc.Security.CanPrint = true; 
       doc.ViewerPreferences.HideToolbar = false; 
       doc.ViewerPreferences.FitWindow = false; 

    string baseUrl = String.Format("http://localhost{0}/", Request.Url.Port == 80?"":":" + Request.Url.Port.ToString()); 

    PdfPage docTestPlan = doc.AddPage(PageSize.Letter, new Margins(0, 0, 0, 0), PageOrientation.Portrait); 
    // passing the string test returned from the string writer 

     HtmlToPdfElement htmlToPdf = new HtmlToPdfElement(test, baseUrl); 
       htmlToPdf.FitWidth = false; 
       docTestPlan.AddElement(htmlToPdf); 


       /****************************************** 
       * put doc in a memory stream for return */ 
       response.FileDataStream = new MemoryStream(); 
       doc.Save(response.FileDataStream); 
       doc.Close(); 
       response.FileDataStream.Position = 0; 

       return new FileStreamResult(response.FileDataStream, "application/pdf"); 



If you need to capture the controller action follow my post here.[http://stackoverflow.com/questions/5553674/capturing-html-to-string-in-mvc2-0][1] 
पीडीएफ बनाने के लिए आप Winnovative पीडीएफ निर्माता की आधिकारिक वेबसाइट से नमूना कोड प्राप्त कर सकते हैं कोड है।

संबंधित मुद्दे