.NET में HTML को PDF में कन्वर्ट करें


425

मैं एक समारोह में HTML सामग्री पारित करके एक पीडीएफ उत्पन्न करना चाहता हूं। मैंने इसके लिए iTextSharp का उपयोग किया है, लेकिन यह अच्छा प्रदर्शन नहीं करता है जब यह तालिकाओं का सामना करता है और लेआउट सिर्फ गड़बड़ हो जाता है।

क्या कोई बेहतर तरीका है?


आप इसके लिए GemBox.Document का उपयोग कर सकते हैं । इसके अलावा यहां आप किसी PDF फ़ाइल में HTML फ़ाइल परिवर्तित करने के लिए एक नमूना कोड मिल सकता है।
मारियो जेड

ITextSharp के किस संस्करण का आप उपयोग करते हैं और क्या आप अपना html साझा कर सकते हैं?
एमेडी वान गेस

फिर भी अतिरिक्त जानकारी के लिए मेरे अनुरोध का कोई जवाब नहीं। कृपया यह भी जोड़ें कि क्या आप HTMLWorker या XMLWorker का उपयोग कर रहे हैं।
15:28 बजे एमी वैन गैसे

.Net कोर के बारे में क्या?
पिएरो अल्बर्टो

SEPT 2019: मैंने एक नया उत्तर जोड़ा है कि सूचीबद्ध कुछ विकल्पों में से कुछ मुफ्त में भुगतान किए गए हैं और कुछ उपलब्ध हैं। नेट कोर stackoverflow.com/questions/564650/- के रूप में
मौरिसियो ग्रेसिया गुटिएरेज़

जवाबों:


198

संपादित करें: पीडीएफ के लिए पीडीएफ के लिए नया सुझाव HTML रेंडरर PdfSharp का उपयोग कर

(Wttmltopdf को आज़माने और इससे बचने का सुझाव देने के बाद)

HtmlRenderer.PdfSharp एक 100% पूरी तरह से सी # प्रबंधित कोड , उपयोग करने में आसान, थ्रेड सुरक्षित और सबसे महत्वपूर्ण रूप से मुफ़्त ( न्यू बीएसडी लाइसेंस ) समाधान है।

प्रयोग

  1. डाउनलोड HtmlRenderer.PdfSharp नगेट पैकेज।
  2. उदाहरण विधि का उपयोग करें।

    public static Byte[] PdfSharpConvert(String html)
    {
        Byte[] res = null;
        using (MemoryStream ms = new MemoryStream())
        {
            var pdf = TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(html, PdfSharp.PageSize.A4);
            pdf.Save(ms);
            res = ms.ToArray();
        }
        return res;
    }

एक बहुत अच्छा वैकल्पिक iTextSharp का एक नि: शुल्क संस्करण है

संस्करण 4.1.6 iTextSharp को LGPL लाइसेंस के तहत लाइसेंस दिया गया था और 4.16 (या वहाँ भी कांटे हो सकते हैं) के संस्करण पैकेज के रूप में उपलब्ध हैं और स्वतंत्र रूप से उपयोग किया जा सकता है। बेशक कोई निरंतर 5+ सशुल्क संस्करण का उपयोग कर सकता है ।

मैंने अपनी परियोजना पर wttmltopdf समाधानों को एकीकृत करने की कोशिश की और बाधाओं का एक गुच्छा था।

मैं व्यक्तिगत रूप से निम्नलिखित कारणों के लिए होस्टेड एंटरप्राइज़ अनुप्रयोगों पर आधारित wkhtmltopdf - आधारित समाधानों का उपयोग करने से बचूंगा

  1. सबसे पहले wkhtmltopdf C ++ लागू किया गया है C # नहीं, और आप इसे अपने C # कोड के भीतर एम्बेड करने वाली विभिन्न समस्याओं का अनुभव करेंगे, खासकर जब आपके प्रोजेक्ट के 32 बिट और 64 बिट बिल्ड के बीच स्विच हो रहा हो। विभिन्न मशीनों पर "अमान्य प्रारूप अपवाद" से बचने के लिए, सशर्त परियोजना के निर्माण आदि सहित कई वर्कआर्ड की कोशिश करनी थी।
  2. यदि आप अपनी खुद की वर्चुअल मशीन को ठीक करते हैं। लेकिन अगर आपका प्रोजेक्ट एक विवश वातावरण के भीतर चल रहा है, जैसे ( Azure (वास्तव में असंभव है, जैसा कि McPenchin लेखक द्वारा उल्लिखित है ), Elastic Beanstalk आदि) तो उस वातावरण को केवल wkhlmltopdf को काम करने के लिए कॉन्फ़िगर करना एक बुरा सपना है।
  3. wkhtmltopdf आपके सर्वर के भीतर फाइलें बना रहा है, इसलिए आपको उपयोगकर्ता अनुमतियों को प्रबंधित करना होगा और जहां wkhtmltopdf चल रहा है, वहां "राइट" एक्सेस प्रदान करें।
  4. Wkhtmltopdf एक स्टैंडअलोन एप्लिकेशन के रूप में चल रहा है, इसलिए यह आपके IIS एप्लिकेशन पूल द्वारा प्रबंधित नहीं किया गया है । तो आपको इसे या तो किसी अन्य मशीन पर सेवा के रूप में होस्ट करना होगा या आप अपने उत्पादन सर्वर के भीतर प्रसंस्करण स्पाइक्स और मेमोरी खपत का अनुभव करेंगे।
  5. यह pdf जनरेट करने के लिए अस्थायी फ़ाइलों का उपयोग करता है, और AWS EC2 जैसे मामलों में जो वास्तव में धीमी डिस्क i / o है, यह एक बड़ी प्रदर्शन समस्या है।
  6. कई उपयोगकर्ताओं द्वारा रिपोर्ट की गई "DLL 'wkhtmltox.dll'" त्रुटि को लोड करने में सबसे अधिक "नफरत करने में असमर्थ"।

--- पूर्व संपादित धारा ---

जो लोग html से पीडीएफ को सरल अनुप्रयोगों / वातावरण में उत्पन्न करना चाहते हैं, उनके लिए मैं सुझाव के रूप में अपनी पुरानी पोस्ट छोड़ देता हूं।

TuesPechkin

https://www.nuget.org/packages/TuesPechkin/

या विशेष रूप से MVC वेब अनुप्रयोगों के लिए (लेकिन मुझे लगता है कि आप इसे किसी भी .net अनुप्रयोग में उपयोग कर सकते हैं)

Rotativa

https://www.nuget.org/packages/Rotativa/

वे दोनों HTML को पीडीएफ में बदलने के लिए wttmtopdf बाइनरी का उपयोग करते हैं । जो पृष्ठों को रेंडर करने के लिए वेबकिट इंजन का उपयोग करता है ताकि यह सीएसएस स्टाइल शीट को भी पार्स कर सके ।

वे सी # के साथ सहज एकीकरण का उपयोग करने के लिए आसान प्रदान करते हैं।

रोटेटिवा किसी भी रेजर व्यू से सीधे पीडीएफ जेनरेट कर सकता है ।

इसके अतिरिक्त असली दुनिया वेब अनुप्रयोगों के लिए वे भी धागा सुरक्षा आदि का प्रबंधन ...


2
अपनी पोस्ट अपडेट करने के लिए धन्यवाद। मैं PdfSharp देने की कोशिश कर रहा हूं। आपने मुझे बहुत समय बचाया।
जॉन हेनकेल

1
प्रदर्शन के लिहाज से PdfSharp अच्छा है, लेकिन इसने मेरे लिए फ्लोट को ठीक से रेंडर नहीं किया। सौभाग्य से, मैं अच्छे पुराने तालिकाओं का उपयोग करने के लिए मार्कअप को बदल सकता था, PdfSharp उन्हें अच्छी तरह से संभालता है।
गेबब

3
हमने HtmlRenderer की कोशिश की। किसी भी सीएसएस को लोड नहीं करने पर यह वास्तव में त्वरित था। लेकिन जब हमने CSS (बूटस्ट्रैप प्लस कुछ बीस्पोक) को लागू करने की कोशिश की, तो सीएसएस पार्सिंग में थोड़ा समय लगा (जिसे हम शायद कम कर सकते हैं), और प्रतिपादन वेब पेज के लिए पूरी तरह से अलग था।
उत्कृष्ट

1
@ user2347528 - HtmlRenderer.PdfSharp के स्रोत को देखते हुए, इसे ठीक करने का कोई तरीका नहीं है - यह कुल पृष्ठ ऊंचाई और क्लिप को प्रत्येक पीडीएफ पेज में ले जाता है, जो वास्तव में दुर्भाग्यपूर्ण है - इसका मतलब है कि इस पुस्तकालय के साथ बहु-पृष्ठ PDF वास्तव में 'कर सकते हैं' टी किया जाना चाहिए।
श्री जंगल

3
बी एस। यह HTML की एक छवि बनाता है और छवि को पीडीएफ फाइल में जोड़ता है। यह बिल्कुल भी असली पीडीएफ नहीं है। इसके अलावा, पीडीएफ एक वेक्टर ग्राफिक्स प्रारूप है - आप असीम रूप से स्क्रॉल कर सकते हैं - बेशक, भले ही पीडीएफ में एक रेखांकन ग्राफिक हो, जो कि इस लाइब्रेरी का उत्पादन करता है।
स्टीफन स्टीगर

191

अद्यतन: मैं अब PupeteerSharp की सिफारिश करूंगा पर ।

Wttmtopdf का प्रयास करें । यह अब तक मुझे मिला सबसे अच्छा उपकरण है।

.NET के लिए, आप आसानी से wkhtmtopdf कमांड लाइन उपयोगिता को आमंत्रित करने के लिए इस छोटे पुस्तकालय का उपयोग कर सकते हैं ।


17
.NET का समर्थन करता है ??
किकेनेट

6
यह एक स्टैंडअलोन निष्पादन योग्य है। आप तर्क के रूप में HTML दस्तावेज़ के URL को पारित करते हुए, इसे एक प्रक्रिया के रूप में लॉन्च कर सकते हैं।
मर्क

46
@bamccaig मैंने इसे पहले ही प्राप्त कर लिया है =) github.com/gmanny/Pechkin यह लाइब्रेरी के हर प्रयोग करने योग्य कार्य को उजागर करता है और कई थ्रेड्स में उपयोग के लिए आवरण भी है। और यह NuGet पर है।
गमन जूल


7
@ AdamMoszczyński: विकिपीडिया : एलजीपीएल डेवलपर्स और कंपनियों को अपने स्वयं के सॉफ्टवेयर-पुर्जों के स्रोत कोड को जारी करने के लिए आवश्यक (बिना मजबूत स्वामित्व के) द्वारा एलजीपीएल सॉफ्टवेयर का उपयोग करने और अपने स्वयं के (यहां तक ​​कि मालिकाना) सॉफ्टवेयर में उपयोग करने और एकीकृत करने की अनुमति देता है।
ओलिवर

34

मैंने हाल ही में HTML से पीडीएफ रूपांतरण के बारे में एक PoC का प्रदर्शन किया और अपने परिणाम साझा करना चाहता था।

अब तक मेरा पसंदीदा OpenHtmlToPdf है

इस उपकरण के लाभ:

  • HTML की बहुत अच्छी संगतता (उदाहरण के लिए यह मेरे उदाहरण में एकमात्र उपकरण था जो तालिका के कई पृष्ठों को क्रम में रखने पर तालिका हेडरों को सही ढंग से दोहराता है)
  • धाराप्रवाह एपीआई
  • नि: शुल्क और ओपनसोर्स ( क्रिएटिव कॉमन्स एट्रिब्यूशन 3.0 लाइसेंस )
  • NuGet के माध्यम से उपलब्ध है

परीक्षण किए गए अन्य उपकरण:


इसके लिए +1, मैंने PdfSharp के लिए HtmlRenderer का परीक्षण किया, लेकिन पृष्ठ विराम के साथ बहुत सारे मुद्दों का सामना किया। मैं इस परियोजना में wkHtmlToPdf के लिए निर्भरता के साथ रह सकता हूं, इसलिए यह समाधान बहुत अच्छा था - यह HTML को बड़े पैमाने पर प्रस्तुत करता है।
jmdon

देखने में सुंदर लग रहा था, लेकिन वाह यह एक लंबा समय लगा। 30 सेकंड, बूटस्ट्रैप थीम के साथ और आगे, बहुत सरल पृष्ठ, लेकिन फिर भी।
निकोलस पीटरसन

यहां आयरनपेडएफ से स्टेफनी। एचटीएमएल को पीडीएफ में सी # में बदलने के लिए आयरनपीडीएफ का उपयोग करने का एक कोड नमूना यहां दिया गया है। हमारी वेबसाइट पर हमारे html से पीडीएफ ट्यूटोरियल में अधिक पाया जा सकता है । using IronPdf; IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf(); // Render an HTML document or snippet as a string Renderer.RenderHtmlAsPdf("<h1>Hello World</h1>").SaveAs("html-string.pdf");
स्टेफनी

मैंने iText pdfHtml का उपयोग किया लेकिन यह समर्थन नहीं करता है background-color। OpenHtmlToPdf पूरी तरह से मुफ्त में काम करता है।
Hp93

मैं OpenHtmlToPdf की श्रेष्ठता से सहमत हूं। इसके अलावा, यह .MM और ILMerge के साथ .dll विलय का समर्थन करता है।
Saygley

30

अंतिम अपडेट: मार्च 2020

यह .NET में HTML से पीडीएफ रूपांतरण के लिए विकल्पों की सूची है जो मैंने एक साथ रखी है (कुछ मुफ्त भुगतान किया है)

यदि उपरोक्त विकल्पों में से कोई भी आपकी मदद नहीं करता है, तो आप हमेशा NuGet संकुल खोज सकते हैं https://www.nuget.org/packages?q=html+wdf


1
क्या आपने प्रदर्शन के लिए कोई परीक्षण किया है? हम वर्तमान रूपांतरण बार में सुधार करने के लिए देख रहे हैं और इन प्रदर्शन लाभ के लिए अन्य पुस्तकालयों तलाश रहे हैं
frno

मैंने विशेष रूप से किसी भी प्रदर्शन की तुलना नहीं की है क्योंकि इतनी लंबी सूची है - शायद वहाँ किसी ने पहले से ही "पीडीएफ पीढ़ी .net पुस्तकालयों के प्रदर्शन की समीक्षा" या इसी तरह की है
मौरिसियो ग्रेसिया गुटिरेज़

28

HTML पार्सिंग और रेंडरिंग करने के लिए अधिकांश HTML से पीडीएफ कनवर्टर IE पर निर्भर करता है। यह तब टूट सकता है जब उपयोगकर्ता अपने IE को अपडेट करता है। यहाँ एक है जो IE पर भरोसा नहीं करता है।

कोड कुछ इस प्रकार है:

EO.Pdf.HtmlToPdf.ConvertHtml(htmlText, pdfFileName);

कई अन्य कन्वर्टर्स की तरह, आप टेक्स्ट, फ़ाइल नाम या यूआरएल पास कर सकते हैं। परिणाम को फ़ाइल या स्ट्रीम में सहेजा जा सकता है।


35
यह उपयोगी नहीं है क्योंकि आपको पुस्तकालय खरीदना होगा
d1jhoni1b

47
d1jhoni1b, यह इसे कैसे उपयोगी नहीं बनाता है? यदि यह एक पे-फॉर टूल है, तो इसे महंगा कहा जा सकता है, लेकिन अकेले उस मापदंड पर बेकार नहीं।
डॉन रोलिंग

3
यह सच है EO.Pdf IE का उपयोग नहीं करता है। लेकिन यह पृष्ठभूमि में एक वेबकिट ब्राउज़र के 32 बिट उदाहरणों को स्पॉन करने लगता है। अपनी प्रक्रिया सूची जांचें और आप उन्हें EO.PDF dll की ओर इशारा करते हुए rundll32.exe उदाहरण के रूप में देखेंगे। तो यह अभी भी मेरी राय में थोड़ा हैकी है।
मैट

1
यह मीडिया = "प्रिंट" का समर्थन नहीं करता है जो वास्तव में दर्दनाक है।
मराट फ़ाशिव

15
$ 650 के लिए एकल डेवलपर लाइसेंस। वह महंगा है।
अभिजीत नागरे

25

मैं अत्यधिक गंभीरता से NReco की सिफारिश करता हूं । इसका मुफ्त और सशुल्क संस्करण है, और वास्तव में इसके लायक है। यह पृष्ठभूमि में wttmtopdf का उपयोग करता है, लेकिन आपको बस एक विधानसभा की आवश्यकता है। बहुत खुबस।

उपयोग का उदाहरण:

NuGet के माध्यम से स्थापित करें ।

var htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now);
var pdfBytes = (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(htmlContent);

अस्वीकरण: मैं डेवलपर नहीं हूँ, परियोजना का सिर्फ एक प्रशंसक हूँ :)


3
वास्तव में बहुत उपयोगी लगता है। आज की तारीख (05/10/15) के अनुसार, यह wkhtmtopdf (Nuget पैकेज के रूप में) के लिए सबसे अधिक डाउनलोड किया गया .net रैपर है।
ken2k

3
कोशिश की, दुर्भाग्य से मैं इसे azure के वेब पृष्ठों पर काम नहीं कर सका।
gabriel14

यह लाइब्रेरी ठीक काम करती है जब मैं इसे अपनी मशीन पर स्थानीय रूप से चलाता हूं, लेकिन होस्टिंग सर्वर पर, मैं निम्नलिखित त्रुटि को अनियमित रूप से देख रहा हूं। Pdf कभी-कभी उत्पन्न होता है, लेकिन कभी-कभी यह निम्न त्रुटि फेंकता है। "त्रुटि। आपके अनुरोध को संसाधित करते समय एक त्रुटि हुई। पीडीएफ उत्पन्न नहीं कर सकता: (निकास कोड: 1)"
user2347528

यदि आप मोनो / लिनक्स पर चल रहे हैं तो wkhtmtopdf GDI + या x-server पर निर्भर करता है। इसलिए सर्वर वातावरण के लिए यह उपयोगी नहीं है ...
nuzzolilo

इसकी अच्छी और उम्मीद के अनुसार काम कर रहा है, लेकिन गुणवत्ता की समस्या मैं अपने पीडीएफ में देख सकता हूं, क्या हम इसमें सुधार कर सकते हैं?
भरत

13

Winnovative एक .Net पीडीएफ लाइब्रेरी प्रदान करता है जो HTML इनपुट का समर्थन करता है। वे असीमित मुफ्त परीक्षण की पेशकश करते हैं । आप अपनी परियोजना को कैसे लागू करना चाहते हैं, इसके आधार पर, यह पर्याप्त हो सकता है।


4
ध्यान रखें कि जब हमने आखिरी बार winnovative IE9 के साथ असंगत था (जैसा कि उन्होंने IE GDI रेंडरिंग इंजन का उपयोग किया था जिसे IE9 में हटा दिया गया था)। इसलिए यदि आपने IE9 को उस मशीन पर स्थापित किया है जिसे आप उपयोग कर रहे हैं, तो रूपांतरण काम नहीं करेगा। उन्होंने तय किया हो सकता है कि जब तक आप इसे पढ़ते हैं, लेकिन कई वाणिज्यिक घटकों ने IE रेंडरिंग इंजन का उपयोग किया और IE9 के साथ अनस्टक आया, इसलिए यह जांचने योग्य है।
फ्यूबर

Winnovative सेटअप करना सबसे आसान था और यह सिर्फ बॉक्स से बाहर काम करता था। लेकिन: 1. यह Azure वेबसाइटों पर काम नहीं करता है, केवल CloudApp है। 2. यह धीमा है, एक
अज़ीर

पुष्टि करें। यह वास्तव में धीमा है। मैंने wkhtmltopdf से तुलना की।
मराट फ़ाशिवेव

विनोवेटिव लाइब्रेरी बहुत महंगी है। डेवलपर लाइसेंस के लिए कुछ $ 650 और अन्य लाइसेंस के लिए $ 1200।
अभिजीत नागरे

Winnovative HTML से PDF कन्वर्टर Azure वेबसाइटों में काम करता है और यह IE पर निर्भर नहीं करता है जैसा कि एक टिप्पणी में सुझाया गया था। वेबसाइट पर Azure समाधान के लिए Winnovative HTML को पीडीएफ में देखें: winnovative-software.com/html-to-pdf-converter-azure.aspx । रूपांतरण का समय सेट करने के लिए HtmlToPdf.ConversionDelay = 0. कन्वर्टर HTML पृष्ठों से निपटने के लिए डिफ़ॉल्ट देरी का उपयोग कर रहा है जो पृष्ठ लोड होने के बाद अपनी सामग्री को अपडेट करते हैं।
EvoPdf

9

एचटीएमएल को पीडीएफ : सी # नमूने में बदलने के लिए आवश्यक पीडीएफ का उपयोग किया जा सकता है । यहां से जुड़ा नमूना ASP.NET आधारित है, लेकिन लाइब्रेरी का उपयोग विंडोज फॉर्म, WPF, ASP.NET वेबफॉर्म और ASP.NET MVC से किया जा सकता है। लाइब्रेरी विभिन्न HTML रेंडरिंग इंजनों का उपयोग करने का विकल्प प्रदान करती है: इंटरनेट एक्सप्लोरर (डिफ़ॉल्ट) और वेबकीट (सर्वश्रेष्ठ आउटपुट)।

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

नोट: मैं सिंकफ़्यूज़न के लिए काम करता हूँ।


8

यदि आपको वास्तव में एक .Net पीडीएफ लाइब्रेरी की आवश्यकता नहीं है, तो कई मुफ्त HTML से पीडीएफ टूल हैं , जिनमें से कई कमांड-लाइन से चल सकते हैं।

एक समाधान उन में से एक को चुनना होगा और फिर सी # में उसके चारों ओर एक पतली आवरण लिखना होगा। जैसे, इस ट्यूटोरियल में


ट्यूटोरियल एक वेबसाइट से एक घटक का उपयोग करता है जो किसी भी अधिक मौजूद नहीं है।
टॉम विंटर

7

मैंने Pdf कन्वर्टर के लिए ExpertPDF Html का इस्तेमाल किया । अच्छा काम करता है। Unfortunatelly, यह मुफ़्त नहीं है।


क्या ExpertPDf के पास दस्तावेजों को चिह्नित करने के लिए एक विकल्प है?
user1799214

@ user1799214 - हां, एक्सपर्ट पीपीएफ वॉटरमार्क का समर्थन करता है। नमूना कोड के लिए यहां देखें । मैंने अपनी वेबसाइट पर वॉटरमार्क के साथ इसका सफलतापूर्वक उपयोग किया है।
थियोफिलस

यह काफी अच्छा काम करता है, लेकिन वे समर्थन सवालों का जवाब नहीं देते हैं।
माइकल फ़्रीजिम

7

एक नया वेब-आधारित दस्तावेज़ पीढ़ी ऐप भी है - DocRaptor.com । उपयोग करने में आसान लगता है, और एक मुफ्त विकल्प है।


7

2018 का अपडेट, और चलो मानक HTML + CSS = PDF समीकरण का उपयोग करें!

HTML-to-PDF मांगों के लिए अच्छी खबरें हैं। जैसा कि इस जवाब से पता चला है , W3C मानक css-break-3 समस्या को हल करेगा ... यह एक उम्मीदवार की सिफारिश है कि 2017 या 2018 में परीक्षण के बाद निश्चित सिफारिश में बदल जाए।

जैसा कि नहीं-तो-मानक समाधान हैं, सी # के लिए प्लगइन्स के साथ, जैसा कि दिखाया गया है प्रिंट-css.rocks


1
Print-css.rocks द्वारा लिंक किए गए समाधानों में PDFreactor के लिए $ 2,950.00, प्रिंस के लिए $ 3800 और एंटीना हाउस फॉर्मेट V7 के लिए $ 5,000.00 की लागत है। और वीसिप्रिंट पायथन के लिए प्रतीत होता है।
एमडीवे

6

आप Google Chrome प्रिंट-टू-पीडीएफ़ सुविधा का उपयोग इसके हेडलेस मोड से कर सकते हैं। मैंने पाया कि यह सबसे सरल विधि है।

var url = "/programming/564650/convert-html-to-pdf-in-net";
var chromePath = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
var output = Path.Combine(Environment.CurrentDirectory, "printout.pdf");
using (var p = new Process())
    {
        p.StartInfo.FileName = chromePath;
        p.StartInfo.Arguments = $"--headless --disable-gpu --print-to-pdf={output} {url}";
        p.Start();
        p.WaitForExit();
    }

अरे, यह वास्तव में स्वामित्व वाले सर्वर और vps के लिए अच्छा है। साझा करने के लिए धन्यवाद।
एमजेबी

IIS में ASP.NET को बाहरी प्रोग्राम चलाने के लिए लिखने की अनुमति अनुमति के साथ, एप्लिकेशन पूल> अग्रिम सेटिंग्स> पहचान> "
लोकल

4

ABCpdf.NET (http://www.websupergoo.com/abcpdf-5.htm)

हम उपयोग करते हैं और सलाह देते हैं।

बहुत अच्छा घटक, यह न केवल एक वेबपेज को एक छवि की तरह पीडीएफ में परिवर्तित करता है, बल्कि वास्तव में पाठ, छवि, स्वरूपण आदि को परिवर्तित करता है ...

यह मुफ्त नहीं है लेकिन यह सस्ता है।


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

3
ABCPdf के लिए +1। पिछले टिप्पणीकार ने मेरे द्वारा किए गए समान समर्थन वाले लोगों से बात नहीं की होगी - उन्होंने हमेशा मुझे राइट बैक लिखा और हमेशा हमारे पास मौजूद किसी भी मुद्दे के लिए एक समाधान था। वे अब IE के बजाय प्रतिपादन इंजन के रूप में गेको का उपयोग करने का समर्थन करते हैं। आप उसको चुन सकते हैं जिसे आप रन-टाइम में चाहते हैं। एबीसी आपको शाब्दिक रूप से कुछ भी करने देता है जो पीडीएफ आपको देता है।
स्टीव

12
बहुत महंगा और खराब समर्थन। मैं बिल्कुल भी एबीसीपीडीएफ की सिफारिश नहीं करता हूं।
विवेक

मैंने पिछले 6 वर्षों से इसका उपयोग किया है, और निष्पक्ष होने के लिए यह हमें अच्छी तरह से परोसा गया है।
toepoke.co.uk

क्या यह उत्तर अभी तक stackoverflow.com/a/2182212/471213 का एक और दोहराव नहीं है ? मेरा मतलब है, दूसरे व्यक्ति जो कार्यक्रम से जुड़े हैं , उन्होंने कम से कम उदाहरण कोड की कुछ पंक्तियाँ प्रदान कीं
usr-local-14

4

मैं रोटाटिवा पैकेज का लेखक हूं। यह रेजर विचारों से सीधे पीडीएफ फाइल बनाने की अनुमति देता है:

https://www.nuget.org/packages/Rotativa/

उपयोग करने के लिए तुच्छ और लेआउट पर आपका पूरा नियंत्रण है क्योंकि आप अपने मॉडल और व्यूबाग कंटेनर से डेटा के साथ रेजर दृश्यों का उपयोग कर सकते हैं।

मैंने Azure पर एक SaaS संस्करण विकसित किया है। यह वेबएपीआई या किसी भी .Net ऐप, सेवा, एज़्योर वेबसाइट, एज़्योर वेब, जो भी चलाता है, से इसका उपयोग करना आसान बनाता है।

http://www.rotativahq.com/

मुफ्त खाते उपलब्ध हैं।


क्या यह Itextsharp पर निर्भर करता है और इसलिए इसका उपयोग करने के लिए आपके पास itextsharp का लाइसेंस होना आवश्यक है?
मीका आर्मेंट्राउट

2
@MicahArmantrout नहीं यह नहीं है। यह पीडीएफ फाइल बनाने के लिए wkhtmltopdf.exe का उपयोग करता है। लाइसेंस की जरूरत नहीं।
जियोर्जियो बोजियो

@ मिचअरमेंट्राउट, क्या आईटैक्सशार्प भी नहीं है जीएनयू जीपीएल? gnu.org/licenses/agpl.html
प्रणव सिंह

हम दोनों तकनीकी और साथ ही कुछ कानूनी कारणों के लिए iText (शार्प) 5 से पहले के संस्करणों के उपयोग की सलाह नहीं देते हैं। stackoverflow.com/questions/8517776/itexsharp-license
मीका आर्मेंट्राउट

4

नीचे iTextSharp (iTextSharp + itextsharp.xmlworker) का उपयोग करके पीडीएफ + सीएसएस को पीडीएफ में परिवर्तित करने का एक उदाहरण है

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;


byte[] pdf; // result will be here

var cssText = File.ReadAllText(MapPath("~/css/test.css"));
var html = File.ReadAllText(MapPath("~/css/test.html"));

using (var memoryStream = new MemoryStream())
{
        var document = new Document(PageSize.A4, 50, 50, 60, 60);
        var writer = PdfWriter.GetInstance(document, memoryStream);
        document.Open();

        using (var cssMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssText)))
        {
            using (var htmlMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)))
            {
                XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, htmlMemoryStream, cssMemoryStream);
            }
        }

        document.Close();

        pdf = memoryStream.ToArray();
}

ध्यान दें कि iTextSharp XHtml के साथ काम करता है और आपके html की गुणवत्ता के लिए काफी संवेदनशील है। यह टूट जाएगा, जहां SelectPdf और HiqPdf नहीं होगा।
सेवेज

3

यह आपके पास किसी भी अन्य आवश्यकताओं पर निर्भर करता है।

एचटीएमएल को लोड करने के लिए वेबब्रोसर नियंत्रण का उपयोग करना और फिर स्थानीय स्तर पर स्थापित पीडीएफ प्रिंटर के लिए प्रिंट विधि मुद्रण का उपयोग करना वास्तव में सरल लेकिन आसानी से तैनात करने योग्य समाधान नहीं है। कई नि: शुल्क पीडीएफ प्रिंटर उपलब्ध हैं और WebBrowser नियंत्रण .Net फ्रेमवर्क का एक हिस्सा है।

EDIT: यदि आप Html XHtml है तो आप PDFizer का उपयोग नौकरी करने के लिए कर सकते हैं ।


3

पीडीएफ विजन अच्छा है। हालांकि, इसका उपयोग करने के लिए आपके पास फुल ट्रस्ट होना चाहिए। मैंने पहले ही ईमेल किया और पूछा कि मेरे HTML को सर्वर पर परिवर्तित क्यों नहीं किया जा रहा है, लेकिन इसने स्थानीयहोस्ट पर ठीक काम किया है।



2

मैं भी थोड़ी देर पहले यही ढूंढ रहा था। मैं HTMLDOC में चला गया http://www.easysw.com/htmldoc/ जो एक मुफ्त ओपन सोर्स कमांड लाइन ऐप है जो एक HTML फाइल को एक तर्क के रूप में लेता है और उसमें से एक पीडीएफ निकालता है। यह मेरी साइड प्रोजेक्ट के लिए मेरे लिए बहुत अच्छा काम कर रहा है, लेकिन यह सब इस बात पर निर्भर करता है कि आपको वास्तव में क्या चाहिए।

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

संपादित करें (2/25/2014): डॉक्स और साइट की तरह लगता है http://www.msweet.org/projects.php?Z1 पर चले गए


नमस्ते, क्या आप एक लिंक प्रदान कर सकते हैं और यह भी
बता सकते हैं

static.persisted एलाउंस.com/htmldoc_1.9.1586-setup.exe ध्यान रखें कि यह एक कमांड लाइन प्रोग्राम है। आपको इसे काम करने के लिए अपने आवेदन के भीतर से निष्पादित करना होगा। आप अध्याय 4 से इसके तर्कों और कैविएट के
enriquein

मुझे यकीन नहीं है कि यह आजकल कितना उपयोगी होगा, लेकिन अगर यह आपकी मदद करता है: dropbox.com/s/9kfn3ttoxs0fiar/htmldoc_1.9.1586-setup.exe
enriquein

वेबसाइट अब संचालन में नहीं है।
टॉम विंटर

2

अगर आपको pdf में परफेक्ट html रेंडरिंग चाहिए तो आपको कमर्शियल लाइब्रेरी का इस्तेमाल करना होगा।

ExpertPdf Html To Pdf Converter का उपयोग करना बहुत आसान है और यह नवीनतम HTML5 / css3 का समर्थन करता है। आप या तो संपूर्ण url को pdf में बदल सकते हैं:

using ExpertPdf.HtmlToPdf; 
byte[] pdfBytes = new PdfConverter().GetPdfBytesFromUrl(url);

या एक html स्ट्रिंग:

using ExpertPdf.HtmlToPdf; 
byte[] pdfBytes = new PdfConverter().GetPdfBytesFromHtmlString(html, baseUrl);

आपके पास डिस्क पर फ़ाइल के स्ट्रीम में सीधे उत्पन्न पीडीएफ दस्तावेज़ को बचाने का विकल्प भी है।


यदि आपको पीडीएफ में सही HTML रेंडरिंग की जरूरत है तो आपको एक व्यावसायिक पुस्तकालय का उपयोग करने की आवश्यकता नहीं है
obayhan

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

@ गोबहन - मैं आप पर विश्वास करना चाहूंगा। शायद आप हमारे साथ साझा कर सकते हैं जो भी उपकरण आपको बहुत अच्छे लग रहे हैं।
पीटर वॉन

शीर्ष पर @PeterWone कई खुले स्रोत विकल्प हैं जैसा कि आप आसानी से देख सकते हैं। किसी से एक ही चीज़ साझा करने के लिए कहना सिर्फ समय की चोरी है। लेकिन अगर आपने उन सभी और असंतुष्टों की कोशिश की, तो मुझे आशा है कि आप अपनी टिप्पणियों को उनके नीचे साझा करेंगे जो आपको संतुष्ट नहीं करते हैं और शायद तब यह ज्ञान बढ़ाने में मदद करेगा।
ओबैहन

@obayhan - दूसरों ने पहले से जो किया है उसे क्यों दोहराएं? वे तीन श्रेणियों में आते हैं: वास्तव में मुफ्त नहीं, अस्वीकार्य निर्भरता जैसे wkhtmltopdf या IE9 और PDF रेंडरर के लिए PDFSharp। पीडीएफ के लिए एचआर # शुद्ध सी # में केवल एक है और यह पेजिंग का एक भयानक काम करता है - यह एक लंबे पृष्ठ का प्रतिपादन करता है और इसे काट देता है, अक्सर पाठ की पंक्तियों के माध्यम से क्लिपिंग करता है। यदि मुझे रेंडरर को पूरी तरह से फिर से लिखने का समय मिल सकता है, तो पीडीएफ के लिए एचआर # हाथ नीचे जीत जाएगा: यह तेज, मुफ्त है और इसकी निर्भरताएं हैं। लेकिन यह बिल्कुल नया रेंडर होगा, मुझे डर है।
पीटर वॉन

2

यह एक निःशुल्क पुस्तकालय है और बहुत आसानी से काम करता है: OpenHtmlToPdf

string timeStampForPdfName = DateTime.Now.ToString("yyMMddHHmmssff");

string serverPath = System.Web.Hosting.HostingEnvironment.MapPath("~/FolderName");
string pdfSavePath = Path.Combine(@serverPath, "FileName" + timeStampForPdfName + ".FileExtension");


//OpenHtmlToPdf Library used for Performing PDF Conversion
var pdf = Pdf.From(HTML_String).Content();

//FOr writing to file from a ByteArray
 File.WriteAllBytes(pdfSavePath, pdf.ToArray()); // Requires System.Linq


2

ऐसा लगता है कि अब तक का सबसे अच्छा मुफ्त .NET समाधान है मैकपेकिन लाइब्रेरी जो कि wkhtmltopdf के आसपास एक आवरण है नेटिव लाइब्रेरी के है।

मैंने अब कुछ हज़ार HTML स्ट्रिंग्स को पीडीएफ फाइलों में बदलने के लिए सिंगल-थ्रेडेड संस्करण का उपयोग किया है और यह बहुत अच्छा काम करता है। यह बहु-थ्रेडेड वातावरण (उदाहरण के लिए IIS) में भी काम करने वाला है, लेकिन मैंने इसका परीक्षण नहीं किया है।

इसके अलावा के बाद से मैं के नवीनतम संस्करण का उपयोग करना चाहता wkhtmltopdf (लेखन के समय 0.12.5), मैं आधिकारिक वेबसाइट से डाउनलोड किया DLL, अपने प्रोजेक्ट जड़, सच करने के लिए उत्पादन के लिए सेट की नकल करने के लिए यह की नकल की है, और जैसे पुस्तकालय प्रारंभ इसलिए:

var dllDir = AppDomain.CurrentDomain.BaseDirectory;
Converter = new StandardConverter(new PdfToolset(new StaticDeployment(dllDir)));

उपरोक्त कोड बिल्कुल "wkhtmltox.dll" के लिए दिखेगा , इसलिए फ़ाइल का नाम न बदलें। मैंने DLL के 64-बिट संस्करण का उपयोग किया।

सुनिश्चित करें कि आप बहु-थ्रेडेड वातावरण के लिए निर्देश पढ़ते हैं, क्योंकि आपको इसे केवल एक बार ऐप जीवनचक्र के अनुसार शुरू करना होगा, इसलिए आपको इसे एक सिंगलटन या कुछ और में डालना होगा।


1

यहाँ prkh द्वारा wkhtmltopdf.dll के लिए एक आवरण है

और कोडेक्स द्वारा wkhtmltopdf.exe के लिए एक आवरण
- नगेट पर भी ।


किसी भी डॉक्स या ट्यूटोरियल का उपयोग कैसे करें? वहाँ किसी भी प्रलेखन के बिना वहाँ केवल स्रोत कोड है
बुर्जुआ

1
कोड डाउनलोड करें और यूनिट परीक्षणों पर एक नज़र डालें। आपको कुछ अच्छे उपयोग के नमूने देने चाहिए।
गारफील्ड

वास्तव में मदद नहीं करता है, वास्तव में मैं काम करने के लिए pruiz समाधान के परीक्षण भी नहीं कर सकता, यह कहता है कि No tests are run because no tests are loaded or the selected tests are disabledgoogling भी मदद नहीं करता है
बुर्जुआ

@ बूर्जुआ यह आमतौर पर आपके द्वारा उपयोग किए जा रहे परीक्षण धावक के संस्करण से संबंधित है। हालाँकि, मेरे github के प्रोजेक्ट साइट पर एक समस्या को खोलने का प्रयास करें और मैं आपकी मदद करने की कोशिश करूँगा ..
पाब्लो रुइज गार्सिया

नमस्ते यह आवरण ठीक काम करता है, लेकिन मेरे Google पाई चार्ट प्रदर्शित नहीं कर रहा है। इसलिए जब तक मैं इसे हल नहीं कर पाता, मुझे एक और समाधान खोजना होगा।
आंद्रे लोंबार्ड ने

1

सबसे अच्छा उपकरण जो मैंने पाया है और जावास्क्रिप्ट और शैलियों के पीडीएफ उत्पन्न करने के लिए इस्तेमाल किया गया है या HTML पृष्ठ phantomJS है

उदाहरण फ़ोल्डर के exe की जड़ में पाया rasterize.js फ़ंक्शन के साथ .exe फ़ाइल डाउनलोड करें और अंदर समाधान डालें।

यह आपको किसी भी कोड में फ़ाइल को डाउनलोड करने की अनुमति देता है बिना उस फ़ाइल को भी यह फ़ाइल को डाउनलोड करने की अनुमति देता है जब शैलियों और विशेष रूप से jquery लागू होती है।

निम्न कोड उत्पन्न पीडीएफ फाइल:

public ActionResult DownloadHighChartHtml()
{
    string serverPath = Server.MapPath("~/phantomjs/");
    string filename = DateTime.Now.ToString("ddMMyyyy_hhmmss") + ".pdf";
    string Url = "http://wwwabc.com";

    new Thread(new ParameterizedThreadStart(x =>
    {
        ExecuteCommand(string.Format("cd {0} & E: & phantomjs rasterize.js {1} {2} \"A4\"", serverPath, Url, filename));
                           //E: is the drive for server.mappath
    })).Start();

    var filePath = Path.Combine(Server.MapPath("~/phantomjs/"), filename);

    var stream = new MemoryStream();
    byte[] bytes = DoWhile(filePath);

    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment;filename=Image.pdf");
    Response.OutputStream.Write(bytes, 0, bytes.Length);
    Response.End();
    return RedirectToAction("HighChart");
}



private void ExecuteCommand(string Command)
{
    try
    {
        ProcessStartInfo ProcessInfo;
        Process Process;

        ProcessInfo = new ProcessStartInfo("cmd.exe", "/K " + Command);

        ProcessInfo.CreateNoWindow = true;
        ProcessInfo.UseShellExecute = false;

        Process = Process.Start(ProcessInfo);
    }
    catch { }
}


private byte[] DoWhile(string filePath)
{
    byte[] bytes = new byte[0];
    bool fail = true;

    while (fail)
    {
        try
        {
            using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                bytes = new byte[file.Length];
                file.Read(bytes, 0, (int)file.Length);
            }

            fail = false;
        }
        catch
        {
            Thread.Sleep(1000);
        }
    }

    System.IO.File.Delete(filePath);
    return bytes;
}

क्या आप अपना पूर्ण स्रोत कोड साझा कर सकते हैं? मैं C # में नया हूं इसलिए मैं आयात पर भी अटक रहा हूं।
बीबी जॉन

1

आप स्पायर की जांच भी कर सकते हैं , यह आपको HTML to PDFइस सरल कोड के कोड के साथ बनाने की अनुमति देता है

 string htmlCode = "<p>This is a p tag</p>";

//use single thread to generate the pdf from above html code
Thread thread = new Thread(() =>
{ pdf.LoadFromHTML(htmlCode, false, setting, htmlLayoutFormat); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();

// Save the file to PDF and preview it.
pdf.SaveToFile("output.pdf");
System.Diagnostics.Process.Start("output.pdf");

विस्तृत लेख: asp.net C # में HTML को पीडीएफ में कैसे बदलें


शिखर एक पीडीएफ फाइल उत्पन्न करता है जो सिर्फ एक छवि है। सीएसएस के कुछ सही भी नहीं है, जैसे कि बोल्ड फोंट को अनदेखा करना।
सेवेज

एक छवि के रूप में पीडीएफ बनाने के संबंध में मेरे सवाल का जवाब देखें: e-iceblue.com/forum/nuget-pdf-as-non-image-t6710.html
सेवेज

शिखर इस पृष्ठ से मैंने जो 4 वां प्रयास किया है और मुझे लगता है कि यह सबसे अच्छा है, धन्यवाद।
एमडीवे

1

HiQPdf सॉफ्टवेयर के प्रतिनिधि के रूप में मेरा मानना ​​है कि .NET के लिए पीडीएफ कनवर्टर करने के लिए सबसे अच्छा समाधान HiQPdf HTML है । इसमें बाजार पर सबसे उन्नत HTML5, CSS3, SVG और जावास्क्रिप्ट रेंडरिंग इंजन शामिल हैं। HTML से पीडीएफ लाइब्रेरी का एक मुफ्त संस्करण भी है जिसका उपयोग आप 3 पीडीएफ पृष्ठों तक मुफ्त में कर सकते हैं। HTML पृष्ठ से एक बाइट के रूप में पीडीएफ बनाने के लिए न्यूनतम C # कोड है:

HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// set PDF page size, orientation and margins
htmlToPdfConverter.Document.PageSize = PdfPageSize.A4;
htmlToPdfConverter.Document.PageOrientation = PdfPageOrientation.Portrait;
htmlToPdfConverter.Document.Margins = new PdfMargins(0);

// convert HTML to PDF 
byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory(url);

आप ASP.NET और MVC के लिए HiQPdf HTML में PDF कनवर्टर उदाहरण भंडार दोनों के लिए और अधिक विस्तृत उदाहरण पा सकते हैं ।


1
अच्छे परिणाम प्रस्तुत करता है, लेकिन SelectPdf की तरह, यह आपके निर्माण समय और पैकेज के आकार को लागू करने के लिए एक बड़ा हिट हो सकता है। यह लगभग मेरे विज़ुअल स्टूडियो बिल्ड समय को दोगुना कर रहा था। मेरे पेज को भरने के लिए मेरे पास एक कठिन समय भी था - html बीच में बहुत छोटा था - इस संबंध में SelectPdf ने बेहतर काम किया।
सेवेज

1
HTML सामग्री के साथ पृष्ठ भरना HtmlToPdf.BrowserWidth संपत्ति पर निर्भर करता है। यह डिफ़ॉल्ट रूप से 1200 पिक्सेल है लेकिन आप इसे 800 पिक्सेल पर सेट कर सकते हैं और HTML को संपूर्ण PDF पृष्ठ को बहुत अच्छी तरह से भरना चाहिए। आप इसके लिए एक लाइव डेमो और नमूना कोड पा सकते हैं hiqpdf.com/demo/HtmlFittingAndScalingOptions.aspx
HiQPdf

1
कोई .NET कोर समर्थन भी नहीं।
टेलर बुकानन

1

काफी संभावना है कि अधिकांश परियोजनाएं खरोंच से C # समाधान को लागू करने के बजाय C / C ++ इंजन लपेटेंगी। प्रोजेक्ट गेनबर्ग का प्रयास करें ।

इसका परीक्षण करना है

docker run --rm -p 3000:3000 thecodingmachine/gotenberg:6

कर्ल उदाहरण

curl --request POST \
    --url http://localhost:3000/convert/url \
    --header 'Content-Type: multipart/form-data' \
    --form remoteURL=https://brave.com \
    --form marginTop=0 \
    --form marginBottom=0 \
    --form marginLeft=0 \
    --form marginRight=0 \
    -o result.pdf

सी # नमूना

using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.IO;
using static System.Console;

namespace HelloWorld
{
    class Program
    {
        public static async Task Main(string[] args)
        {
            try
            {
                var client = new HttpClient();            
                var formContent = new MultipartFormDataContent
                    {
                        {new StringContent("https://duckduckgo.com/"), "remoteURL"},
                        {new StringContent("0"), "marginTop" }
                    };
                var result = await client.PostAsync(new Uri("http://localhost:3000/convert/url"), formContent);
                await File.WriteAllBytesAsync("duckduck.com.pdf", await result.Content.ReadAsByteArrayAsync());
            }
            catch (Exception ex)
            {
                WriteLine(ex);
            }
        }
    }
}

संकलन करना

csc sample.cs -langversion:latest -reference:System.Net.Http.dll && mono ./sample.exe

0

ASP.NET से HTML को पीडीएफ में बदलने के लिए इस PDF Duo .Net कनवर्ज़न घटक को आज़माएंअतिरिक्त dlls का उपयोग किए बिना अनुप्रयोग ।

आप HTML स्ट्रिंग या फाइल पास कर सकते हैं, या पीडीएफ जेनरेट करने के लिए स्ट्रीम कर सकते हैं। नीचे दिए गए कोड का उपयोग करें (उदाहरण C #):

string file_html = @"K:\hdoc.html";   
string file_pdf = @"K:\new.pdf";   
try   
{   
    DuoDimension.HtmlToPdf conv = new DuoDimension.HtmlToPdf();   
    conv.OpenHTML(file_html);   
    conv.SavePDF(file_pdf);   
    textBox4.Text = "C# Example: Converting succeeded";   
}   

जानकारी + C # / VB उदाहरण आप यहां देख सकते हैं: http://www.duodimension.com/html_pdf_asp.net/component_html_pdf.aspx


1
बिटडिफेंडर की रिपोर्ट: "मैलवेयर का पता चला! इस पृष्ठ पर पहुंच अवरुद्ध कर दी गई है।" मेरी इस पर कोई राय नहीं है कि यह रिपोर्ट वास्तविक है या गलत सकारात्मक है।
ज्योफएम

0

HTML को C # में PDF में बदलने के लिए ABCpdf का उपयोग करें

एबीसीपीडी गेको या ट्राइडेंट रेंडरिंग इंजन का उपयोग कर सकता है, इसलिए आपकी HTML टेबल फायरफॉक्स और इंटरनेट एक्सप्लोरर में दिखाई देगी।

Www.abcpdfeditor.com पर ABCpdf का ऑन-लाइन डेमो है। आप इसका उपयोग यह जांचने के लिए कर सकते हैं कि सॉफ़्टवेयर को डाउनलोड और इंस्टॉल करने की आवश्यकता के बिना आपकी तालिका पहले कैसे प्रस्तुत करेगी।

संपूर्ण वेब पृष्ठों को प्रस्तुत करने के लिए आपको AddImageUrl या AddImageHtml फ़ंक्शन की आवश्यकता होगी। लेकिन अगर आप सब करना चाहते हैं तो बस HTML स्टाइल वाला टेक्स्ट जोड़ें फिर आप नीचे दिए गए AddHtml फ़ंक्शन को आज़मा सकते हैं:

Doc theDoc = new Doc();
theDoc.FontSize = 72;
theDoc.AddHtml("<b>Some HTML styled text</b>");
theDoc.Save(Server.MapPath("docaddhtml.pdf"));
theDoc.Clear();

एबीसीपीडीएफ एक वाणिज्यिक सॉफ्टवेयर शीर्षक है, हालांकि मानक संस्करण अक्सर विशेष पेशकश के तहत मुफ्त में प्राप्त किया जा सकता है।


91
आपको वास्तव में अपने सभी उत्तरों में लिखना चाहिए जो आप websupergoo के लिए काम करते हैं। Faq से: However, you must disclose your affiliation with the product in your answers. Also, if a huge percentage of your posts include a mention of your product, you're clearly here for the wrong reasons. आपके सभी उत्तर ABCpdf
jgauffin

12
आउच! मैंने ABCpdf का सुझाव दिया क्योंकि यह एक ऐसा घटक है जिससे मैं परिचित हूं। अगर मेरी पोस्ट का एक बड़ा प्रतिशत पीडीएफ से संबंधित है, तो यह केवल इसलिए है क्योंकि मैं अपने हित के क्षेत्रों के बाहर के विषयों में योगदान करने से बचता हूं। क्षमा याचना।
AffineMesh

पोस्टर्स डिफेंस में वेबसाइट प्रोडक्ट को काफी अच्छा बनाती है।
टॉम विंटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.