2013-08-06 5 views
6

पर सीएसएस लागू नहीं कर सकता है मैं अपने एएसपीनेट ऐप पर ईवोपीडीएफ को एकीकृत करने की कोशिश कर रहा हूं। मैं अपने एचटीएमएल फाइल से एचटीएमएल का हिस्सा भेज रहा हूं AJAX के माध्यम से क्लिक करें। सब कुछ इस भाग तक फाई काम करता है। अब, जब मैं इन तरीकों को EvoPdf API से आमंत्रित करता हूं।एचटीएमएल स्ट्रिंग

<ol class = "lol"> 
     <li> HEY </li> 
     <li> Now </li> 

    </ol> 
Css जो बाहरी फ़ाइल में है

की तरह कुछ प्रलेखन तीसरा तर्क होना चाहिए के अनुसार की तरह

.lol { 

     background-color: red; 

    } 

कुछ है

1. GetPdfBytesFromHtmlStream(Stream, Encoding,urlbase) 

2. SavePdfFromHtmlStringToFile(String html,string filename,urlbase) 

मेरे एचटीएमएल हिस्सा मैं भेज रहा हूँ है मूल एचटीएमएल का पूरा यूआरएल जहां आपने एचटीएमएल के हिस्से को निकाला था। मैंने स्थानीय ऐप/3232 काम नहीं करने के बाद से वेब पर अपना ऐप अपलोड किया। लेकिन, मैं उत्पन्न एचटीएमएल में लागू कोई सीएसएस नहीं देख सकता। प्रलेखन में उन्होंने

 <HEAD> <BASE HREF="full url to your html file"> </HEAD> 

और इस विधि का उपयोग करने की भी अनुशंसा की।

 pdfConverter.GetPdfBytesFromHtmlString(String html); 

मैंने कोशिश की कुछ भी सीएसएस लागू नहीं करता है। कोई विचार ....

+0

http://stackoverflow.com/questions/37392418/even-after-providing-fully-qualified-url-in-the-html-string-evopdf-converter-is लोग यू एक उचित जवाब दे सकते हैं मेरे प्रश्न – aggy

उत्तर

3

हालांकि ईवोपीडीएफ के साथ बाहरी फाइल में एचटीएमएल होना संभव है, मैं इसकी अनुशंसा नहीं करता हूं। इसके बजाय दस्तावेज़ के प्रमुख में शैलियों को रेखांकित करें। जब हम करियर 2.0 के लिए पीडीएफ जेनरेटर स्थापित कर रहे थे, तो मुझे याद है कि यूआरएल को एक वेब सर्वर के पीछे लाइव यूआरएल होना चाहिए, न कि केवल उसी निर्देशिका संरचना में सापेक्ष लिंक। ईवो पीडीएफ में एक टाइमआउट भी है जो लोड होने पर छवियों के नुकसान का कारण बन सकता है, जो इनलाइन सब कुछ के साथ अच्छी तरह से खेलता है।

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

+0

हां आप इनलाइन सीएसएस के बारे में सही हैं। मैं एक कॉलेज में एक डेवलपर हूँ। मैं एक ऐप के लिए Evopdf लिख नहीं रहा हूँ। लेकिन कॉलेज में चलने वाले सभी ऐप्स के लिए। यह 2 चीजें करना चाहिए। 1 पूरे यूआरएल एचटीएमएल को पीडीएफ में बदलता है और पीडीएफ से एचटीएमएल का एक और परिवर्तन हिस्सा बदलता है। इसलिए, यही कारण है कि मैं केवल इनलाइन उद्धरण के लिए समर्थन नहीं करना चाहता था, क्योंकि मुझे नहीं पता कि अन्य सभी ऐप्स से क्या उम्मीद करनी है। मैंने लाइव यूआरएल पर अपलोड करने और सीएसएस का आह्वान करने की भी कोशिश की। अभी भी कोई सीएसएस – Rabin

+0

एकमात्र अन्य चीज़ जो मैं एक पूर्ण उदाहरण को देखे बिना सुझाव देने के बारे में सोच सकता हूं वह यह है कि बेस टैग उस फ़ोल्डर को इंगित करना है जो सभी सापेक्ष यूआरएल के लिए जड़ है। यह किसी वास्तविक फ़ाइल को सीधे इंगित नहीं करना चाहिए अन्यथा सभी सापेक्ष यूआरएल तोड़ना चाहिए। –

0

मैं इस मुद्दे में ईवोपीडीएफ के साथ भाग गया। मेरे लिए फिक्स web.config से baseURL का संदर्भ देना था। मैं HttpContext.Current.Request.Url.AbsoluteUri का उपयोग करने की कोशिश कर रहा था; जो दो वातावरण में काम करता था लेकिन जब किसी अन्य सर्वर पर परीक्षण नहीं किया गया था।

<appSettings> 
    <add key="baseURL" value="http://your-domain.com/" /> 
    </appSettings> 

तो आप इसे विशेष रूप से सेट करते हैं और सीएसएस परिवर्तन के बाद सही ढंग से दिखाता है। Https के साथ भी काम करता है। आप इसे जांचने के लिए हार्ड कोड कर सकते हैं और कॉन्फ़िगरेशन मैनेजर का उपयोग नहीं कर सकते हैं।

 TextWriter outTextWriter = new StringWriter(); 

     Server.Execute("Page1.aspx", outTextWriter); 
     Server.Execute("Page2.html", outTextWriter); 

     string htmlStringToConvert = outTextWriter.ToString(); 
     outTextWriter.Close(); 

     // Use the current page URL as base URL 
     string baseUrl = ConfigurationManager.AppSettings["baseURL"].ToString(); //HttpContext.Current.Request.Url.AbsoluteUri; 

     // Convert the page HTML string to a PDF document in a memory buffer 
     byte[] outPdfBuffer = htmlToPdfConverter.ConvertHtml(htmlStringToConvert, baseUrl); 
संबंधित मुद्दे