আমি কোনও ফাংশনে এইচটিএমএল বিষয়বস্তু প্রেরণ করে একটি পিডিএফ তৈরি করতে চাই। আমি এটির জন্য আইটেক্সটশার্প ব্যবহার করেছি তবে এটি টেবিলগুলির মুখোমুখি হলে এবং লেআউটটি অগোছালো হয়ে গেলে এটি ভাল করে না।
একটি ভাল উপায় আছে কি?
আমি কোনও ফাংশনে এইচটিএমএল বিষয়বস্তু প্রেরণ করে একটি পিডিএফ তৈরি করতে চাই। আমি এটির জন্য আইটেক্সটশার্প ব্যবহার করেছি তবে এটি টেবিলগুলির মুখোমুখি হলে এবং লেআউটটি অগোছালো হয়ে গেলে এটি ভাল করে না।
একটি ভাল উপায় আছে কি?
উত্তর:
সম্পাদনা: পিডিএফশার্প ব্যবহার করে পিডিএফের জন্য নতুন পরামর্শ এইচটিএমএল রেন্ডারার
(Wkhtmltopdf চেষ্টা করার পরে এবং এটি এড়াতে পরামর্শ দেওয়ার পরে)
এইচটিএমএলরেন্ডেরিয়র.পিডিএফশার্প একটি 100% সম্পূর্ণ সি # পরিচালিত কোড , সহজেই ব্যবহারযোগ্য থ্রেড নিরাপদ এবং সবচেয়ে গুরুত্বপূর্ণভাবে বিনামূল্যে ( নতুন BSD লাইসেন্স ) সমাধান।
ব্যবহার
উদাহরণ পদ্ধতিটি ব্যবহার করুন।
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
--- প্রাক সম্পাদনা বিভাগ ---
যে কেউ সহজ অ্যাপ্লিকেশন / পরিবেশে এইচটিএমএল থেকে পিডিএফ তৈরি করতে চান তার জন্য আমি পরামর্শ হিসাবে আমার পুরানো পোস্টটি ছেড়ে চলেছি।
https://www.nuget.org/packages/TuesPechkin/
বা বিশেষত এমভিসি ওয়েব অ্যাপ্লিকেশনগুলির জন্য (তবে আমি মনে করি আপনি এটি কোনও। নেট অ্যাপ্লিকেশনটিতে ব্যবহার করতে পারেন)
https://www.nuget.org/packages/Rotativa/
তারা উভয়ই html পিডিএফ রূপান্তর করার জন্য ডাব্লুএইচটিএমটিপিডিএফ বাইনারি ব্যবহার করে । যা পৃষ্ঠাগুলি উপস্থাপনের জন্য ওয়েবকিট ইঞ্জিন ব্যবহার করে যাতে এটি CSS স্টাইল শীটগুলি পার্স করতে পারে ।
তারা সি # এর সাথে বিজোড় ইন্টিগ্রেশন ব্যবহার করা সহজ সরবরাহ করে।
রোটাটিভা যেকোন রেজার ভিউ থেকে সরাসরি পিডিএফ তৈরি করতে পারে ।
অতিরিক্ত বিশ্বের ওয়েব অ্যাপ্লিকেশনগুলির জন্য তারা থ্রেড সুরক্ষা ইত্যাদিও পরিচালনা করে ...
আপডেট: আমি এখন ডাব্লুএইচটিএম্লটপডিএফ এর চেয়ে পপিটিয়ারশার্পের পরামর্শ দেব।
ব্যবহার করে দেখুন wkhtmtopdf । এটি এখনও অবধি পাওয়া সেরা সরঞ্জাম।
.NET- র জন্য, আপনি এই ছোট লাইব্রেরিটি খুব সহজেই ডাব্লুএইচটিএমটোপিডিএফ কমান্ড লাইন ইউটিলিটিটি শুরু করতে ব্যবহার করতে পারেন ।
আমি সম্প্রতি পিডিএফ রূপান্তরিত করেছি পিডিএফ থেকে পিডিএফ রূপান্তর সম্পর্কিত এবং আমার ফলাফলগুলি ভাগ করতে চেয়েছি।
আমার এখন পর্যন্ত প্রিয় ওপেনএইচটিএমটিএলটোপিডিএফ
এই সরঞ্জামের সুবিধা:
অন্যান্য সরঞ্জাম পরীক্ষিত:
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
। ওপেনএইচটিএমটিওপিডিএফ নিখরচায় পুরোপুরি কাজ করে।
শেষ আপডেট: 2020 মার্চ
এইচটিএমএল থেকে পিডিএফ রূপান্তরকরণের জন্য অপশনগুলির তালিকাটি .NET যা আমি একসাথে রেখেছি (কিছু বিনামূল্যে দেওয়া হয়েছে)
GemBox.Document
পিডিএফ রূপান্তর। নেট
HtmlRenderer.PdfSharp
PuppeteerSharp
EO.Pdf
WnvHtmlToPdf_x64
IronPdf
Spire.PDF
.NET (সম্প্রদায় সংস্করণ) এর জন্য ফ্রি স্পায়ার.পিডিএফ
Aspose.Html
EvoPDF
ExpertPdfHtmlToPdf
Zetpdf
PDFtron
WkHtmlToXSharp
SelectPDF
যদি উপরের কোনও বিকল্প আপনাকে সহায়তা না করে আপনি সর্বদা নুগেট প্যাকেজ https://www.nuget.org/packages?q=html+pdf অনুসন্ধান করতে পারেন
পিডিএফ রূপান্তরকারীগুলিতে সর্বাধিক এইচটিএমএল এইচটিএমএল পার্সিং এবং রেন্ডারিং করতে IE এর উপর নির্ভর করে। ব্যবহারকারী যখন তাদের আইই আপডেট করেন এটি ভাঙ্গতে পারে। এখানে এমন একটি যা IE এর উপর নির্ভর করে না।
কোডটি এরকম কিছু:
EO.Pdf.HtmlToPdf.ConvertHtml(htmlText, pdfFileName);
অন্যান্য অনেক রূপান্তরকারীদের মতো, আপনি পাঠ্য, ফাইলের নাম বা url পাস করতে পারেন। ফলাফল কোনও ফাইল বা একটি স্ট্রিমে সংরক্ষণ করা যায়।
আমি অত্যন্ত গুরুত্ব সহকারে এনআরসিওকে প্রস্তাব দিই । এটির নিখরচায় এবং অর্থ প্রদানের সংস্করণ রয়েছে এবং এটি সত্যই মূল্যবান। এটি পটভূমিতে wkhtmtopdf ব্যবহার করে তবে আপনার কেবল একটি সমাবেশ প্রয়োজন। ফ্যান্টাস্টিক।
ব্যবহারের উদাহরণ:
নিউগেটের মাধ্যমে ইনস্টল করুন ।
var htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now);
var pdfBytes = (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(htmlContent);
দাবি অস্বীকার: আমি বিকাশকারী নই, প্রকল্পের কেবল অনুরাগী :)
উইনোভেটিভ একটি। নেট পিডিএফ লাইব্রেরি সরবরাহ করে যা এইচটিএমএল ইনপুট সমর্থন করে। তারা সীমাহীন বিনামূল্যে ট্রায়াল অফার করে । আপনি কীভাবে আপনার প্রকল্প স্থাপন করতে চান তার উপর নির্ভর করে এটি পর্যাপ্ত হতে পারে।
এইচটিএমএলকে পিডিএফ রূপান্তর করতে প্রয়োজনীয় পিডিএফ ব্যবহার করা যেতে পারে : সি # নমুনা । এখানে লিঙ্কযুক্ত নমুনাটি এএসপি.এনইটি ভিত্তিক, তবে গ্রন্থাগারটি উইন্ডোজ ফর্ম, ডাব্লুপিএফ, এএসপি.এনইটি ওয়েবফর্ম এবং এএসপি.নেট এমভিসি থেকে ব্যবহার করা যেতে পারে। লাইব্রেরিটি বিভিন্ন HTML রেন্ডারিং ইঞ্জিনগুলি ব্যবহারের বিকল্প সরবরাহ করে: ইন্টারনেট এক্সপ্লোরার (ডিফল্ট) এবং ওয়েবকিট (সেরা আউটপুট)।
আপনি যদি যোগ্যতা অর্জন করেন তবে নিয়ন্ত্রণের পুরো স্যুটটি কমিউনিটি লাইসেন্স প্রোগ্রামের মাধ্যমে বিনামূল্যে (বাণিজ্যিক অ্যাপ্লিকেশনগুলিও) উপলভ্য । সম্প্রদায়ের লাইসেন্স হ'ল সম্পূর্ণ পণ্য যা কোনও সীমাবদ্ধতা বা জলছবি নয়।
দ্রষ্টব্য: আমি সিঙ্কফিউজনের জন্য কাজ করি।
আপনার যদি সত্যিকারের। নেট পিডিএফ লাইব্রেরির প্রয়োজন না হয়, পিডিএফ সরঞ্জামগুলিতে অসংখ্য ফ্রি এইচটিএমএল রয়েছে , যার মধ্যে অনেকগুলি কমান্ড-লাইন থেকে চালানো যেতে পারে।
একটি সমাধান হ'ল সেইগুলির মধ্যে একটি বাছাই করা এবং তারপরে C # এর চারপাশে একটি পাতলা মোড়ক লিখুন। যেমন, এই টিউটোরিয়ালে যেমন হয়েছে ।
আমি পিডিএফ রূপান্তরকারী থেকে বিশেষজ্ঞপিডিএফ এইচটিএমএল ব্যবহার করেছি । একটি শালীন কাজ করে। দুর্ভাগ্যক্রমে, এটি নিখরচায় নয়।
এছাড়াও একটি নতুন ওয়েব-ভিত্তিক ডকুমেন্ট জেনারেশন অ্যাপ্লিকেশন রয়েছে - ডকরাপ্টার ডটকম । ব্যবহার করা সহজ বলে মনে হচ্ছে এবং একটি নিখরচায় বিকল্প রয়েছে।
এইচটিএমএল থেকে পিডিএফ দাবিগুলির জন্য সুসংবাদ রয়েছে। যেমন এই উত্তরটি দেখিয়েছে , ডাব্লু 3 সি স্ট্যান্ডার্ড সিএসএস-ব্রেক -3 সমস্যার সমাধান করবে ... এটি পরীক্ষার পরে 2017 বা 2018-তে সুনির্দিষ্ট সুপারিশে রূপান্তরিত করার পরিকল্পনা সহ প্রার্থী প্রস্তাবনা।
প্রিন্ট-সিএসএস.রোকস দ্বারা দেখানো হিসাবে, সি # এর প্লাগইন সহ, সমাধানগুলির মতো নেই ।
আপনি গুগল ক্রোম এর মাথা বিহীন মোড থেকে মুদ্রণ থেকে পিডিএফ বৈশিষ্ট্য ব্যবহার করতে পারেন। আমি এটি সবচেয়ে সহজ এবং সবচেয়ে শক্তিশালী পদ্ধতি বলে মনে করেছি।
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();
}
এবিসিপিডিএফ.এনইটি (http://www.websupergoo.com/abcpdf-5.htm)
আমরা ব্যবহার এবং সুপারিশ।
খুব ভাল উপাদান, এটি কেবল কোনও ওয়েবপৃষ্ঠাকে চিত্রের মতো পিডিএফে রূপান্তর করে না তবে পাঠ্য, চিত্র, বিন্যাস ইত্যাদি রূপান্তর করে ...
এটি নিখরচায় নয় তবে এটি সস্তা।
আমি রোটাটিভা প্যাকেজের লেখক। এটি সরাসরি রেজার ভিউ থেকে পিডিএফ ফাইল তৈরি করতে দেয়:
https://www.nuget.org/packages/Rotativa/
আপনি আপনার মডেল এবং ভিউব্যাগ ধারক থেকে ডেটার সাথে রেজার ভিউ ব্যবহার করতে পারবেন বলে ব্যবহার করার জন্য তুচ্ছ এবং লেআউটে আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে।
আমি অ্যাজুরে একটি সাস সংস্করণ বিকাশ করেছি। এটি WebApi বা যে কোনও। নেট অ্যাপ্লিকেশন, পরিষেবা, আজুর ওয়েবসাইট, অ্যাজুরে ওয়েবজব, যা কিছু চলুক না কেন এটি ব্যবহার করা আরও সহজ করে তোলে et নেট।
বিনামূল্যে অ্যাকাউন্ট উপলব্ধ।
নীচে 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();
}
এটি আপনার অন্য যে কোনও প্রয়োজনীয়তার উপর নির্ভর করে।
একটি সত্যই সহজ তবে সহজেই কার্যকর নাযোগ্য সমাধান হ'ল এইচটিএমএল লোড করার জন্য ওয়েব ব্রাউজার নিয়ন্ত্রণ ব্যবহার করা এবং তারপরে স্থানীয়ভাবে ইনস্টল হওয়া পিডিএফ প্রিন্টারে মুদ্রণ পদ্ধতি মুদ্রণ ব্যবহার করা। বেশ কয়েকটি ফ্রি পিডিএফ প্রিন্টার উপলব্ধ রয়েছে এবং ওয়েব ব্রাউজার নিয়ন্ত্রণ। নেট ফ্রেমওয়ার্কের একটি অংশ।
সম্পাদনা: আপনি এইচটিএমএল যদি এক্সএইচটিএমএল হন তবে আপনি কাজটি করার জন্য পিডিএফটিজার ব্যবহার করতে পারেন ।
পিডিএফ ভিশন ভাল। তবে এটি ব্যবহার করার জন্য আপনার কাছে পূর্ণ ভরসা থাকতে হবে। আমি ইতিমধ্যে ইমেল করে জিজ্ঞাসা করেছি কেন আমার এইচটিএমএল সার্ভারে রূপান্তর করা হচ্ছে না তবে এটি লোকালহোস্টে দুর্দান্ত কাজ করেছে।
এইচটিএমএলকে পিডিএফ রূপান্তর করার জন্য আমি নীচের পাঠাগারটিকে আরও কার্যকর বলে মনে করেছি।
নুগেট : https://www.nuget.org/packages/Select.HtmlToPdf/
আমিও কিছুক্ষণ আগে এই সন্ধান করছিলাম। আমি এইচটিএমএলডিএসি http://www.easysw.com/htmldoc/ এ চলে এসেছি যা একটি ফ্রি ওপেন সোর্স কমান্ড লাইন অ্যাপ্লিকেশন যা একটি এইচটিএমএল ফাইলকে একটি আর্গুমেন্ট হিসাবে গ্রহণ করে এবং এ থেকে পিডিএফ বের করে দেয়। এটি আমার পক্ষে আমার প্রজেক্টের জন্য বেশ ভালভাবে কাজ করেছে, তবে এটি আসলে আপনার প্রয়োজনের উপর নির্ভর করে।
যে সংস্থাটি এটি তৈরি করে তারা সংকলিত বাইনারিগুলি বিক্রি করে তবে আপনি উত্স থেকে ডাউনলোড এবং সংকলন এবং বিনামূল্যে এটি ব্যবহার করতে পারবেন। আমি একটি সাম্প্রতিক সংস্করণ (সংস্করণ 1.9 এর জন্য) সংকলন করতে পেরেছি এবং আমি এটির জন্য কয়েকদিনের মধ্যে বাইনারি ইনস্টলারটি প্রকাশ করার ইচ্ছা নিয়েছি, যদি আপনার আগ্রহী হয় তবে আমি এটি পোস্ট করার সাথে সাথেই এটির একটি লিঙ্ক সরবরাহ করতে পারি।
সম্পাদনা (২/২২/২০১৪): ডক্স এবং সাইটের মতো দেখে মনে হচ্ছে http://www.msweet.org/projects.php?Z1
আপনার যদি পিডিএফ-তে নিখুঁত এইচটিএমএল রেন্ডারিং দরকার হয় তবে আপনার বাণিজ্যিক লাইব্রেরি ব্যবহার করতে হবে।
বিশেষজ্ঞপিডিএফ এইচটিএমএল থেকে পিডিএফ রূপান্তরকারী ব্যবহার করা খুব সহজ এবং এটি সর্বশেষতম এইচটিএমএল 5 / সিএসএস 3 সমর্থন করে। আপনি হয় একটি সম্পূর্ণ url পিডিএফ রূপান্তর করতে পারেন:
using ExpertPdf.HtmlToPdf;
byte[] pdfBytes = new PdfConverter().GetPdfBytesFromUrl(url);
বা এইচটিএমএল স্ট্রিং:
using ExpertPdf.HtmlToPdf;
byte[] pdfBytes = new PdfConverter().GetPdfBytesFromHtmlString(html, baseUrl);
আপনার উত্পন্ন পিডিএফ ডকুমেন্টটি সরাসরি ডিস্কের ফাইলের স্ট্রিমে সংরক্ষণ করার বিকল্পও রয়েছে।
এটি একটি নিখরচায় গ্রন্থাগার এবং খুব সহজেই কাজ করে: ওপেনএইচটিএমএলটিওপিডিএফ
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
এটি এখনও অবধি সেরা নিখরচায় মনে হচ্ছে। নেট সমাধানটি হল টিউএসপেকিন লাইব্রেরি যা wkhtmltopdf এর চারপাশে একটি মোড়ক নেটিভ গ্রন্থাগার।
আমি এখন কয়েক হাজার এইচটিএমএল স্ট্রিংগুলি পিডিএফ ফাইলগুলিতে রূপান্তর করতে একক থ্রেডেড সংস্করণ ব্যবহার করেছি এবং এটি দুর্দান্ত কাজ করছে বলে মনে হচ্ছে। এটি বহু-থ্রেডযুক্ত পরিবেশে (আইআইএস, উদাহরণস্বরূপ) কাজ করার কথা রয়েছে তবে আমি এটি পরীক্ষা করে দেখিনি।
এছাড়াও যেহেতু আমি wkhtmltopdf (লেখার সময় 0.12.5) এর সর্বশেষ সংস্করণটি ব্যবহার করতে চেয়েছিলাম , তাই আমি অফিসিয়াল ওয়েবসাইট থেকে ডিএলএল ডাউনলোড করেছি, এটি আমার প্রকল্পের মূলটিতে অনুলিপি করেছি, অনুলিপিটিকে সত্যে সেট করেছিলাম এবং লাইব্রেরিটির মতো আরম্ভ করেছি তাই:
var dllDir = AppDomain.CurrentDomain.BaseDirectory;
Converter = new StandardConverter(new PdfToolset(new StaticDeployment(dllDir)));
উপরের কোডটি "wkhtmltox.dll" এর জন্য ঠিক দেখতে পাবে, সুতরাং ফাইলটির নাম পরিবর্তন করবেন না। আমি DLL এর 64-বিট সংস্করণ ব্যবহার করেছি version
আপনি একাধিক-থ্রেডযুক্ত পরিবেশের জন্য নির্দেশাবলীটি পড়েছেন তা নিশ্চিত করুন, কারণ আপনাকে অ্যাপ্লিকেশন লাইফসাইলে প্রতি একবার একবার এটি আরম্ভ করতে হবে যাতে আপনার এটি একটি সিঙ্গলটন বা অন্য কোনও কিছুতে রাখা দরকার।
এখানে Pruiz দ্বারা wkhtmltopdf.dll এর জন্য একটি মোড়ক
এবং কোডেক্সি দ্বারা wkhtmltopdf.exe জন্য একটি মোড়ক
- এছাড়াও নুগেট ।
No tests are run because no tests are loaded or the selected tests are disabled
গুগলিং
জাভাস্ক্রিপ্ট এবং শৈলীগুলির রেন্ডার করা ভিউ বা এইচটিএমএল পৃষ্ঠাগুলির পিডিএফ উত্পন্ন করার জন্য আমি খুঁজে পেয়েছি এবং ব্যবহার করেছি সেরা ফ্যান্টমজেএস ।
উদাহরণস্বরূপ ফোল্ডারের উদাহরণস্বরূপ পাওয়া রাস্টেরাইজ.জেস ফাংশন সহ .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;
}
আপনি স্পায়ারও পরীক্ষা করতে পারেন , এটি আপনাকে তৈরি করতে দেয়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");
বিস্তারিত নিবন্ধ: কীভাবে এইচটিএমএলকে এসপিএন সি # তে পিডিএমে রূপান্তর করবেন
হাইকিউপিডিএফ সফটওয়্যারটির প্রতিনিধি হিসাবে আমি বিশ্বাস করি যে সেরা সমাধান হেকিউপিডিএফ এইচটিএমএল থেকে পিএনডি রূপান্তরকারী .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);
আপনি এএসপি.এনইটি এবং এমভিসি উভয়ের জন্য হাইকিউপিডিএফ এইচটিএমএল থেকে পিডিএফ কনভার্টারের উদাহরণ সংগ্রহস্থলের জন্য আরও বিশদ উদাহরণ পেতে পারেন ।
বেশিরভাগ প্রকল্পগুলি স্ক্র্যাচ থেকে সি # সমাধান প্রয়োগের পরিবর্তে একটি সি / সি ++ ইঞ্জিন মোড়ানো করবে। প্রকল্প গোটেনবার্গ চেষ্টা করুন ।
এটি পরীক্ষা করার জন্য
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
অতিরিক্ত ডিএলএস ব্যবহার না করে এএসপি.এনইটি অ্যাপ্লিকেশন থেকে এইচডিএমএল পিডিএমে রূপান্তর করার জন্য নেট পিডিএফ রূপান্তর করার জন্য এই উপাদানটি পিডিএফ ডুও। নেট রূপান্তরকারী উপাদানটি ব্যবহার করে দেখুন।
আপনি এইচটিএমএল স্ট্রিং বা ফাইল পাস করতে পারেন, বা পিডিএফ উত্পন্ন করতে স্ট্রিম করতে পারেন। নীচের কোডটি ব্যবহার করুন (উদাহরণ সি #):
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
এইচটিএমএলকে সি # তে পিডিএফ তে রূপান্তর করতে 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();
এবিসিপিডিএফ একটি বাণিজ্যিক সফ্টওয়্যার শিরোনাম, তবে স্ট্যান্ডার্ড সংস্করণটি প্রায়শই বিশেষ অফারের অধীনে বিনামূল্যে পাওয়া যায়।
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 সম্পর্কে ছিল