ฉันต้องการสร้าง PDF โดยส่งเนื้อหา HTML ไปยังฟังก์ชัน ฉันใช้ iTextSharp สำหรับสิ่งนี้ แต่มันทำงานได้ไม่ดีเมื่อพบกับตารางและเลย์เอาต์ก็ยุ่งเหยิง
มีวิธีที่ดีกว่า?
ฉันต้องการสร้าง PDF โดยส่งเนื้อหา HTML ไปยังฟังก์ชัน ฉันใช้ iTextSharp สำหรับสิ่งนี้ แต่มันทำงานได้ไม่ดีเมื่อพบกับตารางและเลย์เอาต์ก็ยุ่งเหยิง
มีวิธีที่ดีกว่า?
คำตอบ:
แก้ไข: ข้อเสนอแนะ HTML Renderer ใหม่สำหรับ PDF โดยใช้ PdfSharp
(หลังจากลอง wkhtmltopdf และแนะนำให้หลีกเลี่ยง)
HtmlRenderer.PdfSharp เป็น100% ได้อย่างเต็มที่ C # การจัดการรหัส , ง่ายต่อการใช้งานที่ปลอดภัยด้ายและที่สำคัญที่สุดฟรี ( ใหม่ 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;
}
A ใช้ดีสลับกันเป็นรุ่นฟรีของiTextSharp
จนกว่าเวอร์ชั่น 4.1.6 iTextSharp จะได้รับอนุญาตภายใต้ใบอนุญาต LGPL และเวอร์ชันจนกว่าจะมี 4.16 (หรืออาจมีส้อม) เป็นแพ็คเกจและสามารถใช้ได้อย่างอิสระ แน่นอนคนที่สามารถใช้ต่อเนื่อง 5 + รุ่นจ่าย
ฉันพยายามรวมโซลูชันwkhtmltopdfในโครงการของฉันและมีอุปสรรคมากมาย
ส่วนตัวฉันจะหลีกเลี่ยงการใช้wkhtmltopdf บนโซลูชันของแอปพลิเคชันที่โฮสต์ด้วยเหตุผลต่อไปนี้
--- ก่อนแก้ไขมาตรา ---
สำหรับใครก็ตามที่ต้องการสร้าง PDF จาก html ในแอปพลิเคชั่น / สภาพแวดล้อมที่เรียบง่ายฉันจะโพสต์ข้อความเก่าไว้เป็นคำแนะนำ
https://www.nuget.org/packages/TuesPechkin/
หรือโดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชันเว็บ MVC (แต่ฉันคิดว่าคุณสามารถใช้กับแอปพลิเคชัน. net ใดก็ได้)
https://www.nuget.org/packages/Rotativa/
พวกเขาทั้งสองใช้ ไบนารีwkhtmtopdfสำหรับการแปลง html เป็น pdf ซึ่งใช้เครื่องยนต์ WebKit สำหรับการแสดงผลหน้าจึงยังสามารถแยกแผ่นสไตล์ CSS
พวกเขาให้ใช้งานง่ายต่อเนื่องรวมกับ C #
Rotativa ยังสามารถสร้าง PDF ได้โดยตรงจากRazor View
นอกจากนี้สำหรับเว็บแอปพลิเคชันในโลกแห่งความจริงพวกเขายังจัดการความปลอดภัยของเธรด ฯลฯ ...
อัปเดต:ตอนนี้ฉันจะแนะนำPupeteerSharpผ่าน wkhtmltopdf
ลองwkhtmtopdf มันเป็นเครื่องมือที่ดีที่สุดที่ฉันค้นพบ
สำหรับ. NET คุณสามารถใช้ไลบรารี่ขนาดเล็กนี้เพื่อเรียกใช้ยูทิลิตี้บรรทัดคำสั่ง wkhtmtopdf ได้อย่างง่ายดาย
ฉันเพิ่งดำเนินการ PoC เกี่ยวกับการแปลง HTML เป็น PDF และต้องการแบ่งปันผลลัพธ์ของฉัน
สิ่งที่ฉันชอบที่สุดคือOpenHtmlToPdf
ข้อดีของเครื่องมือนี้:
เครื่องมืออื่น ๆ ผ่านการทดสอบ:
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
แต่ก็ไม่สนับสนุน OpenHtmlToPdf ทำงานได้อย่างสมบูรณ์แบบฟรี
อัพเดตล่าสุด: มีนาคม 2563
นี่คือรายการตัวเลือกสำหรับการแปลง HTML เป็น PDF ใน. NET ที่ฉันได้รวบรวมไว้ (บางฟรีจ่ายบางส่วน)
GemBox.Document
PDF การเปลี่ยนแปลง. สุทธิ
HtmlRenderer.PdfSharp
PuppeteerSharp
EO.Pdf
WnvHtmlToPdf_x64
IronPdf
Spire.PDF
Spire.PDF ฟรีสำหรับ. NET (เวอร์ชั่นชุมชน)
Aspose.Html
EvoPDF
ExpertPdfHtmlToPdf
Zetpdf
PDFtron
WkHtmlToXSharp
SelectPDF
หากไม่มีตัวเลือกใด ๆ ด้านบนช่วยให้คุณสามารถค้นหาแพ็คเกจ NuGet ได้ตลอดเวลา https://www.nuget.org/packages?q=html+pdf
โปรแกรมแปลง HTML เป็น PDF ส่วนใหญ่ใช้ IE ในการแยกวิเคราะห์และแสดงผล HTML สิ่งนี้อาจแตกเมื่อผู้ใช้อัปเดต IE นี่คือสิ่งที่ไม่ต้องพึ่งพา IE
รหัสเป็นดังนี้:
EO.Pdf.HtmlToPdf.ConvertHtml(htmlText, pdfFileName);
เช่นเดียวกับตัวแปลงอื่น ๆ คุณสามารถส่งข้อความชื่อไฟล์หรือ URL ได้ ผลลัพธ์สามารถบันทึกลงในไฟล์หรือสตรีมได้
ฉันขอแนะนำNRecoอย่างจริงจัง มันมีรุ่นฟรีและจ่ายเงินและคุ้มค่าจริงๆ มันใช้ wkhtmtopdf ในพื้นหลัง แต่คุณเพียงแค่ต้องการหนึ่งการชุมนุม น่าอัศจรรย์
ตัวอย่างการใช้งาน:
var htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now);
var pdfBytes = (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(htmlContent);
คำเตือน: ฉันไม่ใช่นักพัฒนาเพียงแค่เป็นแฟนของโครงการ :)
Winnovativeนำเสนอไลบรารี. Net PDF ที่รองรับอินพุต HTML พวกเขามีไม่ จำกัดทดลองใช้ฟรี ขึ้นอยู่กับว่าคุณต้องการปรับใช้โครงการของคุณอย่างไรอาจเพียงพอ
ที่สำคัญรูปแบบไฟล์ PDFสามารถใช้ในการแปลง HTML เป็น PDF : ตัวอย่าง C # ตัวอย่างที่เชื่อมโยงถึงที่นี่เป็นแบบ ASP.NET แต่สามารถใช้ไลบรารีจากแบบฟอร์ม Windows, WPF, ASP.NET Webforms และ ASP.NET MVC ไลบรารีมีตัวเลือกในการใช้เอ็นจินการเรนเดอร์ HTML ต่าง ๆ : Internet Explorer (ค่าเริ่มต้น) และ WebKit (เอาต์พุตที่ดีที่สุด)
ชุดควบคุมทั้งหมดมีให้บริการฟรี (แอพพลิเคชั่นเชิงพาณิชย์) ผ่านโปรแกรมใบอนุญาตชุมชนหากคุณมีคุณสมบัติ สิทธิ์ใช้งานชุมชนเป็นผลิตภัณฑ์แบบเต็มโดยไม่มีข้อ จำกัด หรือลายน้ำ
หมายเหตุ: ฉันทำงานเพื่อ Syncfusion
หากคุณไม่ต้องการไลบรารี. Net PDF ที่แท้จริงมีเครื่องมือ HTML เป็น PDF ฟรีจำนวนมากซึ่งส่วนใหญ่สามารถเรียกใช้จากบรรทัดคำสั่ง
ทางออกหนึ่งคือเลือกหนึ่งในนั้นแล้วเขียนเสื้อคลุมบาง ๆ รอบ ๆ ใน C # เช่นทำในบทช่วยสอนนี้
ผมใช้ ExpertPDF Html เป็น PDF Converter ทำงานได้ดี น่าเสียดายที่มันไม่ฟรี
มีข่าวดีสำหรับความต้องการ HTML เป็น PDF ในฐานะที่เป็นคำตอบนี้แสดงให้เห็น , ของ W3C มาตรฐานCSS แบ่ง-3จะแก้ปัญหา ... มันเป็นคำแนะนำผู้สมัครที่มีแผนจะเปลี่ยนเป็นคำแนะนำที่ชัดเจนในปี 2017 หรือปี 2018 หลังจากการทดสอบ
ในฐานะที่ไม่ให้ได้มาตรฐานมีโซลูชั่นที่มีปลั๊กอินสำหรับ C # เป็นแสดงให้เห็นโดยprint-css.rocks
คุณสามารถใช้คุณลักษณะการพิมพ์เป็น PDF ของ 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();
}
ABCpdf.NET (http://www.websupergoo.com/abcpdf-5.htm)
เราใช้และแนะนำ
องค์ประกอบที่ดีมากมันไม่เพียง แต่แปลงหน้าเว็บเป็น PDF เหมือนรูปภาพ แต่แปลงข้อความรูปภาพการจัดรูปแบบและอื่น ๆ ...
มันไม่ฟรี แต่มันราคาถูก
ฉันเป็นผู้เขียนแพ็คเกจ Rotativa อนุญาตให้สร้างไฟล์ PDF โดยตรงจากมุมมองมีดโกน:
https://www.nuget.org/packages/Rotativa/
ใช้งานได้เล็กน้อยและคุณสามารถควบคุมเค้าโครงได้อย่างเต็มที่เนื่องจากคุณสามารถใช้มุมมองมีดโกนกับข้อมูลจาก Model และ ViewBag container ของคุณ
ฉันพัฒนาเวอร์ชัน SaaS บน Azure มันช่วยให้ใช้งานได้ง่ายขึ้นจาก WebApi หรือแอป. สุทธิ, บริการ, เว็บไซต์ Azure, Azure webjob ทุกอย่างที่ทำงาน. Net
บัญชีฟรีใช้ได้
ด้านล่างคือตัวอย่างของการแปลง html + css เป็น PDF โดยใช้ 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();
}
ขึ้นอยู่กับข้อกำหนดอื่น ๆ ที่คุณมี
วิธีแก้ปัญหาที่เรียบง่าย แต่ไม่สามารถนำไปใช้ได้อย่างง่ายดายคือการใช้การควบคุมเว็บเบราเซอร์เพื่อโหลด Html จากนั้นใช้การพิมพ์วิธีการพิมพ์ไปยังเครื่องพิมพ์ PDF ที่ติดตั้งภายในเครื่อง มีเครื่องพิมพ์ PDF ฟรีมากมายและตัวควบคุมเว็บเบราว์เซอร์เป็นส่วนหนึ่งของกรอบงาน. Net
แก้ไข: ถ้าคุณ Html เป็น XHtml คุณสามารถใช้PDFizerในการทำงาน
PDF Visionดีมาก อย่างไรก็ตามคุณต้องมี Full Trust เพื่อใช้งาน ฉันส่งอีเมลแล้วและถามว่าทำไม HTML ของฉันจึงไม่ถูกแปลงบนเซิร์ฟเวอร์ แต่ทำงานได้ดีบน localhost
ฉันพบว่าไลบรารีต่อไปนี้มีประสิทธิภาพมากกว่าในการแปลง html เป็น pdf
nuget : https://www.nuget.org/packages/Select.HtmlToPdf/
ฉันกำลังมองหาสิ่งนี้อยู่พักหนึ่ง ฉันวิ่งเข้าไปใน HTMLDOC http://www.easysw.com/htmldoc/ซึ่งเป็นแอปเปิดบรรทัดคำสั่งฟรีที่ใช้ไฟล์ HTML เป็นอาร์กิวเมนต์และแยก PDF ออกมา มันใช้งานได้สำหรับฉันค่อนข้างดีสำหรับโครงการด้านข้างของฉัน แต่ทุกอย่างขึ้นอยู่กับสิ่งที่คุณต้องการจริงๆ
บริษัท ที่ขายไบนารีที่รวบรวมไว้ แต่คุณมีอิสระในการดาวน์โหลดและรวบรวมจากแหล่งต่างๆและใช้งานได้ฟรี ฉันจัดการเพื่อรวบรวมการแก้ไขล่าสุดสวย (สำหรับรุ่น 1.9) และฉันตั้งใจที่จะปล่อยตัวติดตั้งไบนารีในสองสามวันดังนั้นถ้าคุณสนใจฉันสามารถให้ลิงค์ไปทันทีที่ฉันโพสต์มัน
แก้ไข (2/25/2014): ดูเหมือนว่าเอกสารและไซต์ถูกย้ายไปที่http://www.msweet.org/projects.php?Z1
คุณต้องใช้ไลบรารีเชิงพาณิชย์หากคุณต้องการการแสดงผล html ที่สมบูรณ์แบบในรูปแบบ pdf
ExpertPdf Html เป็น 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);
คุณยังมีทางเลือกอื่นในการบันทึกเอกสาร pdf ที่สร้างโดยตรงไปยังสตรีมของไฟล์บนดิสก์
นี่เป็นห้องสมุดฟรีและทำงานได้ง่ายมาก: 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
ดูเหมือนว่าจนถึงตอนนี้ทางออกที่ดีที่สุดของ. NET ฟรีคือไลบรารีทำลายความเสียหายซึ่งเป็นตัวล้อมรอบไลบรารีดั้งเดิมของwkhtmltopdf
ตอนนี้ฉันใช้เวอร์ชันแบบเธรดเดียวเพื่อแปลงสตริง HTML สองสามพันเป็นไฟล์ PDF และดูเหมือนว่าจะใช้งานได้ดี มันควรที่จะทำงานในสภาพแวดล้อมแบบมัลติเธรด (เช่น IIS) แต่ฉันยังไม่ได้ทดสอบ
นอกจากนี้เนื่องจากฉันต้องการใช้รุ่นล่าสุดของwkhtmltopdf (0.12.5 ในขณะที่เขียน) ฉันจึงดาวน์โหลด DLL จากเว็บไซต์ทางการคัดลอกไปยังรูทโปรเจคของฉันตั้งค่าคัดลอกเป็นเอาท์พุทเป็นจริงและเริ่มต้นไลบรารีเช่น ดังนั้น:
var dllDir = AppDomain.CurrentDomain.BaseDirectory;
Converter = new StandardConverter(new PdfToolset(new StaticDeployment(dllDir)));
รหัสด้านบนจะมีลักษณะเหมือนกันกับ "wkhtmltox.dll" ดังนั้นอย่าเปลี่ยนชื่อไฟล์ ฉันใช้ DLL รุ่น 64 บิต
ตรวจสอบให้แน่ใจว่าคุณอ่านคำแนะนำสำหรับสภาพแวดล้อมแบบมัลติเธรดเนื่องจากคุณจะต้องเริ่มต้นเพียงครั้งเดียวต่อวงจรชีวิตของแอปดังนั้นคุณจะต้องใส่ไว้ในรูปแบบซิงเกิลหรืออะไรบางอย่าง
นี่คือเสื้อคลุมสำหรับ wkhtmltopdf.dll โดย pruiz
No tests are run because no tests are loaded or the selected tests are disabled
googling ก็ไม่ได้ช่วยอะไรเช่นกัน
เครื่องมือที่ดีที่สุดฉันได้พบและใช้สำหรับการสร้างรูปแบบไฟล์ PDF ของ JavaScript และรูปแบบการแสดงผลมุมมองหรือหน้า html เป็นphantomJS
ดาวน์โหลดไฟล์. exe พร้อมฟังก์ชั่น rasterize.js ที่อยู่ในรูทของ exe ของโฟลเดอร์ตัวอย่างและใส่เข้าไปในโซลูชัน
มันยังช่วยให้คุณสามารถดาวน์โหลดไฟล์ในรหัสใด ๆ โดยไม่ต้องเปิดไฟล์นั้นและยังอนุญาตให้ดาวน์โหลดไฟล์เมื่อมีการใช้สไตล์และ jquery พิเศษ
รหัสต่อไปนี้สร้างไฟล์ PDF:
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;
}
นอกจากนี้คุณยังสามารถตรวจสอบSpire ได้ด้วยซึ่งจะช่วยให้คุณสร้าง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");
บทความโดยละเอียด: วิธีการแปลง HTML เป็น PDF ใน asp.net C #
ในฐานะตัวแทนของซอฟต์แวร์ HiQPdf ฉันเชื่อว่าทางออกที่ดีที่สุดคือ HiQPdf HTML เพื่อแปลง PDF สำหรับ NET มันมีเครื่องมือแสดงผล HTML5, CSS3, SVG และ JavaScript ที่ทันสมัยที่สุดในตลาด นอกจากนี้ยังมีไลบรารี HTML เป็น PDF รุ่นฟรีซึ่งคุณสามารถใช้สร้างหน้า PDF ได้ฟรีสูงสุด 3 หน้า รหัส C # ขั้นต่ำในการสร้าง PDF เป็นไบต์ [] จากหน้า HTML คือ:
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 ที่เก็บตัวอย่าง
เป็นไปได้ว่าโครงการส่วนใหญ่จะใช้โปรแกรม C / C ++ แทนการใช้โซลูชัน C # ตั้งแต่เริ่มต้น ลองโครงการGotenberg
เพื่อทำการทดสอบ
docker run --rm -p 3000:3000 thecodingmachine/gotenberg:6
ตัวอย่าง Curl
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
C # sample.cs
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
ลองใช้PDF Duo .Netการแปลงองค์ประกอบสำหรับการแปลงHTML เป็น PDF จากแอปพลิเคชันASP.NETโดยไม่ต้องใช้ DLLs เพิ่มเติม
คุณสามารถส่งสตริงหรือไฟล์ HTML หรือสตรีมเพื่อสร้าง PDF ใช้รหัสด้านล่าง (ตัวอย่าง 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
การแปลง HTML เป็น PDF ใน C # ใช้ ABCpdf
ABCpdf สามารถใช้ประโยชน์จากเอ็นจิ้นการแสดงผล Gecko หรือ Trident ดังนั้นตาราง HTML ของคุณจะมีลักษณะเหมือนที่ปรากฏใน FireFox และ Internet Explorer
มีตัวอย่างออนไลน์ของ ABCpdf ที่ www.abcpdfeditor.com คุณสามารถใช้สิ่งนี้เพื่อตรวจสอบว่าตารางของคุณจะแสดงผลเป็นอย่างไรก่อนโดยไม่จำเป็นต้องดาวน์โหลดและติดตั้งซอฟต์แวร์
สำหรับการแสดงผลหน้าเว็บทั้งหมดคุณจะต้องใช้ฟังก์ชัน 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();
ABCpdf เป็นชื่อซอฟต์แวร์เชิงพาณิชย์อย่างไรก็ตามรุ่นมาตรฐานสามารถขอรับได้ฟรีภายใต้ข้อเสนอพิเศษ
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