2009-02-20 13 views
10

मैं ऐसे ईमेल भेज रहा हूं जिनमें पीडीएफ के रूप में चालान शामिल हैं। मैं पहले से ही - एप्लिकेशन में कहीं और - एक .aspx पृष्ठ में चालान बना रहा हूं। मैं आउटपुट एचटीएमएल वापस करने और उस से पीडीएफ उत्पन्न करने के लिए सर्वर का उपयोग करना चाहता हूं। अन्यथा, मुझे पीडीएफ पर चालान "ड्रॉ" करने के लिए एक रिपोर्टिंग टूल का उपयोग करना होगा। यह कई कारणों से उड़ाता है, जिनमें से कम से कम नहीं है कि मुझे .aspx पेज और प्रत्येक मामूली परिवर्तन के लिए रिपोर्ट दोनों को अपडेट करना होगा। क्या करना है ...कच्चे HTML/CSS सामग्री से ASP.NET से पीडीएफ जेनरेट करें?

+0

http://stackoverflow.com/questions/564650/convert-html-to-pdf-in-net –

उत्तर

5

.NET के भीतर सीधे HTML स्ट्रिंग से पीडीएफ उत्पन्न करने का कोई तरीका नहीं है, लेकिन तीसरे पक्ष के नियंत्रण की संख्या बहुत अच्छी तरह से काम करती है। http://www.html-to-pdf.net और इस: यह एक साथ

मैं लिया है सफलता http://www.htmltopdfasp.net

महत्वपूर्ण सवाल पूछने के लिए कर रहे हैं:

  1. यह के रूप में 3 प्रमुख ब्राउज़रों की तुलना में सही ढंग से प्रस्तुत करना है: आईई, एफएफ और सफारी/क्रोम?
  2. क्या यह सीएसएस ठीक संभालता है?
  3. क्या नियंत्रण में इसका स्वयं का प्रतिपादन इंजन है? यदि हां, तो इसे उछाल दें। आप घर के उगाए गए प्रतिपादन इंजन पर भरोसा नहीं करना चाहते हैं - ब्राउज़र को सबकुछ पिक्सेल सही होने में काफी मुश्किल है।
  4. तृतीय पक्ष नियंत्रण की क्या निर्भरता की आवश्यकता है? कम, बेहतर।

कुछ अन्य हैं लेकिन वे ActiveX डिस्प्ले और ऐसे से निपटते हैं।

+0

का संभावित डुप्लिकेट HTMLtopdfasp लिंक काम नहीं करता है। – prograde

1

जब तक आप उचित एक्सएचटीएमएल का उपयोग सुनिश्चित कर सकते हैं, तो आप XSLT/XSL-FO के माध्यम से एक्सएमएल (एक्सएचटीएमएल) को पीडीएफ में परिवर्तित करने के लिए Alt-Soft's Xml2PDF जैसे उत्पाद का उपयोग भी कर सकते हैं।

यह मास्टर के लिए एक सीखने की अवस्था लेता है, लेकिन यह "मिल गया" के बाद यह बहुत अच्छा काम करता है!

मार्क

+0

मानक लाइसेंस: यूएस $ 1,495 – Junto

+0

@ जुंटो: हाँ - इसलिए - सॉफ़्टवेयर लागतों का पैसा बनाना - इसलिए टूल सभी ** ** ** नहीं हैं - लेकिन वहां ** आईएस ** एक मुफ्त Xml2Pdf वर्कस्टेशन संस्करण है, –

+0

@marc - बेशक यह पैसा खर्च करता है, लेकिन यह भी खुलासा नहीं करता है कि यह एक सशुल्क उत्पाद है और एचटीएमएल सामग्री से पीडीएफ उत्पन्न करने के लिए मानक लाइसेंस की आवश्यकता है। – Junto

3

हम इस के लिए एक उत्पाद ABCPDF कहा जाता है का उपयोग करें और यह शानदार काम करता है।

http://www.websupergoo.com/abcpdf-1.htm

2

यह Prince के लिए एक नौकरी की तरह लगता है। यह एचटीएमएल और सीएसएस ले सकता है और एक पीडीएफ उत्पन्न कर सकता है, जिसे आप अपने उपयोगकर्ताओं को तब पेश कर सकते हैं। यह अधिकांश वेब ब्राउज़र की तुलना में CSS3 का बेहतर समर्थन करता है (कर्मचारियों में सीएक्स का आविष्कारक हैकॉन विम लिई शामिल है)।

samples, खासकर विकिपीडिया पृष्ठों के लिए, जो सुंदर उत्पादन उत्पन्न कर सकते हैं, देखें। लेखकों के साथ एक दिलचस्प Google Tech Talk भी है।

संपादित करें: वहाँ एक .NET wrapper उपलब्ध है। http://sourceforge.net/projects/report/

मैं जवाब है कि आप पीडीएफ करने के लिए उत्पादन से सीधे परिवर्तित नहीं कर सकते कहना से असहमत हैं, तथापि, के रूप में आप कर सकते हैं "पुन:

+0

यह उत्पाद अच्छा दिखता है, लेकिन यह वास्तव में एक .NET अनुप्रयोग के साथ पैक करने के लिए अच्छी तरह से बनाया गया है। ऐसा लगता है कि उनके पास एक .dll है जिसे आप कम से कम लपेट सकते हैं। –

+0

मैं नहीं कह सकता कि मैंने कोशिश की है - मैंने इसे माइंड टच डेकी के साथ उपयोग किया है, जो सीधे .exe को कॉल करता है।मैं क्या कह सकता हूं कि आउटपुट बहुत खूबसूरत है - यह इंटरनेट एक्सप्लोरर से प्यारा पीडीएफ की तुलना में लाटेक्स की तरह है :) – crb

+1

प्रत्येक दस्तावेज़ के पहले पृष्ठ पर लोगो को खोदने वाले – Levitikon

1

जब से तुम जवाब पैदा कर रहे हैं, तो आप Report.NET जैसे किसी उपकरण का उपयोग कर सकते हैं -कॉल "पृष्ठ और HTML को स्ट्रीम के रूप में प्राप्त करें और इसे परिवर्तित करें। मुझे यकीन नहीं है कि आप यह करने के लिए किस उपकरण का उपयोग करना चाहते हैं, हालांकि। दूसरे शब्दों में, यह संभव है, लेकिन मुझे यकीन नहीं है कि यह इसके लायक है। रिपोर्ट की तरह पीडीएफ निर्माण libs।नेट, भले ही वे कुछ तर्क और कोई स्वचालित अभिसरण का पुन: उपयोग करने के लिए बल देते हैं, यह आसान है।

मैंने इस घटक की कोशिश नहीं की है, लेकिन मैंने उन लोगों के बारे में अच्छी बातें सुनी हैं जिनके पास है। मॉडल एचटीएमएल की तरह अधिक है, लेकिन मुझे यकीन नहीं है कि आप इसे पीडीएफ बनाने के लिए केवल एक एएसपीएक्स भेज सकते हैं: http://www.websupergoo.com/abcpdf-8.htm

0

मैं एक अलग मार्ग जाऊंगा। मान लें कि आप SQL सर्वर का उपयोग कर रहे हैं, एसएसआरएस का उपयोग करें और पीडीएफ जेनरेट करें।

1

यदि आप GOOGLE के माध्यम से पीडीएफ सॉफ़्टवेयर में कुछ एचटीएमएल खोजने का प्रयास करते हैं तो आपको इस सामान का ढेर मिल जाएगा। लगभग 10 नेता हैं लेकिन उनमें से अधिकतर पृष्ठभूमि मोड में आईई डीएलएस का उपयोग करते हैं। उनमें से केवल कुछ अपने स्वयं के पार्सिंग इंजन का उपयोग करते हैं। यदि आप पीडीएफ प्रोग्रामैटिकल बनाना चाहते हैं तो कृपया अपने एएसपी.नेट परियोजना में PDF Duo .NET घटक आज़माएं। पीडीएफ इनवॉइस के ठंडा उत्पादन के लिए यह हल्का घटक है, रिपोर्ट उदा।

+0

साइट लाइसेंस: यूएस $ 1170 – Junto

2

wkhtmltopdf एचटीएमएल से पीडीएफ उत्पन्न करने के लिए एक नि: शुल्क और ठंडा exe है। यह सी ++ में लिखा है। लेकिन nReco htmltopdf इस भयानक टूल के लिए एक रैपर डॉटनेट लाइब्रेरी है। मैंने इस डॉटनेट लाइब्रेरी का उपयोग करके कार्यान्वित किया और यह इतना अच्छा था कि यह सबकुछ अपने आप से करता है, आपको डेटा स्रोत के रूप में एचटीएमएल देना होगा।

/// <summary> 
/// Converts html into PDF using nReco dll and wkhtmltopdf.exe. 
/// </summary>  
private byte[] ConvertHtmlToPDF() 
{ 
    HtmlToPdfConverter nRecohtmltoPdfObj = new HtmlToPdfConverter(); 
    nRecohtmltoPdfObj.Orientation = PageOrientation.Portrait; 
    nRecohtmltoPdfObj.PageFooterHtml = CreatePDFFooter(); 
    nRecohtmltoPdfObj.CustomWkHtmlArgs = "--margin-top 35 --header-spacing 0 --margin-left 0 --margin-right 0";   
    return nRecohtmltoPdfObj.GeneratePdf(CreatePDFScript() + ShowHtml() + "</body></html>"); 
} 

उपरोक्त फ़ंक्शन नीचे दिए गए लिंक पोस्ट से एक अंश है जो इसे विस्तार से बताता है। HTML to PDF in ASP.Net

2

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

यह वास्तव में रूपांतरण के दौरान सत्र डेटा को संरक्षित करने के लिए एक अच्छी तकनीक है जो EvoPdf लाइब्रेरी के Convert a HTML Page to PDF in Same Session ASP.NET Demo में लागू होती है। पूरा सी # कोड चालान पेज से और पीडीएफ करने के लिए कि स्ट्रिंग परिवर्तित करने के लिए प्रदान की गई एचटीएमएल स्ट्रिंग प्राप्त करने के लिए है:

// Execute the invoice page and get the HTML string rendered by this page 
TextWriter outTextWriter = new StringWriter(); 
Server.Execute("Invoice.aspx", outTextWriter); 

string htmlStringToConvert = outTextWriter.ToString(); 

// Create a HTML to PDF converter object with default settings 
HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter(); 

// Use the current page URL as base URL 
string baseUrl = HttpContext.Current.Request.Url.AbsoluteUri; 

// Convert the page HTML string to a PDF document in a memory buffer 
byte[] outPdfBuffer = htmlToPdfConverter.ConvertHtml(htmlStringToConvert, baseUrl); 

// Send the PDF as response to browser 

// Set response content type 
Response.AddHeader("Content-Type", "application/pdf"); 

// Instruct the browser to open the PDF file as an attachment or inline 
Response.AddHeader("Content-Disposition", String.Format("attachment; filename=Convert_Page_in_Same_Session.pdf; size={0}", outPdfBuffer.Length.ToString())); 

// Write the PDF document buffer to HTTP response 
Response.BinaryWrite(outPdfBuffer); 

// End the HTTP response and stop the current page processing 
Response.End(); 
0

एक संभावित कम से कम समाधान Server.Execute() का उपयोग करने के चालान पृष्ठ के HTML प्राप्त करने के लिए और एक पीडीएफ winnovative html to pdf api for .net उपयोग करने के लिए है कि कोड में परिवर्तित है:

TextWriter outTextWriter = new StringWriter(); 
Server.Execute("Invoice.aspx", outTextWriter); 

HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter(); 

byte[] pdfBytes = htmlToPdfConverter.ConvertHtml(outTextWriter.ToString(), 
      httpContext.Current.Request.Url.AbsoluteUri); 
0

आप PDFSharp या iTextSharp का उपयोग कर सकते पीडीएफ के लिए html कन्वर्ट करने के लिए। पीडीएफ सर्प मुफ्त नहीं है।

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