এইচটিএমএলকে .NET এ পিডিএফ রূপান্তর করুন


425

আমি কোনও ফাংশনে এইচটিএমএল বিষয়বস্তু প্রেরণ করে একটি পিডিএফ তৈরি করতে চাই। আমি এটির জন্য আইটেক্সটশার্প ব্যবহার করেছি তবে এটি টেবিলগুলির মুখোমুখি হলে এবং লেআউটটি অগোছালো হয়ে গেলে এটি ভাল করে না।

একটি ভাল উপায় আছে কি?


আপনি এর জন্য জেমবক্স . ডকুমেন্ট ব্যবহার করতে পারেন । এছাড়াও এখানে আপনি এইচটিএমএল ফাইলটিকে পিডিএফ ফাইলে রূপান্তর করার জন্য একটি নমুনা কোড পেতে পারেন।
মারিও জেড

আইটেক্সটশার্পের কোন সংস্করণ আপনি ব্যবহার করেন এবং আপনি কি এইচটিএমএল ভাগ করতে পারেন?
আমেদী ভ্যান গ্যাস

এখনও অতিরিক্ত তথ্যের জন্য আমার অনুরোধের কোনও উত্তর নেই। আপনি যদি এইচটিএমএল ওয়ার্কার বা এক্সএমএল ওয়ার্কার ব্যবহার করছেন তবে দয়া করে যুক্ত করুন।
আমেদী ভ্যান গ্যাস

। নেট কোর সম্পর্কে কি?
পিয়েরো আলবার্তো

সেপ্টেম্বর 2019: আমি একটি নতুন উত্তর যুক্ত করেছি তালিকাভুক্ত কয়েকটি বিকল্পের জন্য নিখরচায় অন্যরা নিখরচায় রয়েছে এবং কয়েকটি নেট নেট স্ট্যাকওভারফ্লো
মরিসিও গ্রাসিয়া গুতেরেজ

উত্তর:


198

সম্পাদনা: পিডিএফশার্প ব্যবহার করে পিডিএফের জন্য নতুন পরামর্শ এইচটিএমএল রেন্ডারার

(Wkhtmltopdf চেষ্টা করার পরে এবং এটি এড়াতে পরামর্শ দেওয়ার পরে)

এইচটিএমএলরেন্ডেরিয়র.পিডিএফশার্প একটি 100% সম্পূর্ণ সি # পরিচালিত কোড , সহজেই ব্যবহারযোগ্য থ্রেড নিরাপদ এবং সবচেয়ে গুরুত্বপূর্ণভাবে বিনামূল্যে ( নতুন BSD লাইসেন্স ) সমাধান।

ব্যবহার

  1. HtmlRenderer.PdfSharp nuget প্যাকেজটি ডাউনলোড করুন ।
  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;
    }

একটি খুব ভাল বিকল্প একটি Is মুক্ত সংস্করণ এর iTextSharp

সংস্করণ অবধি ৪.১..6 আইটেক্সট শার্পকে এলজিপিএল লাইসেন্সের অধীনে লাইসেন্স দেওয়া হয়েছিল এবং ৪.১ versions অবধি সংস্করণগুলি (বা এছাড়াও কাঁটাচামচও থাকতে পারে) প্যাকেজ হিসাবে উপলব্ধ থাকে এবং নিখরচায় ব্যবহার করা যেতে পারে। অবশ্যই কেউ অবিরত 5+ প্রদত্ত সংস্করণটি ব্যবহার করতে পারেন ।

আমি আমার প্রকল্পে wkhtmltopdf সমাধান সংহত করার চেষ্টা করেছি এবং এতে প্রচুর বাধা ছিল।

নিম্নলিখিত কারণে হোস্টেড এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলিতে আমি ব্যক্তিগতভাবে wkhtmltopdf - ভিত্তিক সমাধান ব্যবহার করা এড়াতে চাই avoid

  1. সবার আগে wkhtmltopdf হ'ল সি ++ সি # নয় বাস্তবায়িত হয় এবং আপনি এটি আপনার সি # কোডের মধ্যে এম্বেড করে বিভিন্ন সমস্যার মুখোমুখি হন, বিশেষত আপনার প্রকল্পের 32 বিট এবং 64 বিটের মধ্যে স্যুইচ করার সময়। বিভিন্ন মেশিনে "অবৈধ ফর্ম্যাট ব্যতিক্রম" এড়াতে শর্তাধীন প্রকল্প বিল্ডিং ইত্যাদিসহ বেশ কয়েকটি কাজের চেষ্টা করতে হয়েছিল।
  2. আপনি যদি নিজের ভার্চুয়াল মেশিন পরিচালনা করেন তবে ঠিক আছে। কিন্তু যদি আপনার প্রকল্পের মত একটি সবাধ পরিবেশের মধ্যে চলমান ( নভোনীল (বাস্তবিক অসম্ভব withing আকাশী নীল যেমন TuesPenchin লেখক দ্বারা উল্লিখিত হয় ), ইলাস্টিক Beanstalk ইত্যাদি) এটা কনফিগার করতে একটি দুঃস্বপ্ন যে শুধুমাত্র কাজ wkhtmltopdf জন্য পরিবেশ।
  3. wkhtmltopdf আপনার সার্ভারের মধ্যে ফাইল তৈরি করছে যাতে আপনার ব্যবহারকারীর অনুমতি পরিচালনা করতে হবে এবং যেখানে wkhtmltopdf চলছে সেখানে "লিখন" অ্যাক্সেস দিতে হবে।
  4. Wkhtmltopdf স্ট্যান্ডেলোন অ্যাপ্লিকেশন হিসাবে চলছে, সুতরাং এটি আপনার আইআইএস অ্যাপ্লিকেশন পুল দ্বারা পরিচালিত হয় না । সুতরাং আপনাকে অন্য মেশিনে পরিষেবা হিসাবে এটি হোস্ট করতে হবে অথবা আপনি আপনার প্রোডাকশন সার্ভারের মধ্যে স্পাইক এবং মেমরির ব্যবহার প্রক্রিয়াজাতকরণের অভিজ্ঞতা অর্জন করতে পারেন।
  5. এটি পিডিএফ জেনারেট করার জন্য টেম্প ফাইলগুলি ব্যবহার করে এবং এডাব্লুএস ইসি 2 এর মতো ক্ষেত্রে যা সত্যই স্লো ডিস্ক i / o রয়েছে এটি একটি বড় পারফরম্যান্স সমস্যা।
  6. সর্বাধিক ঘৃণিত "DLL 'wkhtmltox.dll' লোড করতে অক্ষম" অনেক ব্যবহারকারী দ্বারা প্রতিবেদন করা হয়েছে।

--- প্রাক সম্পাদনা বিভাগ ---

যে কেউ সহজ অ্যাপ্লিকেশন / পরিবেশে এইচটিএমএল থেকে পিডিএফ তৈরি করতে চান তার জন্য আমি পরামর্শ হিসাবে আমার পুরানো পোস্টটি ছেড়ে চলেছি।

TuesPechkin

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

বা বিশেষত এমভিসি ওয়েব অ্যাপ্লিকেশনগুলির জন্য (তবে আমি মনে করি আপনি এটি কোনও। নেট অ্যাপ্লিকেশনটিতে ব্যবহার করতে পারেন)

Rotativa

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

তারা উভয়ই html পিডিএফ রূপান্তর করার জন্য ডাব্লুএইচটিএমটিপিডিএফ বাইনারি ব্যবহার করে । যা পৃষ্ঠাগুলি উপস্থাপনের জন্য ওয়েবকিট ইঞ্জিন ব্যবহার করে যাতে এটি CSS স্টাইল শীটগুলি পার্স করতে পারে ।

তারা সি # এর সাথে বিজোড় ইন্টিগ্রেশন ব্যবহার করা সহজ সরবরাহ করে।

রোটাটিভা যেকোন রেজার ভিউ থেকে সরাসরি পিডিএফ তৈরি করতে পারে ।

অতিরিক্ত বিশ্বের ওয়েব অ্যাপ্লিকেশনগুলির জন্য তারা থ্রেড সুরক্ষা ইত্যাদিও পরিচালনা করে ...


2
আপনার পোস্ট আপডেট করার জন্য আপনাকে ধন্যবাদ। আমি PdfSharp চেষ্টা করে যাচ্ছি। আপনি আমাকে অনেক সময় বাঁচিয়েছেন।
জন হেন্কেল

1
পারফরম্যান্সের দিক থেকে পিডিএফশার্প ভাল, তবে এটি আমার পক্ষে সঠিকভাবে ভাসমান রেন্ডার করে নি। ভাগ্যক্রমে, আমি ভাল পুরানো টেবিলগুলি ব্যবহার করার জন্য মার্কআপটি পরিবর্তন করতে পারলাম, পিডিএফশার্প সেগুলি ভালভাবে পরিচালনা করে।
গিগব

3
আমরা এইচটিএমএল রেন্ডারারের চেষ্টা করেছি। কোনও সিএসএস লোড না করার সময় এটি সত্যিই দ্রুত ছিল। কিন্তু যখন আমরা সিএসএস প্রয়োগ করার চেষ্টা করেছি (বুটস্ট্র্যাপ প্লাস কিছু বিসপোক), সিএসএস পার্সিংয়ের কিছুটা সময় লেগেছিল (যা আমরা সম্ভবত কমিয়ে দিতে পারি), এবং ওয়েবপৃষ্ঠায় রেন্ডারিং সম্পূর্ণ আলাদা ছিল।
আউটস্ট্যান্ডিং

1
@ ব্যবহারকারী 2347528 - এইচটিএমএলরেন্ডেরিয়র.পিডিএফশার্পের উত্সের দিকে তাকিয়ে, এটি ঠিক করার কোনও উপায় নেই - এটি কেবলমাত্র মোট পৃষ্ঠার উচ্চতা এবং প্রতিটি পিডিএফ পৃষ্ঠায় ক্লিপ নেয়, যা সত্যিই দুর্ভাগ্যজনক - এর অর্থ এই লাইব্রেরির সাথে বহু পৃষ্ঠার পিডিএফগুলি সত্যিই করতে পারে ' করা হবে না।
মিঃ বাংলো

3
বিএস। এটি HTML এর একটি চিত্র তৈরি করে এবং চিত্রটি পিডিএফ ফাইলে যুক্ত করে। এটি মোটেই বাস্তব পিডিএফ নয়। এছাড়াও, পিডিএফ একটি ভেক্টর গ্রাফিক্স ফর্ম্যাট - আপনি খুব সীমার কাছে স্ক্রোল করতে পারেন - অবশ্যই পিডিএফটি বাদে যদি রাস্টার গ্রাফিক থাকে, যা এই লাইব্রেরিটি তৈরি করে।
স্টিফান স্টেইগার

191

আপডেট: আমি এখন ডাব্লুএইচটিএম্লটপডিএফ এর চেয়ে পপিটিয়ারশার্পের পরামর্শ দেব।

ব্যবহার করে দেখুন wkhtmtopdf । এটি এখনও অবধি পাওয়া সেরা সরঞ্জাম।

.NET- র জন্য, আপনি এই ছোট লাইব্রেরিটি খুব সহজেই ডাব্লুএইচটিএমটোপিডিএফ কমান্ড লাইন ইউটিলিটিটি শুরু করতে ব্যবহার করতে পারেন ।


17
সমর্থন। নেট ??
কিকিনেট

6
এটি একক বাস্তবায়নযোগ্য। আপনি এটি একটি প্রক্রিয়া হিসাবে লঞ্চ করতে পারেন, যুক্তি হিসাবে এইচটিএমএল দস্তাবেজের একটি URL পাস করে।
মারেক

46
@ বামক্যাগেইগ এটি ইতিমধ্যে পেয়েছি =) github.com/gmanny/Pechkin এটি লাইব্রেরির প্রতিটি ব্যবহারযোগ্য ক্রিয়াকলাপ প্রকাশ করে এবং একাধিক থ্রেডে ব্যবহারের জন্য মোড়ক রাখে। এবং এটি নুগেটে।
Gman

7
সি # এটিকে ব্যবহার করতে স্ট্যাকওভারফ্লো.com
ড্যানিয়েল লিটল

7
@ অ্যাডামমসজসিজিস্কি: উইকিপিডিয়া থেকে : এলজিপিএল বিকাশকারী এবং সংস্থাগুলিকে তাদের নিজস্ব সফ্টওয়্যার-অংশগুলির উত্স কোড প্রকাশ করার জন্য (একটি শক্তিশালী কপিলিফ্টের শর্তাবলীতে) প্রয়োজন ছাড়াই নিজের (এমনকি মালিকানাধীন) সফ্টওয়্যারগুলিতে এলজিপিএল সফ্টওয়্যার ব্যবহার এবং সংহত করার অনুমতি দেয়।
অলিভার

34

আমি সম্প্রতি পিডিএফ রূপান্তরিত করেছি পিডিএফ থেকে পিডিএফ রূপান্তর সম্পর্কিত এবং আমার ফলাফলগুলি ভাগ করতে চেয়েছি।

আমার এখন পর্যন্ত প্রিয় ওপেনএইচটিএমটিএলটোপিডিএফ

এই সরঞ্জামের সুবিধা:

  • খুব ভাল এইচটিএমএল সামঞ্জস্যতা (উদাহরণস্বরূপ, এটি আমার উদাহরণের একমাত্র হাতিয়ার ছিল যখন কোনও টেবিল একাধিক পৃষ্ঠাগুলি বিস্তৃত করে সঠিকভাবে সারণী শিরোনামগুলির পুনরাবৃত্তি করে)
  • সাবলীল এপিআই
  • ফ্রি এবং ওপেনসোর্স ( ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 3.0 লাইসেন্স )
  • নুগেটের মাধ্যমে উপলব্ধ

অন্যান্য সরঞ্জাম পরীক্ষিত:


এটির জন্য +1, আমি পিডিএফশার্পের জন্য এইচটিএমএল রেন্ডারারের পরীক্ষা করেছি তবে পৃষ্ঠা বিরতিতে অনেকগুলি সমস্যার মুখোমুখি হয়েছিল। আমি এই প্রকল্পে wkHtmlToPdf এর নির্ভরতার সাথে বেঁচে থাকতে পারি তাই এই সমাধানটি দুর্দান্ত ছিল - এটি এইচটিএমএলকে সুন্দর করে উপস্থাপন করে।
জেএমডন

দেখতে সুন্দর লাগছে, তবে বাহ এটি অনেক সময় নিয়েছিল। 30 সেকেন্ড, বুটস্ট্র্যাপ থিম সহ এবং আরও অনেক সুন্দর পৃষ্ঠা, তবে তবুও।
নিকোলাস পিটারসন

স্টেফানি আইরনপিডিএফ থেকে এখানে। সি # তে এইচটিএমএলকে পিডিএফ তে রূপান্তর করতে আইরনপিডিএফ কীভাবে ব্যবহার করতে হয় তার একটি কোড নমুনা এখানে। আরও আমাদের ওয়েবসাইট থেকে পিডিএফ টিউটোরিয়াল আমাদের এইচটিএমএল পাওয়া যাবে । 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");
স্টিফনি

আমি আইটেক্সট পিডিএফএইচটিএমএল ব্যবহার করেছি তবে এটি সমর্থন করে না background-color। ওপেনএইচটিএমটিওপিডিএফ নিখরচায় পুরোপুরি কাজ করে।
Hp93

আমি ওপেনএইচটিএমএলটিওপিডিএফের শ্রেষ্ঠত্বের সাথে একমত এছাড়াও, এটি ILMerge এর সাথে .exe এবং .dll মার্জ সমর্থন করে।
saygley

30

শেষ আপডেট: 2020 মার্চ

এইচটিএমএল থেকে পিডিএফ রূপান্তরকরণের জন্য অপশনগুলির তালিকাটি .NET যা আমি একসাথে রেখেছি (কিছু বিনামূল্যে দেওয়া হয়েছে)

যদি উপরের কোনও বিকল্প আপনাকে সহায়তা না করে আপনি সর্বদা নুগেট প্যাকেজ https://www.nuget.org/packages?q=html+pdf অনুসন্ধান করতে পারেন


1
আপনি অভিনয় জন্য কোন পরীক্ষা করেছেন? আমরা বর্তমান রূপান্তর সময়ের উন্নতি করতে
চাইছি

আমি কোনও পারফরম্যান্স তুলনা করি নি বিশেষত কারণ এত দীর্ঘ তালিকা - সম্ভবত এর আগে কেউ ইতিমধ্যে একটি "পিডিএফ প্রজন্ম। নেট লাইব্রেরি পারফরম্যান্স রিভিউ" বা অনুরূপ করেছেন
মরিসিও গ্র্যাসিয়া গুতেরেজ

28

পিডিএফ রূপান্তরকারীগুলিতে সর্বাধিক এইচটিএমএল এইচটিএমএল পার্সিং এবং রেন্ডারিং করতে IE এর উপর নির্ভর করে। ব্যবহারকারী যখন তাদের আইই আপডেট করেন এটি ভাঙ্গতে পারে। এখানে এমন একটি যা IE এর উপর নির্ভর করে না।

কোডটি এরকম কিছু:

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

অন্যান্য অনেক রূপান্তরকারীদের মতো, আপনি পাঠ্য, ফাইলের নাম বা url পাস করতে পারেন। ফলাফল কোনও ফাইল বা একটি স্ট্রিমে সংরক্ষণ করা যায়।


35
এটি কার্যকর নয় কারণ আপনার অবশ্যই গ্রন্থাগারটি কিনতে হবে
d1jhoni1b

47
d1jhoni1b, এটি কীভাবে এটি কার্যকর করে না? যদি এটি কোনও অর্থ-প্রদানের সরঞ্জাম হয় তবে এটি ব্যয়বহুল হিসাবে বলা যেতে পারে তবে কেবল সেই মানদণ্ডে অকেজো নয়।
ডন রোলিং

3
এটি সত্য EO.Pdf আইই ব্যবহার করে না। তবে এটি ব্যাকগ্রাউন্ডে কোনও ওয়েবকিট ব্রাউজারের 32 বিট দৃষ্টান্তগুলি স্প্যান করে বলে মনে হচ্ছে। আপনার প্রক্রিয়া তালিকাটি পরীক্ষা করে দেখুন এবং এগুলি rundll32.exe উদাহরণ হিসাবে EO.PDF dll এ নির্দেশ করে দেখবেন। সুতরাং এটি এখনও আমার মতে কিছুটা হ্যাকি।
ম্যাট

1
এটি মিডিয়া = "মুদ্রণ" সমর্থন করে না যা সত্যই বেদনাদায়ক।
মারাত ফাসখিভ

15
Sing 650 এর জন্য একক বিকাশকারী লাইসেন্স। এটা ব্যয়বহুল।
অভিজিৎ নাগরে

25

আমি অত্যন্ত গুরুত্ব সহকারে এনআরসিওকে প্রস্তাব দিই । এটির নিখরচায় এবং অর্থ প্রদানের সংস্করণ রয়েছে এবং এটি সত্যই মূল্যবান। এটি পটভূমিতে wkhtmtopdf ব্যবহার করে তবে আপনার কেবল একটি সমাবেশ প্রয়োজন। ফ্যান্টাস্টিক।

ব্যবহারের উদাহরণ:

নিউগেটের মাধ্যমে ইনস্টল করুন ।

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

দাবি অস্বীকার: আমি বিকাশকারী নই, প্রকল্পের কেবল অনুরাগী :)


3
সত্যিই বেশ দরকারী বলে মনে হচ্ছে। আজকের (05/10/15) হিসাবে এটি উল্লেখযোগ্য যে, এটি সর্বাধিক ডাউনলোড করা হয়েছে w wkhtmtopdf (একটি ন্যুগেট প্যাকেজ হিসাবে) নেটের মোড়ক।
কেন

3
এটি চেষ্টা করে দেখুন, দুর্ভাগ্যক্রমে আমি এটি অ্যাজুরের ওয়েব পৃষ্ঠাগুলিতে কাজ করতে পারি না।
গ্যাব্রিয়েল 14

আমি যখন আমার মেশিনে স্থানীয়ভাবে এটি চালিত করি তখন এই লাইব্রেরিটি ঠিকঠাক কাজ করে তবে হোস্টিং সার্ভারে আমি নীচের ত্রুটি এলোমেলোভাবে দেখছি। পিডিএফ কখনও কখনও উত্পন্ন হয় তবে কখনও কখনও এটি নিম্নলিখিত ত্রুটিটি ছুঁড়ে দেয়। "ত্রুটি
your

wkhtmtopdf জিডিআই +, বা এক্স-সার্ভারের উপর নির্ভর করে যদি আপনি মনো / লিনাক্সে চলেছেন। সুতরাং এটি সার্ভারের পরিবেশের জন্য কার্যকর নয় ...
0-22

এটি ভাল এবং প্রত্যাশিত হিসাবে কাজ করা হয়েছে তবে বিট কোয়ালিটির সমস্যাটি আমি আমার পিডিএফ এ দেখছি, আমরা কি এটি উন্নতি করতে পারি?
ভারত

13

উইনোভেটিভ একটি। নেট পিডিএফ লাইব্রেরি সরবরাহ করে যা এইচটিএমএল ইনপুট সমর্থন করে। তারা সীমাহীন বিনামূল্যে ট্রায়াল অফার করে । আপনি কীভাবে আপনার প্রকল্প স্থাপন করতে চান তার উপর নির্ভর করে এটি পর্যাপ্ত হতে পারে।


4
মনে রাখবেন যে আমরা যখন চূড়ান্তভাবে চেক করেছি তখন আইএন 9 এর সাথে বেমানান ছিল না (যেমন তারা আইআই 9-তে সরানো আই জি জিডিআই রেন্ডারিং ইঞ্জিন ব্যবহার করেছিল)। সুতরাং আপনি যদি এটি ব্যবহার করছেন এমন মেশিনে আইই 9 ইনস্টল থাকে তবে রূপান্তরটি কার্যকর হবে না। তারা এটি সংশোধন করে থাকতে পারে যে আপনি এটি পড়ার পরে, কিন্তু বাণিজ্যিক উপাদানগুলির অনেকগুলি আই রেন্ডারিং ইঞ্জিন ব্যবহার করেছে এবং আইই 9 দিয়ে আনস্টাক করে এসেছে তাই এটি চেক করার মতো।
fubaar

উইনোভেটিভ সেটআপ করা সবচেয়ে সহজ ছিল এবং এটি কেবল বাক্স থেকে বেরিয়েছে। তবে: ১. এটি অ্যাজুর ওয়েবসাইটগুলিতে কাজ করে না, কেবল ক্লাউড অ্যাপ্লিকেশন। ২. এটি আস্তে আস্তে, একটি
অ্যাজুরে

নিশ্চিত করুন। এটা সত্যিই ধীর। আমি wkhtmltopdf এর সাথে তুলনা করেছি।
মারাত ফাসখিভ

উইনোভেটিভ লাইব্রেরি অত্যন্ত ব্যয়বহুল। বিকাশকারী লাইসেন্সের জন্য কিছু $ 650 এবং অন্যান্য লাইসেন্সের জন্য 1200 ডলার।
অভিজিৎ নাগরে

উইনোভেটিভ এইচটিএমএল টু পিডিএফ রূপান্তরকারী অ্যাজুরে ওয়েবসাইটগুলিতে কাজ করে এবং এটি কোনও মন্তব্যে যেমন প্রস্তাবিত হয়েছিল তেমন IE এর উপর নির্ভর করে না। ওয়েবসাইটটিতে অ্যাজুরে সমাধানের জন্য দয়া করে উইন্ডোভেটিভ এইচটিএমএল পিডিএফটি দেখুন : winnovative-software.com/html-to-pdf-converter-azure.aspx । রূপান্তর সময়ের সেটটি উন্নত করতে এইচটিএমটিএলপিডিএফ। কনভার্সনডেলি = 0 সেট করুন কনভার্টারটি এইচটিএমএল পৃষ্ঠাগুলি মোকাবেলায় একটি ডিফল্ট বিলম্ব ব্যবহার করছে যা পৃষ্ঠাটি লোড হওয়ার পরে তাদের সামগ্রী আপডেট করে।
ইভোপিডিএফ

9

এইচটিএমএলকে পিডিএফ রূপান্তর করতে প্রয়োজনীয় পিডিএফ ব্যবহার করা যেতে পারে : সি # নমুনা । এখানে লিঙ্কযুক্ত নমুনাটি এএসপি.এনইটি ভিত্তিক, তবে গ্রন্থাগারটি উইন্ডোজ ফর্ম, ডাব্লুপিএফ, এএসপি.এনইটি ওয়েবফর্ম এবং এএসপি.নেট এমভিসি থেকে ব্যবহার করা যেতে পারে। লাইব্রেরিটি বিভিন্ন HTML রেন্ডারিং ইঞ্জিনগুলি ব্যবহারের বিকল্প সরবরাহ করে: ইন্টারনেট এক্সপ্লোরার (ডিফল্ট) এবং ওয়েবকিট (সেরা আউটপুট)।

আপনি যদি যোগ্যতা অর্জন করেন তবে নিয়ন্ত্রণের পুরো স্যুটটি কমিউনিটি লাইসেন্স প্রোগ্রামের মাধ্যমে বিনামূল্যে (বাণিজ্যিক অ্যাপ্লিকেশনগুলিও) উপলভ্য । সম্প্রদায়ের লাইসেন্স হ'ল সম্পূর্ণ পণ্য যা কোনও সীমাবদ্ধতা বা জলছবি নয়।

দ্রষ্টব্য: আমি সিঙ্কফিউজনের জন্য কাজ করি।


8

আপনার যদি সত্যিকারের। নেট পিডিএফ লাইব্রেরির প্রয়োজন না হয়, পিডিএফ সরঞ্জামগুলিতে অসংখ্য ফ্রি এইচটিএমএল রয়েছে , যার মধ্যে অনেকগুলি কমান্ড-লাইন থেকে চালানো যেতে পারে।

একটি সমাধান হ'ল সেইগুলির মধ্যে একটি বাছাই করা এবং তারপরে C # এর চারপাশে একটি পাতলা মোড়ক লিখুন। যেমন, এই টিউটোরিয়ালে যেমন হয়েছে ।


টিউটোরিয়ালটি এমন কোনও ওয়েবসাইটের একটি উপাদান ব্যবহার করে যা এর বেশি অস্তিত্ব নেই।
টম শীত

7

আমি পিডিএফ রূপান্তরকারী থেকে বিশেষজ্ঞপিডিএফ এইচটিএমএল ব্যবহার করেছি । একটি শালীন কাজ করে। দুর্ভাগ্যক্রমে, এটি নিখরচায় নয়।


ডকুমেন্টগুলি চিহ্নিত করার জন্য কী বিশেষজ্ঞ এক্সপিএফের কাছে বিকল্প রয়েছে?
ব্যবহারকারী 1799214

@ ব্যবহারকারী 1799214 - হ্যাঁ, এক্সপার্টপিডিএফ জলছবিগুলি সমর্থন করে। নমুনা কোডের জন্য এখানে দেখুন । আমি আমার ওয়েবসাইটের ওয়াটারমার্ক সহ এটি সফলভাবে ব্যবহার করেছি।
থিওফিলাস

এটি বেশ ভালভাবে কাজ করে, তবে তারা সমর্থনমূলক প্রশ্নের উত্তর দেয় না।
মাইকেল ফ্রেইজিম

7

এছাড়াও একটি নতুন ওয়েব-ভিত্তিক ডকুমেন্ট জেনারেশন অ্যাপ্লিকেশন রয়েছে - ডকরাপ্টার ডটকম । ব্যবহার করা সহজ বলে মনে হচ্ছে এবং একটি নিখরচায় বিকল্প রয়েছে।


7

2018 এর আপডেট, এবং আসুন স্ট্যান্ডার্ড এইচটিএমএল + সিএসএস = পিডিএফ সমীকরণটি ব্যবহার করুন!

এইচটিএমএল থেকে পিডিএফ দাবিগুলির জন্য সুসংবাদ রয়েছে। যেমন এই উত্তরটি দেখিয়েছে , ডাব্লু 3 সি স্ট্যান্ডার্ড সিএসএস-ব্রেক -3 সমস্যার সমাধান করবে ... এটি পরীক্ষার পরে 2017 বা 2018-তে সুনির্দিষ্ট সুপারিশে রূপান্তরিত করার পরিকল্পনা সহ প্রার্থী প্রস্তাবনা।

প্রিন্ট-সিএসএস.রোকস দ্বারা দেখানো হিসাবে, সি # এর প্লাগইন সহ, সমাধানগুলির মতো নেই


1
প্রিন্ট-সিএসএস.আরকস দ্বারা সংযুক্ত সমাধানগুলির জন্য পিডিএফআরেক্টরটির জন্য 9 2,950.00, প্রিন্সের জন্য $ 3800 এবং অ্যান্টেনা হাউজ ফর্ম্যাটার ভি 7 এর জন্য 5000 ডলার ব্যয় করতে হবে। এবং ওয়েজপ্রিন্ট পাইথনের জন্য প্রদর্শিত হবে।
এমডিএভ

6

আপনি গুগল ক্রোম এর মাথা বিহীন মোড থেকে মুদ্রণ থেকে পিডিএফ বৈশিষ্ট্য ব্যবহার করতে পারেন। আমি এটি সবচেয়ে সহজ এবং সবচেয়ে শক্তিশালী পদ্ধতি বলে মনে করেছি।

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 এর জন্য সত্যিই দুর্দান্ত। ভাগ করে নেওয়ার জন্য ধন্যবাদ.
এমজেবি

আইআইএসে এএসপি.নেটকে লেখার অ্যাক্সেসের অনুমতি সহ বহিরাগত প্রোগ্রাম চালানোর অনুমতি দেওয়ার জন্য, অ্যাপ্লিকেশন পুল> অগ্রিম সেটিংস> পরিচয়> "লোকালসিস্টেম" এ সেট করা হয়েছে
এমজেবি

4

এবিসিপিডিএফ.এনইটি (http://www.websupergoo.com/abcpdf-5.htm)

আমরা ব্যবহার এবং সুপারিশ।

খুব ভাল উপাদান, এটি কেবল কোনও ওয়েবপৃষ্ঠাকে চিত্রের মতো পিডিএফে রূপান্তর করে না তবে পাঠ্য, চিত্র, বিন্যাস ইত্যাদি রূপান্তর করে ...

এটি নিখরচায় নয় তবে এটি সস্তা।


10
আমরা এটি কয়েক বছর ধরে ব্যবহার করেছি এবং এটি ব্যবহারে বেশ বেদনাদায়ক বলে মনে করেছি। আইই রেন্ডারিং ইঞ্জিন, তার দুর্বল চিত্রের গুণমান এবং সংক্ষেপণ, আরও কিছু উন্নত ব্যবহারের পরিস্থিতি (যেমন কুকিজ সরবরাহ এবং অনুরোধ শিরোনাম সরবরাহ করার মতো) হ্যান্ডেল করার জন্য অনুরোধটি কাস্টমাইজ করার সীমাবদ্ধ ক্ষমতা, এর ফলে খুব দু: খজনক সমর্থন very আমি মনে করি এটি কতটা ভাল কাজ করে তা আপনার যা করা দরকার তা সাপেক্ষে।
moribvndvs

3
ABCPdf এর জন্য +1। পূর্ববর্তী মন্তব্যকারী অবশ্যই আমার সমর্থন সমর্থনকারীদের সাথে কথা বলেনি - তারা সবসময় আমাকে ডানদিকে ফিরে লিখত এবং আমাদের যে কোনও সমস্যা ছিল তার সবসময় সমাধান ছিল had তারা এখন আইকের পরিবর্তে গেকোকে রেন্ডারিং ইঞ্জিন হিসাবে সমর্থন করে। রান-টাইমে আপনি যা চান তা চয়ন করতে পারেন। এবিসি আপনাকে পিডিএফ করতে দেয় এমন আক্ষরিক কিছু করতে দেয়।
স্টিভ

12
খুব ব্যয়বহুল এবং দরিদ্র সমর্থন। আমি মোটেও abcPDF এর প্রস্তাব দিই না।
বিবেক

আমি এটি গত 6 বছর ধরেও ব্যবহার করেছি এবং সুষ্ঠুভাবে এটি আমাদের ভালভাবে পরিবেশন করেছে।
toepoke.co.uk

এই উত্তরটি কি স্ট্যাকওভারফ্লো . com / a / 2182212 / 471213 এর আর একটি পুনরাবৃত্তি নয় ? আমি বলতে চাইছি, প্রোগ্রামটির সাথে যুক্ত অন্য লোকটি কমপক্ষে কয়েকটি কোডের উদাহরণ কোড সরবরাহ করেছিল
usr-local-ΕΨΗΕΛΩΝ

4

আমি রোটাটিভা প্যাকেজের লেখক। এটি সরাসরি রেজার ভিউ থেকে পিডিএফ ফাইল তৈরি করতে দেয়:

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

আপনি আপনার মডেল এবং ভিউব্যাগ ধারক থেকে ডেটার সাথে রেজার ভিউ ব্যবহার করতে পারবেন বলে ব্যবহার করার জন্য তুচ্ছ এবং লেআউটে আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে।

আমি অ্যাজুরে একটি সাস সংস্করণ বিকাশ করেছি। এটি WebApi বা যে কোনও। নেট অ্যাপ্লিকেশন, পরিষেবা, আজুর ওয়েবসাইট, অ্যাজুরে ওয়েবজব, যা কিছু চলুক না কেন এটি ব্যবহার করা আরও সহজ করে তোলে et নেট।

http://www.rotativahq.com/

বিনামূল্যে অ্যাকাউন্ট উপলব্ধ।


এটি কি Itextsharp এর উপর নির্ভর করে এবং তাই এটির ব্যবহারের জন্য আপনার পুনরুত্থের জন্য লাইসেন্স থাকা দরকার?
মিকাহ আরমান্ট্রাউট

2
পছন্দ করেছেন এটি পিডিএফ ফাইল তৈরি করতে wkhtmltopdf.exe ব্যবহার করে। লাইসেন্সের দরকার নেই।
জর্জিও বোজিও

@ মাইকাআরমনট্রাউট, আইটেক্সটশার্পও কি জিএনইউ জিপিএল নয়? gnu.org/license/agpl.html
প্রণব সিং

প্রযুক্তিগত পাশাপাশি কিছু আইনী কারণে আমরা আইটেক্সট (শার্প) 5 এর পূর্বে সংস্করণগুলি ব্যবহার করার পরামর্শ দিই না। stackoverflow.com/questions/8517776/itexsharp-license
মীখা Armantrout

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();
}

নোট করুন যে আইটেক্সটশার্প এক্সএইচটিএমএল এর সাথে কাজ করে এবং আপনার এইচটিএমএল এর মানের প্রতি বেশ সংবেদনশীল। এটি ভঙ্গ হবে, যেখানে সিলেক্টপিডিএফ এবং হিকপিডিএফ না করবে।
সেভেজ

3

এটি আপনার অন্য যে কোনও প্রয়োজনীয়তার উপর নির্ভর করে।

একটি সত্যই সহজ তবে সহজেই কার্যকর নাযোগ্য সমাধান হ'ল এইচটিএমএল লোড করার জন্য ওয়েব ব্রাউজার নিয়ন্ত্রণ ব্যবহার করা এবং তারপরে স্থানীয়ভাবে ইনস্টল হওয়া পিডিএফ প্রিন্টারে মুদ্রণ পদ্ধতি মুদ্রণ ব্যবহার করা। বেশ কয়েকটি ফ্রি পিডিএফ প্রিন্টার উপলব্ধ রয়েছে এবং ওয়েব ব্রাউজার নিয়ন্ত্রণ। নেট ফ্রেমওয়ার্কের একটি অংশ।

সম্পাদনা: আপনি এইচটিএমএল যদি এক্সএইচটিএমএল হন তবে আপনি কাজটি করার জন্য পিডিএফটিজার ব্যবহার করতে পারেন ।


3

পিডিএফ ভিশন ভাল। তবে এটি ব্যবহার করার জন্য আপনার কাছে পূর্ণ ভরসা থাকতে হবে। আমি ইতিমধ্যে ইমেল করে জিজ্ঞাসা করেছি কেন আমার এইচটিএমএল সার্ভারে রূপান্তর করা হচ্ছে না তবে এটি লোকালহোস্টে দুর্দান্ত কাজ করেছে।



2

আমিও কিছুক্ষণ আগে এই সন্ধান করছিলাম। আমি এইচটিএমএলডিএসি http://www.easysw.com/htmldoc/ ​​এ চলে এসেছি যা একটি ফ্রি ওপেন সোর্স কমান্ড লাইন অ্যাপ্লিকেশন যা একটি এইচটিএমএল ফাইলকে একটি আর্গুমেন্ট হিসাবে গ্রহণ করে এবং এ থেকে পিডিএফ বের করে দেয়। এটি আমার পক্ষে আমার প্রজেক্টের জন্য বেশ ভালভাবে কাজ করেছে, তবে এটি আসলে আপনার প্রয়োজনের উপর নির্ভর করে।

যে সংস্থাটি এটি তৈরি করে তারা সংকলিত বাইনারিগুলি বিক্রি করে তবে আপনি উত্স থেকে ডাউনলোড এবং সংকলন এবং বিনামূল্যে এটি ব্যবহার করতে পারবেন। আমি একটি সাম্প্রতিক সংস্করণ (সংস্করণ 1.9 এর জন্য) সংকলন করতে পেরেছি এবং আমি এটির জন্য কয়েকদিনের মধ্যে বাইনারি ইনস্টলারটি প্রকাশ করার ইচ্ছা নিয়েছি, যদি আপনার আগ্রহী হয় তবে আমি এটি পোস্ট করার সাথে সাথেই এটির একটি লিঙ্ক সরবরাহ করতে পারি।

সম্পাদনা (২/২২/২০১৪): ডক্স এবং সাইটের মতো দেখে মনে হচ্ছে http://www.msweet.org/projects.php?Z1


হাই, আপনি কী কীভাবে সি # এসপিএন দিয়ে এটি ব্যবহার করবেন তার জন্য একটি লিঙ্ক এবং একটি গাইড সরবরাহ করতে পারেন
ইউজার 287745

static.persistedferencests.com/htmldoc_1.9.1586-setup.exe সচেতন হন যে এটি একটি কমান্ড লাইন প্রোগ্রাম। এটি প্রয়োগ করার জন্য আপনার অ্যাপ্লিকেশনের মধ্যে থেকে এটি সম্পাদন করতে হবে। : আপনি তার আর্গুমেন্ট এবং আদেশ সহকারে অধ্যায় 4 থেকে এর জন্য ডকুমেন্টেশন জানতে পারেন easysw.com/htmldoc/documentation.php
enriquein

আজকাল এটি কতটা কার্যকর তা আমি নিশ্চিত নই, তবে এটি আপনাকে যদি সহায়তা করে: ড্রপবক্স
k

ওয়েবসাইটটি আর চালু নেই।
টম শীত

2

আপনার যদি পিডিএফ-তে নিখুঁত এইচটিএমএল রেন্ডারিং দরকার হয় তবে আপনার বাণিজ্যিক লাইব্রেরি ব্যবহার করতে হবে।

বিশেষজ্ঞপিডিএফ এইচটিএমএল থেকে পিডিএফ রূপান্তরকারী ব্যবহার করা খুব সহজ এবং এটি সর্বশেষতম এইচটিএমএল 5 / সিএসএস 3 সমর্থন করে। আপনি হয় একটি সম্পূর্ণ url পিডিএফ রূপান্তর করতে পারেন:

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

বা এইচটিএমএল স্ট্রিং:

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

আপনার উত্পন্ন পিডিএফ ডকুমেন্টটি সরাসরি ডিস্কের ফাইলের স্ট্রিমে সংরক্ষণ করার বিকল্পও রয়েছে।


আপনার যদি পিডিএফ
তে

আমি এটি বিশ্বাস করতে শুরু করেছি। আমি বিনামূল্যে 5 টি চেষ্টা করেছি এবং তাদের সবার কাছে একটি জিনিস রয়েছে যা এটি আমার জন্য নষ্ট করে দেয়। সাধারণ হ্যালো দুনিয়া ছাড়িয়ে এমন পৃষ্ঠায় দমবন্ধ করা থেকে শুরু করে ভয়ঙ্কর দেখা - আমি মনে করি সত্যিকারের কনভার্টারের জন্য আমাকে কিছু টাকা কাশি করতে হবে। প্রতিটি বাণিজ্যিক পণ্যের নমুনাগুলি আসলে আপনি পিডিএফটি প্রকাশের প্রত্যাশায় কাজ করে works
হার্ব মীহান

@ বোবহান - আমি আপনাকে বিশ্বাস করতে চাই আপনি যে সরঞ্জামগুলি এত ভাল খুঁজে পাচ্ছেন সম্ভবত তার লিঙ্কটি আমাদের সাথে ভাগ করে নিতে পারেন।
পিটার ওন

@ পিটারওনে শীর্ষে রয়েছে অনেকগুলি মুক্ত উত্স বিকল্প যা আপনি সহজেই দেখতে পাচ্ছেন। কাউকে একই জিনিস ভাগ করে নেওয়ার জন্য সময় চুরি করা। তবে আপনি যদি এগুলির সমস্তটি চেষ্টা করে এবং অসন্তুষ্ট হন তবে আমি আশা করি যে আপনি সন্তুষ্ট নন সে সম্পর্কে আপনি তাদের মন্তব্যগুলি ভাগ করে নেবেন এবং সম্ভবত এটি জ্ঞান বৃদ্ধিতে সহায়তা করবে।
ওবায়হান

@ বোবহান - অন্যরা ইতিমধ্যে যা করেছে তার পুনরাবৃত্তি কেন? এগুলি তিনটি বিভাগে পড়ে: সত্যই নিখরচায় নয়, wkhtmltopdf বা IE9 এর মতো অগ্রহণযোগ্য নির্ভরতা এবং পিডিএফ-শার্পের জন্য এইচটিএমএল রেন্ডারার rer পিডিএফ # এর জন্য এইচআর খাঁটি সি # তে একমাত্র এবং এটি পৃষ্ঠপোষকতার একটি ভয়ঙ্কর কাজ করে - এটি একটি দীর্ঘ পৃষ্ঠা সরবরাহ করে এবং এটি কেটে দেয়, প্রায়শই পাঠ্যের লাইনে ক্লিপিং করে। আমি যদি রেন্ডারিকে পুরোপুরি পুনর্লিখনের জন্য সময়টি জানতে পারি, পিডিএফ # এর এইচআর হাতছাড়া করবে: এটি দ্রুত, নিখরচায় এবং কোনও নির্ভরতা নেই। তবে এটি সম্পূর্ণ নতুন উপস্থাপক হবে, আমি আশঙ্কা করি।
পিটার ওন

2

এটি একটি নিখরচায় গ্রন্থাগার এবং খুব সহজেই কাজ করে: ওপেনএইচটিএমএলটিওপিডিএফ

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

এটি এখনও অবধি সেরা নিখরচায় মনে হচ্ছে। নেট সমাধানটি হল টিউএসপেকিন লাইব্রেরি যা wkhtmltopdf এর চারপাশে একটি মোড়ক নেটিভ গ্রন্থাগার।

আমি এখন কয়েক হাজার এইচটিএমএল স্ট্রিংগুলি পিডিএফ ফাইলগুলিতে রূপান্তর করতে একক থ্রেডেড সংস্করণ ব্যবহার করেছি এবং এটি দুর্দান্ত কাজ করছে বলে মনে হচ্ছে। এটি বহু-থ্রেডযুক্ত পরিবেশে (আইআইএস, উদাহরণস্বরূপ) কাজ করার কথা রয়েছে তবে আমি এটি পরীক্ষা করে দেখিনি।

এছাড়াও যেহেতু আমি wkhtmltopdf (লেখার সময় 0.12.5) এর সর্বশেষ সংস্করণটি ব্যবহার করতে চেয়েছিলাম , তাই আমি অফিসিয়াল ওয়েবসাইট থেকে ডিএলএল ডাউনলোড করেছি, এটি আমার প্রকল্পের মূলটিতে অনুলিপি করেছি, অনুলিপিটিকে সত্যে সেট করেছিলাম এবং লাইব্রেরিটির মতো আরম্ভ করেছি তাই:

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

উপরের কোডটি "wkhtmltox.dll" এর জন্য ঠিক দেখতে পাবে, সুতরাং ফাইলটির নাম পরিবর্তন করবেন না। আমি DLL এর 64-বিট সংস্করণ ব্যবহার করেছি version

আপনি একাধিক-থ্রেডযুক্ত পরিবেশের জন্য নির্দেশাবলীটি পড়েছেন তা নিশ্চিত করুন, কারণ আপনাকে অ্যাপ্লিকেশন লাইফসাইলে প্রতি একবার একবার এটি আরম্ভ করতে হবে যাতে আপনার এটি একটি সিঙ্গলটন বা অন্য কোনও কিছুতে রাখা দরকার।


1

এখানে Pruiz দ্বারা wkhtmltopdf.dll এর জন্য একটি মোড়ক

এবং কোডেক্সি দ্বারা wkhtmltopdf.exe জন্য একটি মোড়ক
- এছাড়াও নুগেট


কোনও ডক্স বা টিউটোরিয়াল কীভাবে সেগুলি ব্যবহার করবেন? কোনও দস্তাবেজ ছাড়াই সেখানে কেবলমাত্র সোর্স কোড রয়েছে
বুর্জুয়া

1
কোডটি ডাউনলোড করুন এবং ইউনিট পরীক্ষাগুলি একবার দেখুন। এটি আপনাকে কিছু ভাল ব্যবহারের নমুনা দেয়।
গারফিল্ড

সত্যিই সাহায্য করে না, আসলে আমি কাজ করার জন্য প্রিউজ সমাধানের পরীক্ষাও করতে পারি না, এটি বলেছে No tests are run because no tests are loaded or the selected tests are disabledগুগলিং
কোনওভাবেই

@ বুর্জুয়া এটি সাধারণত আপনি যে পরীক্ষার রানার ব্যবহার করছেন তার সংস্করণের সাথে সম্পর্কিত। যাইহোক, আমার গিথুবের প্রকল্প সাইটে একটি সমস্যা খোলার চেষ্টা করুন এবং আমি আপনাকে সাহায্য করার চেষ্টা করব ..
পাবলো রুইজ গার্সিয়া

হাই এই মোড়কটি ঠিক কাজ করে তবে আমার গুগল পাই চার্ট প্রদর্শন করছে না। আমি যতক্ষণ না এই সমাধান করতে পারি ততক্ষণ আমাকে অন্য একটি সমাধান বের করতে হবে।
আন্দ্রে লম্পার্ড

1

জাভাস্ক্রিপ্ট এবং শৈলীগুলির রেন্ডার করা ভিউ বা এইচটিএমএল পৃষ্ঠাগুলির পিডিএফ উত্পন্ন করার জন্য আমি খুঁজে পেয়েছি এবং ব্যবহার করেছি সেরা ফ্যান্টমজেএস

উদাহরণস্বরূপ ফোল্ডারের উদাহরণস্বরূপ পাওয়া রাস্টেরাইজ.জেস ফাংশন সহ .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;
}

আপনি কি আপনার পুরো উত্স কোডটি ভাগ করতে পারেন? আমি সি # তে নতুন তাই আমি আমদানিতেও আটকে যাচ্ছি।
সিবি জন

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");

বিস্তারিত নিবন্ধ: কীভাবে এইচটিএমএলকে এসপিএন সি # তে পিডিএমে রূপান্তর করবেন


স্পায়ার একটি পিডিএফ ফাইল তৈরি করে যা কেবল একটি চিত্র। কিছু সিএসএস এমনকি সঠিক নয় যেমন বোল্ড ফন্টগুলি উপেক্ষা করে।
সেভেজ

চিত্র হিসাবে পিডিএফ উত্পন্ন সম্পর্কে আমার প্রশ্নের প্রতিক্রিয়া দেখুন: e-iceblue.com/forum/nuget-pdf-as-non-image-t6710.html
স্যাভেজ

স্পায়ার হ'ল আমি এই পৃষ্ঠাটি থেকে চতুর্থতম চেষ্টা করেছি এবং আমি মনে করি এটি সেরা, ধন্যবাদ।
এমডিএভ

1

হাইকিউপিডিএফ সফটওয়্যারটির প্রতিনিধি হিসাবে আমি বিশ্বাস করি যে সেরা সমাধান হেকিউপিডিএফ এইচটিএমএল থেকে পিএনডি রূপান্তরকারী .NET এর জন্য সবচেয়ে ভাল সমাধান । এটিতে বাজারে সর্বাধিক উন্নত এইচটিএমএল 5, সিএসএস 3, এসভিজি এবং জাভাস্ক্রিপ্ট রেন্ডারিং ইঞ্জিন রয়েছে। এইচটিএমএল থেকে পিডিএফ লাইব্রেরির একটি ফ্রি সংস্করণ রয়েছে যা আপনি বিনামূল্যে 3 পিডিএফ পৃষ্ঠায় উত্পাদন করতে ব্যবহার করতে পারেন। এইচটিএমএল পৃষ্ঠা থেকে বাইট হিসাবে পিডিএফ তৈরি করতে সর্বনিম্ন সি # কোডটি হ'ল:

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);

আপনি এএসপি.এনইটি এবং এমভিসি উভয়ের জন্য হাইকিউপিডিএফ এইচটিএমএল থেকে পিডিএফ কনভার্টারের উদাহরণ সংগ্রহস্থলের জন্য আরও বিশদ উদাহরণ পেতে পারেন ।


1
শালীন ফলাফল উত্পন্ন করে তবে সিলেক্টপিডিএফ-এর মতো এটি আপনার বিল্ড টাইম এবং প্যাকেজের আকার মোতায়েনের ক্ষেত্রে বড় ধরনের প্রভাব ফেলতে পারে। এটি আমার ভিজ্যুয়াল স্টুডিও নির্মাণের সময়টিকে প্রায় দ্বিগুণ করছিল। আমার পৃষ্ঠাটি পূরণ করতে আমার খুব কষ্ট হয়েছিল - এইচটিএমএল মাঝখানে খুব ছোট ছিল - সে ক্ষেত্রে সিলেক্টপিডিএফ আরও ভাল কাজ করেছে।
সেভেজ

1
এইচটিএমএল বিষয়বস্তু সহ পৃষ্ঠা ভরাট করা এইচটিএমএলটোপিডিএফ.ব্রাউজারউইথ সম্পত্তির উপর নির্ভর করে। এটি ডিফল্টরূপে 1200 পিক্সেল তবে আপনি এটি 800 পিক্সেলে সেট করতে পারেন এবং এইচটিএমএলকে পুরো পিডিএফ পৃষ্ঠাটি খুব ভালভাবে পূরণ করা উচিত। আপনি এর জন্য একটি লাইভ ডেমো এবং নমুনা কোডটি পেতে পারেন hiqpdf.com/demo/HtmlFittingAndScalingOptions.aspx
HiQPdf

1
না। নেট কোর সমর্থন হয়।
টেলর বুচানন

1

বেশিরভাগ প্রকল্পগুলি স্ক্র্যাচ থেকে সি # সমাধান প্রয়োগের পরিবর্তে একটি সি / সি ++ ইঞ্জিন মোড়ানো করবে। প্রকল্প গোটেনবার্গ চেষ্টা করুন ।

এটি পরীক্ষা করার জন্য

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

অতিরিক্ত ডিএলএস ব্যবহার না করে এএসপি.এনইটি অ্যাপ্লিকেশন থেকে এইচডিএমএল পিডিএমে রূপান্তর করার জন্য নেট পিডিএফ রূপান্তর করার জন্য এই উপাদানটি পিডিএফ ডুও। নেট রূপান্তরকারী উপাদানটি ব্যবহার করে দেখুন।

আপনি এইচটিএমএল স্ট্রিং বা ফাইল পাস করতে পারেন, বা পিডিএফ উত্পন্ন করতে স্ট্রিম করতে পারেন। নীচের কোডটি ব্যবহার করুন (উদাহরণ সি #):

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";   
}   

তথ্য + সি # / ভিবি উদাহরণগুলি আপনি এখানে পেতে পারেন: http://www.duodamentsion.com/html_pdf_asp.net/comp घटक_html_pdf.aspx


1
বিটডেফেন্ডার রিপোর্ট করেছে: "ম্যালওয়্যার সনাক্ত হয়েছে! এই পৃষ্ঠায় অ্যাক্সেস অবরুদ্ধ করা হয়েছে"। এই প্রতিবেদনটি আসল বা মিথ্যা ইতিবাচক কিনা সে সম্পর্কে আমার কোনও মতামত নেই।
জিওফএম

0

এইচটিএমএলকে সি # তে পিডিএফ তে রূপান্তর করতে ABCpdf ব্যবহার করুন

এবিসিপিডিএফ গেকো বা ট্রাইডেন্ট রেন্ডারিং ইঞ্জিনগুলি ব্যবহার করতে পারে, তাই আপনার এইচটিএমএল টেবিলটি ফায়ারফক্স এবং ইন্টারনেট এক্সপ্লোরার-এ প্রদর্শিত হিসাবে একই দেখাবে।

Www.abcpdfeditor.com এ বিসিপিডিএফ-এর একটি অন-লাইন ডেমো রয়েছে। সফ্টওয়্যার ডাউনলোড ও ইনস্টল করার প্রয়োজন ছাড়াই আপনার টেবিলগুলি প্রথমে কীভাবে রেন্ডার হবে তা যাচাই করতে আপনি এটি ব্যবহার করতে পারেন।

পুরো ওয়েব পৃষ্ঠাগুলি রেন্ডার করার জন্য আপনার অ্যাডিমেজিউআরএল বা অ্যাডআইমেজএইচটিএমএল ফাংশন প্রয়োজন। তবে আপনি যদি কেবল যা করতে চান তা হ'ল এইচটিএমএল স্টাইলযুক্ত পাঠ্য যুক্ত করা হয় তবে আপনি নীচের মতো অ্যাডএইচটিএমএল ফাংশনটি চেষ্টা করতে পারেন:

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

এবিসিপিডিএফ একটি বাণিজ্যিক সফ্টওয়্যার শিরোনাম, তবে স্ট্যান্ডার্ড সংস্করণটি প্রায়শই বিশেষ অফারের অধীনে বিনামূল্যে পাওয়া যায়।


91
আপনি ওয়েবস্পার্গুর জন্য যে কাজ করেন সে সমস্ত উত্তরগুলিতে সত্যই লেখা উচিত। প্রশ্ন থেকে: 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
সেকি! আমি এবিসিপিডিএফকে পরামর্শ দিয়েছিলাম কারণ এটি এমন একটি উপাদান যা আমি পরিচিত। যদি আমার পোস্টগুলির একটি বড় শতাংশ পিডিএফ সম্পর্কিত হয় তবে এটি কেবল কারণ আমি আমার আগ্রহের ক্ষেত্রগুলির বাইরে বিষয়গুলিতে অবদান রাখছি। দুঃক্ষিত।
এফাইনমেশ

পোস্টার প্রতিরক্ষাতে, ওয়েবসাইটটি পণ্যটি বেশ ভাল হতে পারে।
টম শীতকাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.