From f5fdcb46f18cad9de80c28f673daed790212989b Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Sat, 18 Jul 2026 22:40:45 +0000 Subject: [PATCH] Add 1 html java tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: conversion-html-to-other-formats Source: AI Search API Tutorials: - How to Convert HTML File to PDF in C# – Step‑by‑Step Guide Auto-generated by Professionalize.Tutorials Agent --- .../_index.md | 2 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 1 + .../_index.md | 316 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 318 +++++++++++++++++ .../og-image.png | Bin 0 -> 48456 bytes .../_index.md | 3 + .../_index.md | 320 ++++++++++++++++++ .../_index.md | 3 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 315 +++++++++++++++++ .../_index.md | 3 + .../_index.md | 315 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 315 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 3 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 1 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 315 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 10 + .../_index.md | 320 ++++++++++++++++++ .../_index.md | 5 +- .../_index.md | 319 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 319 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 319 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 317 +++++++++++++++++ .../_index.md | 2 + .../_index.md | 315 +++++++++++++++++ .../_index.md | 3 + .../_index.md | 315 +++++++++++++++++ 47 files changed, 7350 insertions(+), 1 deletion(-) create mode 100644 html/arabic/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/chinese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/czech/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/dutch/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/english/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/english/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/og-image.png create mode 100644 html/french/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/german/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/greek/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/hindi/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/hongkong/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/hungarian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/indonesian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/italian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/japanese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/korean/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/polish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/portuguese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/russian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/spanish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/swedish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/thai/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/turkish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md create mode 100644 html/vietnamese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md diff --git a/html/arabic/java/conversion-html-to-other-formats/_index.md b/html/arabic/java/conversion-html-to-other-formats/_index.md index 7c53c64117..5027139ad1 100644 --- a/html/arabic/java/conversion-html-to-other-formats/_index.md +++ b/html/arabic/java/conversion-html-to-other-formats/_index.md @@ -98,6 +98,8 @@ XPS هو صيغة الطباعة الخاصة بمايكروسوفت. باستخ تعلم كيفية تحويل SVG إلى XPS باستخدام Aspose.HTML for Java. دليل بسيط خطوة بخطوة لتحويلات سلسة. ### [تحويل HTML إلى PDF في Java – دليل خطوة بخطوة مع إعدادات حجم الصفحة](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) تعلم تحويل HTML إلى PDF في Java مع إعدادات حجم الصفحة خطوة بخطوة باستخدام Aspose.HTML. +### [كيفية تحويل ملف HTML إلى PDF في C# – دليل خطوة بخطوة](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +تعلم كيفية تحويل ملف HTML إلى PDF في C# باستخدام Aspose.HTML. اتبع دليلًا خطوة بخطوة. ## الأسئلة المتكررة diff --git a/html/arabic/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/arabic/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..0e53140bbd --- /dev/null +++ b/html/arabic/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: كيفية تحويل ملف HTML إلى PDF في C# باستخدام Aspose.PDF. تعلم التحويل + الجماعي، خيارات PDF، وإنشاء PDF من مستند HTML مع أمثلة شفرة واضحة. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: ar +lastmod: 2026-07-18 +og_description: كيفية تحويل ملف HTML إلى PDF في C# باستخدام Aspose.PDF. اتبع هذا الدليل + لتحويل ملفات HTML إلى PDF دفعة واحدة وإنشاء PDF من مستند HTML بسهولة. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: كيفية تحويل ملف HTML إلى PDF في C# – دليل برمجي شامل +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: كيفية تحويل ملف HTML إلى PDF في C# – دليل خطوة بخطوة +url: /ar/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تحويل ملف HTML إلى PDF في C# – دليل برمجي كامل + +هل تساءلت يومًا **كيف تحول ملف HTML إلى PDF** باستخدام C# دون أن تفقد أعصابك؟ لست وحدك. سواء كنت تبني مولد تقارير، أو محرك فواتير، أو أداة تصدير موقع ثابت، فإن تحويل HTML إلى PDF مصقول هو طلب شائع. + +في هذا الدرس سنستعرض حلًا جاهزًا للتنفيذ يوضح **كيف تحول ملف HTML إلى PDF** باستخدام Aspose.PDF، وكيف **تحول HTML إلى PDF C#** في نداء واحد، وحتى **تحويل دفعة من ملفات HTML إلى PDF** للسيناريوهات واسعة النطاق. بنهاية الدرس ستعرف أيضًا **كيفية إنشاء PDF من مستند HTML** مع خيارات مخصصة مثل حجم الصفحة، الهوامش، ومعالجة الصور. + +## المتطلبات المسبقة + +قبل أن نبدأ، تأكد من وجود ما يلي: + +* .NET 6.0 SDK أو أحدث (الكود يعمل على .NET Framework 4.6+ أيضًا) +* Visual Studio 2022 (أو أي محرر تفضله) +* رخصة NuGet سارية لـ **Aspose.PDF for .NET** – النسخة التجريبية المجانية تكفي للتجربة +* مجلد يحتوي على ملف أو أكثر بامتداد `.html` تريد تحويله إلى ملفات PDF + +هل لديك كل شيء؟ رائع—لنبدأ. + +## الخطوة 1: إعداد المشروع وتثبيت Aspose.PDF + +أولاً، أنشئ تطبيقًا جديدًا من نوع console: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +الآن أضف حزمة Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +الحزمة تجلب الفئة `Converter` التي سنستخدمها لت **تحول HTML إلى PDF C#**. لا توجد DLLs إضافية، ولا تبعيات أصلية—فقط مرجع NuGet نظيف. + +## الخطوة 2: كتابة منطق التحويل الأساسي + +افتح `Program.cs` واستبدل القالب بالشفرة التالية. كل سطر مُعلق لتتمكن من معرفة السبب وراء وجوده. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### لماذا هذا يعمل + +* **`Converter.Convert`** هو قلب **كيف تحول ملف HTML إلى PDF** في C#. يقرأ ملف HTML المصدر، يطبق `PdfSaveOptions`، ويكتب PDF في نداء واحد. +* الحلقة تنفّذ **تحويل دفعة من ملفات HTML إلى PDF** دون الحاجة لكتابة قالب إضافي. +* من خلال تعديل `PdfSaveOptions` تتحكم في المظهر النهائي، وهو أمر أساسي عندما تحتاج **إنشاء PDF من مستند HTML** يتماشى مع هوية الشركة. + +## الخطوة 3: اختبار المحول بعينة HTML بسيطة + +أنشئ مجلدًا فرعيًا باسم `html` بجوار `Program.cs` وضع فيه ملفًا صغيرًا اسمه `sample.html`: + +```html + + + + Demo PDF + + + +

Hello, PDF World!

+

This PDF was generated from an HTML file using C#.

+ Visit Example.com + + +``` + +شغّل البرنامج: + +```bash +dotnet run +``` + +يجب أن ترى سطرًا بعلامة تحقق خضراء يؤكد التحويل، وسيظهر ملف `sample.pdf` في مجلد `pdf`. افتحه—لاحظ لون العنوان، والرابط، والهوامش التي ضبطتها في `PdfSaveOptions`. هذا هو الدليل على أنك أتقنت **كيف تحول ملف HTML إلى PDF** بنجاح. + +## الخطوة 4: خيارات متقدمة لسيناريوهات العالم الحقيقي + +### 4.1 معالجة الموارد الخارجية (CSS، الصور) + +إذا كان HTML الخاص بك يشير إلى ملفات CSS أو صور خارجية، تأكد من أن المسارات مطلقة أو نسبية إلى دليل ملف HTML. Aspose.PDF يحلها تلقائيًا، لكن يمكنك أيضًا تعيين عنوان أساسي: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 التحكم في تضمين الخطوط + +أحيانًا تتطلب ملفات PDF الخاصة بالشركات خطوطًا محددة. يمكنك تضمين خط TrueType هكذا: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +ضع ملفات `.ttf` الخاصة بك في مجلد `fonts` وارجع إليها في HTML عبر `@font-face`. + +### 4.3 إنشاء PDF واحد من عدة ملفات HTML + +إذا احتجت **إنشاء PDF من مستند HTML** يمتد لعدة صفحات (مثل تقرير متعدد الفصول)، يمكنك دمج ملفات PDF بعد التحويل: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 معالجة الأخطاء وتسجيلها + +يجب أن يحمي الكود الإنتاجي من HTML غير صالح أو موارد مفقودة. غلف عملية التحويل بكتلة try‑catch وسجّل الاستثناء: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## الخطوة 5: التحقق من الناتج برمجيًا (اختياري) + +إذا أردت التأكد من أن كل PDF تم إنشاؤه يحتوي على كلمة مفتاحية معينة أو عدد صفحات محدد، يتيح لك Aspose.PDF فحص ملفات PDF بعد الإنشاء: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +يمكن أن يصبح هذا المقتطف الصغير جزءًا من مجموعة اختبارات آلية لأنبوب **تحويل HTML إلى PDF C#** الخاص بك. + +## مشاكل شائعة ونصائح احترافية + +| المشكلة | لماذا يحدث | الحل | +|---------|------------|------| +| مسارات الصور النسبية تتعطل | المحول يعمل من دليل عمل مختلف | عيّن `pdfOptions.BaseUri` إلى مجلد HTML | +| الخطوط تظهر كبدائل | الخط غير مضمّن أو غير موجود على الخادم | استخدم `FontEmbeddingMode.Always` ووفّر ملفات الخط | +| ملفات HTML الكبيرة تسبب ارتفاع الذاكرة | يتم تحميل المستند بالكامل في الذاكرة | عالج الملفات واحدةً تلو الأخرى (كما هو موضح) أو زد `MemoryLimit` في الخيارات | +| الروابط تتحول إلى نص عادي | `PreserveHyperlinks` معطّل | تأكد من أن `PreserveHyperlinks = true` في `PdfSaveOptions` | + +## مثال كامل يعمل (كل الشفرة في مكان واحد) + +للتسهيل، إليك البرنامج بالكامل يمكنك نسخه‑ولصقه في `Program.cs`. يتضمن جميع التعديلات الاختيارية التي نوقشت أعلاه، لكن يمكنك التعليق على الأقسام التي لا تحتاجها. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## ماذا يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات التي تم توضيحها في هذا الدليل. كل مصدر يتضمن أمثلة شيفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك الخاصة. + +- [تحويل HTML إلى PDF في .NET باستخدام Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [تحويل EPUB إلى PDF في .NET باستخدام Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [تحويل SVG إلى PDF في .NET باستخدام Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/conversion-html-to-other-formats/_index.md b/html/chinese/java/conversion-html-to-other-formats/_index.md index 17440bc9f7..34a7de7fe5 100644 --- a/html/chinese/java/conversion-html-to-other-formats/_index.md +++ b/html/chinese/java/conversion-html-to-other-formats/_index.md @@ -97,6 +97,8 @@ Aspose.HTML for Java 简化了 HTML 转 PDF 的工作流。请参阅专门的教 了解如何使用 Aspose.HTML for Java 将 SVG 转换为 XPS。提供简单、分步的无缝转换指南。 ### [在 Java 中将 HTML 转换为 PDF – 带页面尺寸设置的分步指南](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) 详细步骤演示如何在 Java 使用 Aspose.HTML 将 HTML 转换为 PDF,并自定义页面尺寸。 +### [在 C# 中将 HTML 文件转换为 PDF – 分步指南](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +了解如何使用 Aspose.HTML 在 C# 中将 HTML 文件转换为 PDF,提供详细的分步指南。 ## 常见问题 diff --git a/html/chinese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/chinese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..0703461d4b --- /dev/null +++ b/html/chinese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: 如何使用 Aspose.PDF 在 C# 中将 HTML 文件转换为 PDF。了解批量转换、PDF 选项,并通过清晰的代码示例从 HTML + 文档生成 PDF。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: zh +lastmod: 2026-07-18 +og_description: 如何使用 Aspose.PDF 在 C# 中将 HTML 文件转换为 PDF。请按照本指南批量将 HTML 文件转换为 PDF,并轻松从 + HTML 文档生成 PDF。 +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: 如何在 C# 中将 HTML 文件转换为 PDF – 完整编程演练 +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: 如何在 C# 中将 HTML 文件转换为 PDF – 步骤指南 +url: /zh/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中将 HTML 文件转换为 PDF – 完整编程演练 + +有没有想过 **如何将 HTML 文件转换为 PDF**,而不让自己抓狂?你并不是唯一的。无论你是在构建报表生成器、发票引擎,还是静态站点导出器,将 HTML 转换为精美的 PDF 都是常见需求。 + +在本教程中,我们将演示一个可直接运行的解决方案,展示 **如何将 HTML 文件转换为 PDF**,使用 Aspose.PDF,如何在一次调用中 **convert HTML to PDF C#**,甚至如何在大规模场景下 **batch convert HTML files to PDF**。结束时,你还会了解如何使用自定义选项(如页面尺寸、边距和图像处理) **generate PDF from HTML document**。 + +## 前置条件 + +在开始之前,请确保你已经具备: + +* .NET 6.0 SDK 或更高版本(代码同样适用于 .NET Framework 4.6+) +* Visual Studio 2022(或你喜欢的任意编辑器) +* 有效的 **Aspose.PDF for .NET** NuGet 许可证——免费试用版可用于实验 +* 一个包含一个或多个 `.html` 文件的文件夹,这些文件是你想转换为 PDF 的 + +准备好了吗?很好——让我们开始吧。 + +## 第一步:创建项目并安装 Aspose.PDF + +首先,创建一个新的控制台应用: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +现在添加 Aspose.PDF 包: + +```bash +dotnet add package Aspose.PDF +``` + +该包会引入我们将用于 **convert HTML to PDF C#** 的 `Converter` 类。无需额外的 DLL,也没有本地依赖——只需一个干净的 NuGet 引用。 + +## 第二步:编写核心转换逻辑 + +打开 `Program.cs`,将模板代码替换为以下内容。每行代码都有注释,帮助你了解其作用。 + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### 为什么这样可行 + +* **`Converter.Convert`** 是在 C# 中 **how to convert HTML file to PDF** 的核心。它读取源 HTML,应用 `PdfSaveOptions`,并在一次调用中写入 PDF。 +* 循环实现了 **batch convert HTML files to PDF**,无需你额外编写样板代码。 +* 通过调整 `PdfSaveOptions`,你可以控制最终效果,这在需要 **generate PDF from HTML document** 并匹配企业品牌时尤为重要。 + +## 第三步:使用简单的 HTML 示例测试转换器 + +在 `Program.cs` 同级目录下创建一个名为 `html` 的子文件夹,并放入一个名为 `sample.html` 的小文件: + +```html + + + + Demo PDF + + + +

Hello, PDF World!

+

This PDF was generated from an HTML file using C#.

+ Visit Example.com + + +``` + +运行程序: + +```bash +dotnet run +``` + +你应该会看到一行绿色的对勾,表示转换成功,并且在 `pdf` 文件夹中生成 `sample.pdf`。打开它——注意标题颜色、链接以及你在 `PdfSaveOptions` 中设置的边距。这就证明你已经成功掌握了 **how to convert HTML file to PDF**。 + +## 第四步:面向真实场景的高级选项 + +### 4.1 处理外部资源(CSS、图片) + +如果你的 HTML 引用了外部 CSS 文件或图片,请确保路径是绝对路径或相对于 HTML 文件目录的相对路径。Aspose.PDF 会自动解析它们,你也可以手动设置基准 URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 控制字体嵌入 + +有时企业 PDF 需要特定字体。你可以这样嵌入 TrueType 字体: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +将 `.ttf` 文件放入 `fonts` 文件夹,并在 HTML 中通过 `@font-face` 引用它们。 + +### 4.3 将多个 HTML 文件合并为单个 PDF + +如果需要 **generate PDF from HTML document**,且内容跨越多页(例如多章节报告),可以在转换后将 PDF 合并: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 错误处理与日志记录 + +生产代码应防止 HTML 损坏或资源缺失。将转换包装在 try‑catch 块中并记录异常: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## 第五步:以编程方式验证输出(可选) + +如果你想确保每个生成的 PDF 都包含特定关键字或页数,Aspose.PDF 允许在创建后检查 PDF: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +这段小代码可以成为 **convert HTML to PDF C#** 流程的自动化测试套件的一部分。 + +## 常见坑点与专业技巧 + +| 坑点 | 产生原因 | 解决方案 | +|------|----------|----------| +| 相对图片路径失效 | Converter 在不同的工作目录下运行 | 将 `pdfOptions.BaseUri` 设置为 HTML 文件夹 | +| 字体显示为替代字体 | 字体未嵌入或服务器上缺失 | 使用 `FontEmbeddingMode.Always` 并提供字体文件 | +| 大型 HTML 文件导致内存激增 | 整个文档一次性加载到内存 | 如示例逐个处理文件,或在选项中提升 `MemoryLimit` | +| 链接变成纯文本 | `PreserveHyperlinks` 被禁用 | 确保在 `PdfSaveOptions` 中 `PreserveHyperlinks = true` | + +## 完整工作示例(所有代码集中于一处) + +为了方便,这里提供可以直接复制到 `Program.cs` 的完整程序。它包含了上述所有可选调整,你可以根据需要注释掉不需要的部分。 + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## 接下来该学习什么? + +以下教程涵盖了与本指南技术紧密相关的主题,帮助你在本教程的基础上进一步掌握 API 功能并探索替代实现方式。 + +- [Convert HTML to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convert SVG to PDF in .NET with Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/conversion-html-to-other-formats/_index.md b/html/czech/java/conversion-html-to-other-formats/_index.md index e722ab4720..901c41c026 100644 --- a/html/czech/java/conversion-html-to-other-formats/_index.md +++ b/html/czech/java/conversion-html-to-other-formats/_index.md @@ -98,6 +98,8 @@ Převádějte SVG do PDF v Javě s Aspose.HTML. Bezproblémové řešení pro vy Naučte se převádět SVG do XPS s Aspose.HTML for Java. Jednoduchý, krok‑za‑krokem průvodce pro plynulé konverze. ### [Převod HTML do PDF v Javě – krok‑za‑krokem s nastavením velikosti stránky](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Naučte se převést HTML do PDF v Javě s podrobným nastavením velikosti stránky a dalšími možnostmi. +### [Jak převést soubor HTML do PDF v C# – krok‑za‑krokem](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Naučte se převést HTML soubor do PDF v C# pomocí Aspose.HTML s podrobným krok‑za‑krokem návodem. ## Často kladené otázky diff --git a/html/czech/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/czech/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..6f53031e66 --- /dev/null +++ b/html/czech/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: Jak převést soubor HTML na PDF v C# pomocí Aspose.PDF. Naučte se hromadnou + konverzi, možnosti PDF a generování PDF z HTML dokumentu s přehlednými ukázkami + kódu. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: cs +lastmod: 2026-07-18 +og_description: Jak převést soubor HTML na PDF v C# pomocí Aspose.PDF. Postupujte + podle tohoto návodu a hromadně převádějte soubory HTML na PDF a snadno generujte + PDF z HTML dokumentu. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Jak převést HTML soubor na PDF v C# – Kompletní programovací průvodce +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Jak převést HTML soubor do PDF v C# – krok za krokem průvodce +url: /cs/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak převést HTML soubor na PDF v C# – Kompletní programovací průvodce + +Už jste se někdy zamýšleli **jak převést HTML soubor na PDF** pomocí C#, aniž byste si trhali vlasy? Nejste v tom sami. Ať už vytváříte generátor reportů, fakturační engine nebo exportér statických stránek, převod HTML na elegantní PDF je častý požadavek. + +V tomto tutoriálu projdeme připravené řešení, které ukazuje **jak převést HTML soubor na PDF** pomocí Aspose.PDF, jak **convert HTML to PDF C#** v jednom volání, a dokonce jak **batch convert HTML files to PDF** pro rozsáhlé scénáře. Na konci také budete vědět, jak **generate PDF from HTML document** s vlastními možnostmi, jako je velikost stránky, okraje a zpracování obrázků. + +## Požadavky + +* .NET 6.0 SDK nebo novější (kód funguje také na .NET Framework 4.6+) +* Visual Studio 2022 (nebo jakýkoli editor, který preferujete) +* Aktivní licence NuGet pro **Aspose.PDF for .NET** – bezplatná zkušební verze stačí pro experimentování +* Složka obsahující jeden nebo více souborů `.html`, které chcete převést na PDF + +Máte vše? Skvělé—pustíme se do toho. + +## Krok 1: Nastavení projektu a instalace Aspose.PDF + +First, create a new console app: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Now add the Aspose.PDF package: + +```bash +dotnet add package Aspose.PDF +``` + +Balíček přináší třídu `Converter`, kterou použijeme pro **convert HTML to PDF C#** styl. Žádné extra DLL, žádné nativní závislosti—pouze čistý odkaz na NuGet. + +## Krok 2: Napsání hlavní konverzní logiky + +Open `Program.cs` and replace the boilerplate with the following code. Every line is commented so you can see exactly why it’s there. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Proč to funguje + +* **`Converter.Convert`** je jádrem **how to convert HTML file to PDF** v C#. Načte zdrojové HTML, použije `PdfSaveOptions` a zapíše PDF v jediném volání. +* Smyčka implementuje **batch convert HTML files to PDF** bez nutnosti psát další výchozí kód. +* Úpravou `PdfSaveOptions` řídíte finální vzhled, což je nezbytné, když potřebujete **generate PDF from HTML document**, který odpovídá firemnímu brandingu. + +## Krok 3: Otestování konvertoru s jednoduchým HTML vzorkem + +Vytvořte podsložku s názvem `html` vedle `Program.cs` a vložte do ní malý soubor s názvem `sample.html`: + +```html + + + + Demo PDF + + + +

Hello, PDF World!

+

This PDF was generated from an HTML file using C#.

+ Visit Example.com + + +``` + +Spusťte program: + +```bash +dotnet run +``` + +Měli byste vidět zelenou značku potvrzující konverzi a soubor `sample.pdf` se objeví ve složce `pdf`. Otevřete jej—všimněte si barvy nadpisu, odkazu a okrajů nastavených v `PdfSaveOptions`. To je důkaz, že jste úspěšně zvládli **how to convert HTML file to PDF**. + +## Krok 4: Pokročilé možnosti pro reálné scénáře + +### 4.1 Zpracování externích zdrojů (CSS, obrázky) + +Pokud vaše HTML odkazuje na externí CSS soubory nebo obrázky, ujistěte se, že cesty jsou absolutní nebo relativní k adresáři HTML souboru. Aspose.PDF je automaticky vyřeší, ale můžete také nastavit základní URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Řízení vkládání fontů + +Někdy firemní PDF vyžadují specifické fonty. Můžete vložit TrueType font takto: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Umístěte své soubory `.ttf` do složky `fonts` a odkažte na ně ve vašem HTML pomocí `@font-face`. + +### 4.3 Vytvoření jednoho PDF z více HTML souborů + +Pokud potřebujete **generate PDF from HTML document**, který se rozkládá na více stránek (např. vícekapitolový report), můžete po konverzi spojit PDF soubory: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Ošetření chyb a logování + +Produkční kód by měl chránit před poškozeným HTML nebo chybějícími zdroji. Zabalte konverzi do try‑catch bloku a zaznamenejte výjimku: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Krok 5: Programatické ověření výstupu (volitelné) + +Pokud chcete zajistit, že každý vygenerovaný PDF obsahuje konkrétní klíčové slovo nebo počet stránek, Aspose.PDF vám umožní PDF po vytvoření prozkoumat: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Tento malý úryvek se může stát součástí automatizovaného testovacího balíčku pro vaši **convert HTML to PDF C#** pipeline. + +## Časté úskalí a profesionální tipy + +| Problém | Proč se to děje | Oprava | +|---------|----------------|--------| +| Relativní cesty k obrázkům selhávají | Converter běží z jiného pracovního adresáře | Nastavte `pdfOptions.BaseUri` na složku HTML | +| Fonty se zobrazují jako náhrady | Font není vložen nebo chybí na serveru | Použijte `FontEmbeddingMode.Always` a poskytněte soubory fontů | +| Velké HTML soubory způsobují špičky v paměti | Celý dokument se načítá do paměti | Zpracovávejte soubory po jednom (jak je ukázáno) nebo zvyšte `MemoryLimit` v možnostech | +| Odkazy se stávají prostým textem | `PreserveHyperlinks` je vypnutý | Ujistěte se, že `PreserveHyperlinks = true` v `PdfSaveOptions` | + +## Kompletní funkční příklad (veškerý kód na jednom místě) + +Pro pohodlí zde je celý program, který můžete zkopírovat a vložit do `Program.cs`. Obsahuje všechny volitelné úpravy zmíněné výše, ale můžete zakomentovat části, které nepotřebujete. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto průvodci. Každý zdroj obsahuje kompletní funkční ukázky kódu s podrobnými vysvětleními, které vám pomohou zvládnout další funkce API a prozkoumat alternativní přístupy k implementaci ve vašich projektech. + +- [Převod HTML na PDF v .NET s Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Převod EPUB na PDF v .NET s Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Převod SVG na PDF v .NET s Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/conversion-html-to-other-formats/_index.md b/html/dutch/java/conversion-html-to-other-formats/_index.md index 88aaf02475..69e8ef99a9 100644 --- a/html/dutch/java/conversion-html-to-other-formats/_index.md +++ b/html/dutch/java/conversion-html-to-other-formats/_index.md @@ -98,6 +98,7 @@ Leer hoe u SVG naar afbeeldingen kunt converteren in Java met Aspose.HTML. Uitge Converteer SVG naar PDF in Java met Aspose.HTML. Een naadloze oplossing voor documentconversie van hoge kwaliteit. ### [SVG naar XPS converteren](./convert-svg-to-xps/) Leer hoe u SVG naar XPS kunt converteren met Aspose.HTML for Java. Eenvoudige, stap‑voor‑stap gids voor naadloze conversies. +### [Hoe HTML‑bestand naar PDF converteren in C# – Stapsgewijze gids](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) ## Veelgestelde Vragen diff --git a/html/dutch/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/dutch/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..f62b20c5c7 --- /dev/null +++ b/html/dutch/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,316 @@ +--- +category: general +date: 2026-07-18 +description: Hoe HTML-bestand naar PDF te converteren in C# met Aspose.PDF. Leer batchconversie, + PDF-opties en genereer PDF vanuit een HTML-document met duidelijke codevoorbeelden. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: nl +lastmod: 2026-07-18 +og_description: Hoe een HTML‑bestand naar PDF te converteren in C# met Aspose.PDF. + Volg deze gids om HTML‑bestanden batchgewijs naar PDF te converteren en moeiteloos + een PDF te genereren vanuit een HTML‑document. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Hoe een HTML‑bestand naar PDF converteren in C# – Complete programmeerhandleiding +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Hoe HTML-bestand naar PDF converteren in C# – Stapsgewijze handleiding +url: /nl/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe HTML-bestand naar PDF converteren in C# – Complete programmeerhandleiding + +Heb je je ooit afgevraagd **hoe je een HTML-bestand naar PDF kunt converteren** met C# zonder je haar uit te trekken? Je bent niet de enige. Of je nu een rapportgenerator, een factuurengine of een static‑site-exporteur bouwt, het omzetten van HTML naar een gepolijste PDF is een veelvoorkomende vereiste. + +In deze tutorial lopen we een kant‑klaar oplossing door die laat zien **hoe je een HTML‑bestand naar PDF kunt converteren** met Aspose.PDF, hoe je **HTML naar PDF C#** in één oproep kunt doen, en zelfs hoe je **HTML‑bestanden batch‑gewijs naar PDF kunt converteren** voor grootschalige scenario's. Aan het einde weet je ook hoe je **PDF uit HTML‑document kunt genereren** met aangepaste opties zoals paginagrootte, marges en afbeeldingsverwerking. + +## Vereisten + +* .NET 6.0 SDK of later (de code werkt ook op .NET Framework 4.6+) +* Visual Studio 2022 (of elke editor die je verkiest) +* Een actieve NuGet‑licentie voor **Aspose.PDF for .NET** – de gratis proefversie werkt voor experimenten +* Een map met één of meer `.html`‑bestanden die je wilt omzetten naar PDF’s + +Alles klaar? Geweldig—laten we beginnen. + +## Stap 1: Het project opzetten en Aspose.PDF installeren + +Eerst maak je een nieuwe console‑applicatie: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Voeg nu het Aspose.PDF‑pakket toe: + +```bash +dotnet add package Aspose.PDF +``` + +Het pakket brengt de `Converter`‑klasse binnen die we zullen gebruiken om **HTML naar PDF C#** stijl te **converteren**. Geen extra DLL’s, geen native afhankelijkheden—gewoon een schone NuGet‑referentie. + +## Stap 2: Schrijf de kernconversielogica + +Open `Program.cs` en vervang de boilerplate door de volgende code. Elke regel is gecommentarieerd zodat je precies ziet waarom deze er staat. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Waarom dit werkt + +* **`Converter.Convert`** is het hart van **hoe je een HTML‑bestand naar PDF kunt converteren** in C#. Het leest de bron‑HTML, past de `PdfSaveOptions` toe en schrijft een PDF in één oproep. +* De lus implementeert **batch‑convert HTML files to PDF** zonder dat je extra boilerplate hoeft te schrijven. +* Door `PdfSaveOptions` aan te passen beheer je het uiteindelijke uiterlijk, wat essentieel is wanneer je **PDF uit HTML‑document moet genereren** dat overeenkomt met de huisstijl van je bedrijf. + +## Stap 3: Test de converter met een eenvoudige HTML‑sample + +Maak een submap genaamd `html` naast `Program.cs` en plaats een klein bestand met de naam `sample.html` erin: + +```html + + + + Demo PDF + + + +

Hello, PDF World!

+

This PDF was generated from an HTML file using C#.

+ Visit Example.com + + +``` + +Voer het programma uit: + +```bash +dotnet run +``` + +Je zou een groene vink‑lijn moeten zien die de conversie bevestigt, en een `sample.pdf`‑bestand zal verschijnen in de `pdf`‑map. Open het—let op de kleur van de kop, de link en de marges die je hebt ingesteld in `PdfSaveOptions`. Dat is het bewijs dat je **hoe je een HTML‑bestand naar PDF kunt converteren** succesvol onder de knie hebt. + +## Stap 4: Geavanceerde opties voor real‑world scenario's + +### 4.1 Externe bronnen verwerken (CSS, afbeeldingen) + +Als je HTML verwijst naar externe CSS‑bestanden of afbeeldingen, zorg er dan voor dat de paden absoluut of relatief zijn ten opzichte van de map van het HTML‑bestand. Aspose.PDF lost ze automatisch op, maar je kunt ook een basis‑URL instellen: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Lettertype‑inbedding beheren + +Soms vereisen bedrijfs‑PDF’s specifieke lettertypen. Je kunt een TrueType‑lettertype als volgt insluiten: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Plaats je `.ttf`‑bestanden in de `fonts`‑map en verwijs ernaar in je HTML via `@font-face`. + +### 4.3 Een enkele PDF genereren uit meerdere HTML‑bestanden + +Als je **PDF uit HTML‑document moet genereren** dat zich over meerdere pagina’s uitstrekt (bijv. een meer‑hoofdstukken‑rapport), kun je PDF’s na de conversie samenvoegen: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Foutafhandeling en logging + +Productiecode moet beschermen tegen slecht gevormde HTML of ontbrekende bronnen. Plaats de conversie in een try‑catch‑blok en log de uitzondering: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Stap 5: Verifieer de output programmatisch (optioneel) + +Als je wilt verzekeren dat elke gegenereerde PDF een specifiek trefwoord of paginacount bevat, laat Aspose.PDF je PDF’s na creatie inspecteren: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Dat kleine fragment kan deel uitmaken van een geautomatiseerde test‑suite voor je **convert HTML to PDF C#**‑pipeline. + +## Veelvoorkomende valkuilen en pro‑tips + +| Valkuil | Waarom het gebeurt | Oplossing | +|---------|--------------------|-----------| +| Relatieve afbeeldingspaden breken | Converter draait vanuit een andere werkmap | Stel `pdfOptions.BaseUri` in op de HTML‑map | +| Lettertypen verschijnen als vervangingen | Lettertype niet ingebed of ontbreekt op de server | Gebruik `FontEmbeddingMode.Always` en lever de lettertypebestanden | +| Grote HTML‑bestanden veroorzaken geheugenpieken | Het volledige document wordt in het geheugen geladen | Verwerk bestanden één‑voor‑één (zoals getoond) of verhoog `MemoryLimit` in de opties | +| Links worden platte tekst | `PreserveHyperlinks` uitgeschakeld | Zorg dat `PreserveHyperlinks = true` in `PdfSaveOptions` | + +## Volledig werkend voorbeeld (alle code op één plek) + +Voor het gemak, hier is het volledige programma dat je kunt copy‑pasten in `Program.cs`. Het bevat alle optionele tweaks die hierboven zijn besproken, maar je kunt secties die je niet nodig hebt uitcommentariëren. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden gedemonstreerd. Elke bron bevat volledige werkende code‑voorbeelden met stap‑voor‑stap uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [Convert HTML to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convert SVG to PDF in .NET with Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/conversion-html-to-other-formats/_index.md b/html/english/java/conversion-html-to-other-formats/_index.md index f3a76a424c..35f9fb3d7f 100644 --- a/html/english/java/conversion-html-to-other-formats/_index.md +++ b/html/english/java/conversion-html-to-other-formats/_index.md @@ -85,6 +85,8 @@ In conclusion, mastering **html to pdf java** and the broader set of conversions Learn how to convert HTML to PDF in Java using Aspose.HTML. Create high-quality PDFs from your HTML content effortlessly. ### [Convert HTML to PDF in Java – Step‑by‑Step Guide with Page Size Settings](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Step-by-step guide to convert HTML to PDF in Java, including how to set custom page sizes using Aspose.HTML. +### [How to Convert HTML File to PDF in C# – Step‑by‑Step Guide](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Learn how to convert an HTML file to PDF in C# using Aspose.HTML. Follow the step‑by‑step guide for high‑quality PDF output. ### [Converting HTML to MHTML](./convert-html-to-mhtml/) Effortlessly convert HTML to MHTML using Aspose.HTML for Java. Follow our step-by-step guide for efficient HTML-to-MHTML conversion. ### [Converting HTML to XPS](./convert-html-to-xps/) diff --git a/html/english/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/english/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..c9ab102b6a --- /dev/null +++ b/html/english/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,318 @@ +--- +category: general +date: 2026-07-18 +description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch conversion, + PDF options, and generate PDF from HTML document with clear code examples. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: en +lastmod: 2026-07-18 +og_description: How to convert HTML file to PDF in C# with Aspose.PDF. Follow this + guide to batch convert HTML files to PDF and generate PDF from HTML document effortlessly. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: How to Convert HTML File to PDF in C# – Complete Programming Walkthrough +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide +url: /java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Convert HTML File to PDF in C# – Complete Programming Walkthrough + +Ever wondered **how to convert HTML file to PDF** using C# without pulling your hair out? You're not the only one. Whether you're building a report generator, an invoice engine, or a static‑site exporter, turning HTML into a polished PDF is a frequent requirement. + +In this tutorial we'll walk through a ready‑to‑run solution that shows **how to convert HTML file to PDF** with Aspose.PDF, how to **convert HTML to PDF C#** in a single call, and even how to **batch convert HTML files to PDF** for large‑scale scenarios. By the end you’ll also know how to **generate PDF from HTML document** with custom options like page size, margins, and image handling. + +## Prerequisites + +Before we dive in, make sure you have: + +* .NET 6.0 SDK or later (the code works on .NET Framework 4.6+ as well) +* Visual Studio 2022 (or any editor you prefer) +* An active NuGet license for **Aspose.PDF for .NET** – the free trial works for experimentation +* A folder containing one or more `.html` files you want to turn into PDFs + +Got everything? Great—let’s get started. + +## Step 1: Set Up the Project and Install Aspose.PDF + +First, create a new console app: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Now add the Aspose.PDF package: + +```bash +dotnet add package Aspose.PDF +``` + +The package brings in the `Converter` class we’ll use to **convert HTML to PDF C#** style. No extra DLLs, no native dependencies—just a clean NuGet reference. + +## Step 2: Write the Core Conversion Logic + +Open `Program.cs` and replace the boilerplate with the following code. Every line is commented so you can see exactly why it’s there. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Why This Works + +* **`Converter.Convert`** is the heart of **how to convert HTML file to PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes a PDF in a single call. +* The loop implements **batch convert HTML files to PDF** without you writing extra boilerplate. +* By adjusting `PdfSaveOptions` you control the final look, which is essential when you need to **generate PDF from HTML document** that matches corporate branding. + +## Step 3: Test the Converter with a Simple HTML Sample + +Create a subfolder called `html` next to `Program.cs` and drop a tiny file named `sample.html` inside: + +```html + + + + Demo PDF + + + +

Hello, PDF World!

+

This PDF was generated from an HTML file using C#.

+ Visit Example.com + + +``` + +Run the program: + +```bash +dotnet run +``` + +You should see a green check‑mark line confirming the conversion, and a `sample.pdf` file will appear in the `pdf` folder. Open it—notice the heading color, the link, and the margins you set in `PdfSaveOptions`. That’s the proof that you’ve successfully mastered **how to convert HTML file to PDF**. + +## Step 4: Advanced Options for Real‑World Scenarios + +### 4.1 Handling External Resources (CSS, Images) + +If your HTML references external CSS files or images, make sure the paths are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them automatically, but you can also set a base URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Controlling Font Embedding + +Sometimes corporate PDFs require specific fonts. You can embed a TrueType font like this: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Place your `.ttf` files in the `fonts` folder and reference them in your HTML via `@font-face`. + +### 4.3 Generating a Single PDF from Multiple HTML Files + +If you need to **generate PDF from HTML document** that spans several pages (e.g., a multi‑chapter report), you can concatenate PDFs after conversion: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Error Handling and Logging + +Production code should guard against malformed HTML or missing resources. Wrap the conversion in a try‑catch block and log the exception: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Step 5: Verify the Output Programmatically (Optional) + +If you want to ensure every generated PDF contains a specific keyword or page count, Aspose.PDF lets you inspect PDFs after creation: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +That tiny snippet can become part of an automated test suite for your **convert HTML to PDF C#** pipeline. + +## Common Pitfalls and Pro Tips + +| Pitfall | Why it Happens | Fix | +|---------|----------------|-----| +| Relative image paths break | Converter runs from a different working directory | Set `pdfOptions.BaseUri` to the HTML folder | +| Fonts appear as substitutes | Font not embedded or missing on the server | Use `FontEmbeddingMode.Always` and supply the font files | +| Large HTML files cause memory spikes | Whole document is loaded into memory | Process files one‑by‑one (as shown) or increase `MemoryLimit` in options | +| Links become plain text | `PreserveHyperlinks` disabled | Ensure `PreserveHyperlinks = true` in `PdfSaveOptions` | + +## Full Working Example (All Code in One Place) + +For convenience, here’s the entire program you can copy‑paste into `Program.cs`. It includes all the optional tweaks discussed above, but you can comment out sections you don’t need. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Convert HTML to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convert SVG to PDF in .NET with Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/og-image.png b/html/english/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..482932446bc701cc35032f844093c36ed7fe5706 GIT binary patch literal 48456 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
    p5Ygy(&=gxa5LR6ZOhA#boUbojuP?qeyC$vC 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 +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment convertir un fichier HTML en PDF avec C# – Guide complet de programmation + +Vous êtes-vous déjà demandé **comment convertir un fichier HTML en PDF** avec C# sans perdre patience ? Vous n'êtes pas seul. Que vous construisiez un générateur de rapports, un moteur de facturation ou un exportateur de site statique, transformer du HTML en PDF soigné est une exigence fréquente. + +Dans ce tutoriel, nous parcourrons une solution prête à l’emploi qui montre **comment convertir un fichier HTML en PDF** avec Aspose.PDF, comment **convertir HTML en PDF C#** en un seul appel, et même comment **convertir en lot des fichiers HTML en PDF** pour des scénarios à grande échelle. À la fin, vous saurez également **générer un PDF à partir d’un document HTML** avec des options personnalisées comme la taille de page, les marges et la gestion des images. + +## Prérequis + +Avant de commencer, assurez‑vous d’avoir : + +* .NET 6.0 SDK ou version ultérieure (le code fonctionne également avec .NET Framework 4.6+) +* Visual Studio 2022 (ou tout autre éditeur de votre choix) +* Une licence NuGet active pour **Aspose.PDF for .NET** – l’essai gratuit suffit pour l’expérimentation +* Un dossier contenant un ou plusieurs fichiers `.html` que vous souhaitez transformer en PDF + +Tout est‑t‑il prêt ? Super—c’est parti. + +## Étape 1 : Créer le projet et installer Aspose.PDF + +Tout d’abord, créez une nouvelle application console : + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Installez ensuite le package Aspose.PDF : + +```bash +dotnet add package Aspose.PDF +``` + +Le package apporte la classe `Converter` que nous utiliserons pour le style **convert HTML to PDF C#**. Aucun DLL supplémentaire, aucune dépendance native—juste une référence NuGet propre. + +## Étape 2 : Écrire la logique principale de conversion + +Ouvrez `Program.cs` et remplacez le code de base par celui‑ci. Chaque ligne est commentée afin que vous puissiez comprendre exactement pourquoi elle est là. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Pourquoi cela fonctionne + +* **`Converter.Convert`** est le cœur de **how to convert HTML file to PDF** en C#. Il lit le HTML source, applique les `PdfSaveOptions` et écrit le PDF en un seul appel. +* La boucle implémente **batch convert HTML files to PDF** sans que vous ayez à écrire du code supplémentaire. +* En ajustant `PdfSaveOptions`, vous contrôlez l’aspect final, ce qui est essentiel lorsque vous devez **generate PDF from HTML document** conforme à l’identité visuelle de votre entreprise. + +## Étape 3 : Tester le convertisseur avec un exemple HTML simple + +Créez un sous‑dossier nommé `html` à côté de `Program.cs` et déposez-y un petit fichier nommé `sample.html` : + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    +
    Visit Example.com + + +``` + +Exécutez le programme : + +```bash +dotnet run +``` + +Vous devriez voir une ligne avec une coche verte confirmant la conversion, et un fichier `sample.pdf` apparaîtra dans le dossier `pdf`. Ouvrez‑le — notez la couleur du titre, le lien et les marges que vous avez définies dans `PdfSaveOptions`. C’est la preuve que vous avez maîtrisé **how to convert HTML file to PDF**. + +## Étape 4 : Options avancées pour les scénarios réels + +### 4.1 Gestion des ressources externes (CSS, images) + +Si votre HTML fait référence à des fichiers CSS ou à des images externes, assurez‑vous que les chemins sont absolus ou relatifs au répertoire du fichier HTML. Aspose.PDF les résout automatiquement, mais vous pouvez également définir une URL de base : + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Contrôle de l’incorporation des polices + +Parfois, les PDF d’entreprise exigent des polices spécifiques. Vous pouvez incorporer une police TrueType ainsi : + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Placez vos fichiers `.ttf` dans le dossier `fonts` et référencez‑les dans votre HTML via `@font-face`. + +### 4.3 Générer un PDF unique à partir de plusieurs fichiers HTML + +Si vous devez **generate PDF from HTML document** qui s’étend sur plusieurs pages (par ex. un rapport multi‑chapitres), vous pouvez concaténer les PDF après conversion : + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Gestion des erreurs et journalisation + +Le code de production doit se protéger contre le HTML mal formé ou les ressources manquantes. Enveloppez la conversion dans un bloc try‑catch et consignez l’exception : + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Étape 5 : Vérifier la sortie programmatiquement (optionnel) + +Si vous voulez vous assurer que chaque PDF généré contient un mot‑clé spécifique ou un nombre de pages donné, Aspose.PDF vous permet d’inspecter les PDF après création : + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Ce petit extrait peut devenir partie d’une suite de tests automatisés pour votre pipeline **convert HTML to PDF C#**. + +## Pièges courants et astuces professionnelles + +| Écueil | Pourquoi cela se produit | Solution | +|--------|--------------------------|----------| +| Les chemins d’image relatifs se cassent | Le convertisseur s’exécute depuis un répertoire de travail différent | Définir `pdfOptions.BaseUri` vers le dossier HTML | +| Les polices apparaissent comme des substituts | Police non incorporée ou absente sur le serveur | Utiliser `FontEmbeddingMode.Always` et fournir les fichiers de police | +| Les gros fichiers HTML provoquent des pics de mémoire | Le document entier est chargé en mémoire | Traiter les fichiers un par un (comme montré) ou augmenter `MemoryLimit` dans les options | +| Les liens deviennent du texte brut | `PreserveHyperlinks` désactivé | S’assurer que `PreserveHyperlinks = true` dans `PdfSaveOptions` | + +## Exemple complet fonctionnel (tout le code en un seul endroit) + +Pour plus de commodité, voici le programme complet que vous pouvez copier‑coller dans `Program.cs`. Il inclut toutes les options supplémentaires évoquées ci‑dessus, mais vous pouvez commenter les sections dont vous n’avez pas besoin. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Que devriez‑vous apprendre ensuite ? + + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques présentées dans ce guide. Chaque ressource comprend des exemples de code complets avec des explications pas à pas pour vous aider à maîtriser des fonctionnalités API supplémentaires et explorer des approches d’implémentation alternatives dans vos propres projets. + +- [Convertir HTML en PDF avec .NET et Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convertir EPUB en PDF avec .NET et Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convertir SVG en PDF avec .NET et Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/conversion-html-to-other-formats/_index.md b/html/german/java/conversion-html-to-other-formats/_index.md index 5645e79f7f..1ea342fe2b 100644 --- a/html/german/java/conversion-html-to-other-formats/_index.md +++ b/html/german/java/conversion-html-to-other-formats/_index.md @@ -107,6 +107,9 @@ Konvertieren Sie SVG in Java mit Aspose.HTML zu PDF. Eine nahtlose Lösung für ### [Konvertierung von SVG zu XPS](./convert-svg-to-xps/) Erfahren Sie, wie Sie SVG mit Aspose.HTML für Java zu XPS konvertieren. Einfache, Schritt‑für‑Schritt‑Anleitung für reibungslose Konvertierungen. +### [Wie man HTML‑Datei in PDF in C# konvertiert – Schritt‑für‑Schritt‑Anleitung](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Erfahren Sie, wie Sie HTML‑Dateien in C# mit Aspose.HTML zu PDF konvertieren. Eine klare Schritt‑für‑Schritt‑Anleitung. + ## Häufig gestellte Fragen **Q: Kann ich Aspose.HTML für Java in einer kommerziellen Anwendung verwenden?** diff --git a/html/german/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/german/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..cfc72b76af --- /dev/null +++ b/html/german/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: Wie man eine HTML‑Datei in C# mit Aspose.PDF in PDF konvertiert. Erfahren + Sie mehr über Batch‑Konvertierung, PDF‑Optionen und das Erzeugen von PDFs aus HTML‑Dokumenten + mit klaren Codebeispielen. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: de +lastmod: 2026-07-18 +og_description: Wie man HTML-Dateien in C# mit Aspose.PDF in PDF konvertiert. Folgen + Sie dieser Anleitung, um HTML-Dateien stapelweise in PDF zu konvertieren und mühelos + PDFs aus HTML-Dokumenten zu erstellen. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Wie man eine HTML-Datei in C# in PDF konvertiert – Vollständige Programmieranleitung +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Wie man eine HTML‑Datei in C# in PDF konvertiert – Schritt‑für‑Schritt‑Anleitung +url: /de/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man HTML-Datei in PDF in C# konvertiert – Vollständige Programmier-Anleitung + +Haben Sie sich jemals gefragt, **wie man HTML-Datei in PDF** mit C# konvertiert, ohne sich die Haare zu raufen? Sie sind nicht der Einzige. Egal, ob Sie einen Berichtsgenerator, eine Rechnungs‑Engine oder einen Exporter für statische Websites bauen, HTML in ein professionelles PDF zu verwandeln, ist eine häufige Anforderung. + +In diesem Tutorial gehen wir eine sofort einsatzbereite Lösung durch, die zeigt, **wie man HTML-Datei in PDF** mit Aspose.PDF konvertiert, wie man **HTML zu PDF C#** in einem einzigen Aufruf konvertiert und sogar, wie man **HTML-Dateien stapelweise in PDF** für groß angelegte Szenarien konvertiert. Am Ende wissen Sie außerdem, wie man **PDF aus HTML‑Dokument** mit benutzerdefinierten Optionen wie Seitengröße, Rändern und Bildverarbeitung erzeugt. + +## Voraussetzungen + +* .NET 6.0 SDK oder neuer (der Code funktioniert auch mit .NET Framework 4.6+) +* Visual Studio 2022 (oder ein beliebiger Editor Ihrer Wahl) +* Eine aktive NuGet-Lizenz für **Aspose.PDF for .NET** – die kostenlose Testversion funktioniert für Experimente +* Ein Ordner, der eine oder mehrere `.html`-Dateien enthält, die Sie in PDFs umwandeln möchten + +Alles bereit? Großartig – lassen Sie uns beginnen. + +## Schritt 1: Projekt einrichten und Aspose.PDF installieren + +Zuerst erstellen Sie eine neue Konsolenanwendung: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Fügen Sie nun das Aspose.PDF-Paket hinzu: + +```bash +dotnet add package Aspose.PDF +``` + +Das Paket stellt die `Converter`-Klasse bereit, die wir verwenden, um **HTML zu PDF C#** zu konvertieren. Keine zusätzlichen DLLs, keine nativen Abhängigkeiten – nur eine saubere NuGet-Referenz. + +## Schritt 2: Kernkonvertierungslogik schreiben + +Öffnen Sie `Program.cs` und ersetzen Sie das Grundgerüst durch den folgenden Code. Jede Zeile ist kommentiert, damit Sie genau sehen, warum sie dort steht. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Warum das funktioniert + +* **`Converter.Convert`** ist das Herzstück von **wie man HTML-Datei in PDF** in C#. Es liest das Quell‑HTML, wendet die `PdfSaveOptions` an und schreibt ein PDF in einem einzigen Aufruf. +* Die Schleife implementiert **HTML-Dateien stapelweise in PDF** konvertieren, ohne dass Sie zusätzlichen Boilerplate‑Code schreiben. +* Durch Anpassen von `PdfSaveOptions` steuern Sie das endgültige Aussehen, was entscheidend ist, wenn Sie **PDF aus HTML‑Dokument** erzeugen müssen, das dem Corporate Branding entspricht. + +## Schritt 3: Den Konverter mit einem einfachen HTML-Beispiel testen + +Erstellen Sie einen Unterordner namens `html` neben `Program.cs` und legen Sie darin eine kleine Datei namens `sample.html` ab: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Führen Sie das Programm aus: + +```bash +dotnet run +``` + +Sie sollten eine grüne Häkchen‑Zeile sehen, die die Konvertierung bestätigt, und eine `sample.pdf`‑Datei wird im `pdf`‑Ordner erscheinen. Öffnen Sie sie – achten Sie auf die Überschriftenfarbe, den Link und die in `PdfSaveOptions` festgelegten Ränder. Das ist der Beweis, dass Sie **wie man HTML-Datei in PDF** erfolgreich gemeistert haben. + +## Schritt 4: Erweiterte Optionen für reale Szenarien + +### 4.1 Umgang mit externen Ressourcen (CSS, Bilder) + +Wenn Ihr HTML externe CSS‑Dateien oder Bilder referenziert, stellen Sie sicher, dass die Pfade absolut oder relativ zum Verzeichnis der HTML‑Datei sind. Aspose.PDF löst sie automatisch auf, Sie können jedoch auch eine Basis‑URL festlegen: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Steuerung der Schriftart‑Einbettung + +Manchmal erfordern Unternehmens‑PDFs bestimmte Schriftarten. Sie können eine TrueType‑Schriftart wie folgt einbetten: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Legen Sie Ihre `.ttf`‑Dateien in den `fonts`‑Ordner und referenzieren Sie sie in Ihrem HTML über `@font-face`. + +### 4.3 Erzeugen eines einzigen PDFs aus mehreren HTML-Dateien + +Wenn Sie **PDF aus HTML‑Dokument** erzeugen müssen, das sich über mehrere Seiten erstreckt (z. B. ein mehrkapiteliger Bericht), können Sie PDFs nach der Konvertierung zusammenfügen: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Fehlerbehandlung und Protokollierung + +Produktionscode sollte gegen fehlerhaftes HTML oder fehlende Ressourcen schützen. Wickeln Sie die Konvertierung in einen try‑catch‑Block und protokollieren Sie die Ausnahme: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Schritt 5: Ausgabe programmgesteuert überprüfen (optional) + +Wenn Sie sicherstellen möchten, dass jedes erzeugte PDF ein bestimmtes Schlüsselwort oder eine bestimmte Seitenzahl enthält, ermöglicht Ihnen Aspose.PDF, PDFs nach der Erstellung zu inspizieren: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Dieses kleine Snippet kann Teil einer automatisierten Testsuite für Ihre **HTML zu PDF C#**‑Pipeline werden. + +## Häufige Fallstricke und Profi‑Tipps + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| Relative Bildpfade brechen | Der Konverter läuft aus einem anderen Arbeitsverzeichnis | Setzen Sie `pdfOptions.BaseUri` auf den HTML‑Ordner | +| Schriftarten erscheinen als Ersatz | Schriftart nicht eingebettet oder auf dem Server fehlt | Verwenden Sie `FontEmbeddingMode.Always` und stellen Sie die Schriftdateien bereit | +| Große HTML‑Dateien verursachen Speicherspitzen | Das gesamte Dokument wird in den Speicher geladen | Verarbeiten Sie Dateien einzeln (wie gezeigt) oder erhöhen Sie `MemoryLimit` in den Optionen | +| Links werden zu Klartext | `PreserveHyperlinks` deaktiviert | Stellen Sie sicher, dass `PreserveHyperlinks = true` in `PdfSaveOptions` gesetzt ist | + +## Vollständiges funktionierendes Beispiel (Alle Codes an einem Ort) + +Zur Vereinfachung finden Sie hier das gesamte Programm, das Sie in `Program.cs` kopieren und einfügen können. Es enthält alle oben besprochenen optionalen Anpassungen, Sie können jedoch Abschnitte, die Sie nicht benötigen, auskommentieren. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Codebeispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, zusätzliche API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [HTML in PDF in .NET mit Aspose.HTML konvertieren](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [EPUB in PDF in .NET mit Aspose.HTML konvertieren](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [SVG in PDF in .NET mit Aspose.HTML konvertieren](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/conversion-html-to-other-formats/_index.md b/html/greek/java/conversion-html-to-other-formats/_index.md index f8b92d079f..234828ee67 100644 --- a/html/greek/java/conversion-html-to-other-formats/_index.md +++ b/html/greek/java/conversion-html-to-other-formats/_index.md @@ -99,6 +99,8 @@ weight: 25 Μετατρέψτε SVG σε PDF σε Java με το Aspose.HTML. Μία απρόσκοπτη λύση για μετατροπή εγγράφων υψηλής ποιότητας. ### [Μετατροπή SVG σε XPS](./convert-svg-to-xps/) Μάθετε πώς να μετατρέψετε SVG σε XPS με το Aspose.HTML for Java. Απλός, βήμα‑βήμα οδηγός για απρόσκοπτες μετατροπές. +### [Πώς να μετατρέψετε αρχείο HTML σε PDF σε C# – Οδηγός βήμα‑βήμα](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Μάθετε πώς να μετατρέψετε αρχείο HTML σε PDF σε C# με το Aspose.HTML, ακολουθώντας έναν απλό οδηγό βήμα‑βήμα. ## Συχνές Ερωτήσεις diff --git a/html/greek/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/greek/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..88a0a0b1d0 --- /dev/null +++ b/html/greek/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,315 @@ +--- +category: general +date: 2026-07-18 +description: Πώς να μετατρέψετε αρχείο HTML σε PDF σε C# χρησιμοποιώντας το Aspose.PDF. + Μάθετε τη μαζική μετατροπή, τις επιλογές PDF και δημιουργήστε PDF από έγγραφο HTML + με σαφή παραδείγματα κώδικα. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: el +lastmod: 2026-07-18 +og_description: Πώς να μετατρέψετε αρχείο HTML σε PDF σε C# με το Aspose.PDF. Ακολουθήστε + αυτόν τον οδηγό για να μετατρέψετε μαζικά αρχεία HTML σε PDF και να δημιουργήσετε + PDF από έγγραφο HTML χωρίς κόπο. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Πώς να μετατρέψετε αρχείο HTML σε PDF με C# – Πλήρης οδηγός προγραμματισμού +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Πώς να μετατρέψετε αρχείο HTML σε PDF με C# – Οδηγός βήμα‑προς‑βήμα +url: /el/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Μετατρέψετε Αρχείο HTML σε PDF με C# – Πλήρης Οδηγός Προγραμματισμού + +Έχετε αναρωτηθεί ποτέ **πώς να μετατρέψετε αρχείο HTML σε PDF** χρησιμοποιώντας C# χωρίς να τσακίζετε τα μαλλιά σας; Δεν είστε ο μόνος. Είτε δημιουργείτε έναν γεννήτρια αναφορών, μια μηχανή τιμολογίων, ή έναν εξαγωγέα στατικού ιστότοπου, η μετατροπή HTML σε ένα επαγγελματικό PDF είναι συχνή απαίτηση. + +Σε αυτό το tutorial θα περάσουμε βήμα-βήμα από μια έτοιμη προς εκτέλεση λύση που δείχνει **πώς να μετατρέψετε αρχείο HTML σε PDF** με το Aspose.PDF, πώς να **μετατρέψετε HTML σε PDF C#** με μία κλήση, και ακόμη πώς να **μετατρέψετε μαζικά αρχεία HTML σε PDF** για μεγάλης κλίμακας σενάρια. Στο τέλος θα γνωρίζετε επίσης πώς να **δημιουργήσετε PDF από έγγραφο HTML** με προσαρμοσμένες επιλογές όπως μέγεθος σελίδας, περιθώρια και διαχείριση εικόνων. + +## Προαπαιτούμενα + +* .NET 6.0 SDK ή νεότερο (ο κώδικας λειτουργεί επίσης σε .NET Framework 4.6+) +* Visual Studio 2022 (ή οποιονδήποτε επεξεργαστή προτιμάτε) +* Ένα ενεργό άδεια NuGet για **Aspose.PDF for .NET** – η δωρεάν δοκιμή λειτουργεί για πειραματισμό +* Ένας φάκελος που περιέχει ένα ή περισσότερα αρχεία `.html` που θέλετε να μετατρέψετε σε PDF + +Τα έχετε όλα; Τέλεια—ας ξεκινήσουμε. + +## Βήμα 1: Ρύθμιση του Έργου και Εγκατάσταση του Aspose.PDF + +Πρώτα, δημιουργήστε μια νέα εφαρμογή κονσόλας: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Τώρα προσθέστε το πακέτο Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +Το πακέτο φέρνει την κλάση `Converter` που θα χρησιμοποιήσουμε για **convert HTML to PDF C#** στυλ. Χωρίς επιπλέον DLLs, χωρίς εγγενείς εξαρτήσεις—απλώς μια καθαρή αναφορά NuGet. + +## Βήμα 2: Γράψτε τη Βασική Λογική Μετατροπής + +Ανοίξτε το `Program.cs` και αντικαταστήστε το πρότυπο κώδικα με τον παρακάτω. Κάθε γραμμή είναι σχολιασμένη ώστε να βλέπετε ακριβώς γιατί υπάρχει. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Γιατί Αυτό Λειτουργεί + +* **`Converter.Convert`** είναι η καρδιά του **how to convert HTML file to PDF** σε C#. Διαβάζει το πηγαίο HTML, εφαρμόζει τις `PdfSaveOptions` και γράφει ένα PDF με μία κλήση. +* Ο βρόχος υλοποιεί **batch convert HTML files to PDF** χωρίς να γράφετε επιπλέον πρότυπο κώδικα. +* Με την προσαρμογή των `PdfSaveOptions` ελέγχετε την τελική εμφάνιση, κάτι που είναι απαραίτητο όταν χρειάζεται να **generate PDF from HTML document** που ταιριάζει στην εταιρική ταυτότητα. + +## Βήμα 3: Δοκιμάστε τον Μετατροπέα με ένα Απλό Δείγμα HTML + +Δημιουργήστε έναν υποφάκελο με όνομα `html` δίπλα στο `Program.cs` και τοποθετήστε μέσα ένα μικρό αρχείο με όνομα `sample.html`: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Εκτελέστε το πρόγραμμα: + +```bash +dotnet run +``` + +Θα πρέπει να δείτε μια πράσινη γραμμή με σημάδι ελέγχου που επιβεβαιώνει τη μετατροπή, και ένα αρχείο `sample.pdf` θα εμφανιστεί στον φάκελο `pdf`. Ανοίξτε το—παρατηρήστε το χρώμα της επικεφαλίδας, το σύνδεσμο και τα περιθώρια που ορίσατε στις `PdfSaveOptions`. Αυτό είναι η απόδειξη ότι έχετε κατακτήσει με επιτυχία **how to convert HTML file to PDF**. + +## Βήμα 4: Προχωρημένες Επιλογές για Πραγματικά Σενάρια + +### 4.1 Διαχείριση Εξωτερικών Πόρων (CSS, Εικόνες) + +Αν το HTML σας αναφέρει εξωτερικά αρχεία CSS ή εικόνες, βεβαιωθείτε ότι οι διαδρομές είναι απόλυτες ή σχετικές με τον φάκελο του αρχείου HTML. Το Aspose.PDF τις επιλύει αυτόματα, αλλά μπορείτε επίσης να ορίσετε μια βασική URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Έλεγχος Ενσωμάτωσης Γραμματοσειρών + +Μερικές φορές τα εταιρικά PDF απαιτούν συγκεκριμένες γραμματοσειρές. Μπορείτε να ενσωματώσετε μια γραμματοσειρά TrueType ως εξής: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Τοποθετήστε τα αρχεία `.ttf` σας στον φάκελο `fonts` και αναφερθείτε σε αυτά στο HTML σας μέσω `@font-face`. + +### 4.3 Δημιουργία Ενός PDF από Πολλαπλά Αρχεία HTML + +Αν χρειάζεται να **generate PDF from HTML document** που εκτείνεται σε πολλές σελίδες (π.χ., μια αναφορά πολλαπλών κεφαλαίων), μπορείτε να συνενώσετε τα PDF μετά τη μετατροπή: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Διαχείριση Σφαλμάτων και Καταγραφή + +Ο κώδικας παραγωγής πρέπει να προστατεύεται από κακοδιατυπωμένο HTML ή ελλιπείς πόρους. Τυλίξτε τη μετατροπή σε μπλοκ try‑catch και καταγράψτε την εξαίρεση: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Βήμα 5: Επαληθεύστε το Αποτέλεσμα Προγραμματιστικά (Προαιρετικό) + +Αν θέλετε να διασφαλίσετε ότι κάθε παραγόμενο PDF περιέχει μια συγκεκριμένη λέξη-κλειδί ή αριθμό σελίδων, το Aspose.PDF σας επιτρέπει να ελέγξετε τα PDF μετά τη δημιουργία: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +## Συνηθισμένα Πιθανά Σφάλματα και Επαγγελματικές Συμβουλές + +| Πιθανό Σφάλμα | Γιατί Συμβαίνει | Διόρθωση | +|--------------|----------------|----------| +| Σπάζουν σχετικές διαδρομές εικόνων | Ο Converter εκτελείται από διαφορετικό τρέχον φάκελο | Ορίστε `pdfOptions.BaseUri` στον φάκελο HTML | +| Οι γραμματοσειρές εμφανίζονται ως υποκατάστατα | Η γραμματοσειρά δεν είναι ενσωματωμένη ή λείπει στον διακομιστή | Χρησιμοποιήστε `FontEmbeddingMode.Always` και παρέχετε τα αρχεία γραμματοσειράς | +| Μεγάλα αρχεία HTML προκαλούν αυξήσεις μνήμης | Ολόκληρο το έγγραφο φορτώνεται στη μνήμη | Επεξεργαστείτε τα αρχεία ένα‑ένα (όπως φαίνεται) ή αυξήστε το `MemoryLimit` στις επιλογές | +| Οι σύνδεσμοι γίνονται απλό κείμενο | `PreserveHyperlinks` απενεργοποιημένο | Βεβαιωθείτε ότι `PreserveHyperlinks = true` στις `PdfSaveOptions` | + +## Πλήρες Παράδειγμα Εργασίας (Όλος ο Κώδικας σε Ένα Σημείο) + +Για ευκολία, εδώ είναι ολόκληρο το πρόγραμμα που μπορείτε να αντιγράψετε‑επικολλήσετε στο `Program.cs`. Περιλαμβάνει όλες τις προαιρετικές ρυθμίσεις που συζητήθηκαν παραπάνω, αλλά μπορείτε να σχολιάσετε τμήματα που δεν χρειάζεστε. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Τι Θα Πρέπει Να Μάθετε Στη Σύντομη Επόμενη; + +Τα παρακάτω tutorials καλύπτουν στενά συναφή θέματα που βασίζονται στις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσει να κυριαρχήσετε επιπλέον δυνατότητες API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Μετατροπή HTML σε PDF σε .NET με Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Μετατροπή EPUB σε PDF σε .NET με Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Μετατροπή SVG σε PDF σε .NET με Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/conversion-html-to-other-formats/_index.md b/html/hindi/java/conversion-html-to-other-formats/_index.md index 1c90698de4..15c6dbed20 100644 --- a/html/hindi/java/conversion-html-to-other-formats/_index.md +++ b/html/hindi/java/conversion-html-to-other-formats/_index.md @@ -106,6 +106,9 @@ Aspose.HTML for Java के साथ SVG को XPS में कैसे ब ### [Java में HTML को PDF में बदलें – पेज आकार सेटिंग्स के साथ चरण‑दर‑चरण गाइड](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Aspose.HTML for Java के साथ पेज आकार सेटिंग्स को नियंत्रित करते हुए HTML को PDF में बदलने का विस्तृत गाइड। +### [C# में HTML फ़ाइल को PDF में बदलने का चरण‑दर‑चरण गाइड](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Aspose.HTML के साथ C# में HTML फ़ाइल को PDF में बदलें। आसान चरण‑दर‑चरण गाइड। + ## अक्सर पूछे जाने वाले प्रश्न **Q: क्या मैं Aspose.HTML for Java को व्यावसायिक एप्लिकेशन में उपयोग कर सकता हूँ?** diff --git a/html/hindi/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/hindi/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..6fa6282204 --- /dev/null +++ b/html/hindi/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,315 @@ +--- +category: general +date: 2026-07-18 +description: C# में Aspose.PDF का उपयोग करके HTML फ़ाइल को PDF में कैसे परिवर्तित + करें। बैच रूपांतरण, PDF विकल्प सीखें, और स्पष्ट कोड उदाहरणों के साथ HTML दस्तावेज़ + से PDF उत्पन्न करें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: hi +lastmod: 2026-07-18 +og_description: C# में Aspose.PDF के साथ HTML फ़ाइल को PDF में कैसे बदलें। इस गाइड + का पालन करके आप HTML फ़ाइलों को बैच में PDF में बदल सकते हैं और HTML दस्तावेज़ से + आसानी से PDF जेनरेट कर सकते हैं। +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: C# में HTML फ़ाइल को PDF में कैसे परिवर्तित करें – पूर्ण प्रोग्रामिंग मार्गदर्शिका +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: C# में HTML फ़ाइल को PDF में कैसे बदलें – चरण‑दर‑चरण गाइड +url: /hi/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में HTML फ़ाइल को PDF में कैसे बदलें – पूर्ण प्रोग्रामिंग मार्गदर्शिका + +क्या आप कभी सोचते थे कि **HTML फ़ाइल को PDF में कैसे बदलें** C# का उपयोग करके बिना सिरदर्द के? आप अकेले नहीं हैं। चाहे आप रिपोर्ट जेनरेटर, इनवॉइस इंजन, या स्थैतिक‑साइट एक्सपोर्टर बना रहे हों, HTML को एक पॉलिश्ड PDF में बदलना अक्सर आवश्यक होता है। + +इस ट्यूटोरियल में हम एक तैयार‑से‑चलाने‑योग्य समाधान के माध्यम से चलेंगे जो दिखाता है **HTML फ़ाइल को PDF में कैसे बदलें** Aspose.PDF के साथ, **HTML को PDF C#** में एक ही कॉल में कैसे बदलें, और बड़े‑पैमाने पर **HTML फ़ाइलों को PDF में बैच रूप में बदलें**। अंत तक आप यह भी जानेंगे कि **HTML दस्तावेज़ से PDF कैसे जनरेट करें** कस्टम विकल्पों जैसे पेज साइज, मार्जिन, और इमेज हैंडलिंग के साथ। + +## पूर्वापेक्षाएँ + +* .NET 6.0 SDK या बाद का (कोड .NET Framework 4.6+ पर भी काम करता है) +* Visual Studio 2022 (या कोई भी एडिटर जो आप पसंद करते हैं) +* **Aspose.PDF for .NET** के लिए एक सक्रिय NuGet लाइसेंस – फ्री ट्रायल प्रयोग के लिए काम करता है +* एक फ़ोल्डर जिसमें एक या अधिक `.html` फ़ाइलें हों जिन्हें आप PDF में बदलना चाहते हैं + +सब कुछ तैयार है? बढ़िया—आइए शुरू करते हैं। + +## चरण 1: प्रोजेक्ट सेट अप करें और Aspose.PDF इंस्टॉल करें + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +अब Aspose.PDF पैकेज जोड़ें: + +```bash +dotnet add package Aspose.PDF +``` + +यह पैकेज `Converter` क्लास लाता है जिसका हम **HTML को PDF C#** शैली में बदलने के लिए उपयोग करेंगे। कोई अतिरिक्त DLLs नहीं, कोई नेटिव डिपेंडेंसी नहीं—सिर्फ एक साफ़ NuGet रेफ़रेंस। + +## चरण 2: कोर कन्वर्ज़न लॉजिक लिखें + +`Program.cs` खोलें और बायलरप्लेट को नीचे दिए गए कोड से बदलें। हर लाइन पर टिप्पणी है ताकि आप देख सकें कि वह क्यों है। + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### यह क्यों काम करता है + +* **`Converter.Convert`** C# में **HTML फ़ाइल को PDF में कैसे बदलें** का हृदय है। यह स्रोत HTML पढ़ता है, `PdfSaveOptions` लागू करता है, और एक ही कॉल में PDF लिखता है। +* लूप **HTML फ़ाइलों को PDF में बैच रूप में बदलें** को लागू करता है बिना अतिरिक्त बायलरप्लेट लिखे। +* `PdfSaveOptions` को समायोजित करके आप अंतिम रूप नियंत्रित करते हैं, जो तब आवश्यक है जब आपको **HTML दस्तावेज़ से PDF जनरेट करना** हो जो कॉरपोरेट ब्रांडिंग से मेल खाता हो। + +## चरण 3: एक साधारण HTML नमूने के साथ कन्वर्टर का परीक्षण करें + +`Program.cs` के बगल में `html` नाम का एक सबफ़ोल्डर बनाएं और उसमें `sample.html` नाम की एक छोटी फ़ाइल रखें: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +प्रोग्राम चलाएँ: + +```bash +dotnet run +``` + +आपको एक हरी चेक‑मार्क वाली लाइन दिखनी चाहिए जो कन्वर्ज़न की पुष्टि करती है, और `sample.pdf` फ़ाइल `pdf` फ़ोल्डर में दिखाई देगी। इसे खोलें—हेडिंग का रंग, लिंक, और `PdfSaveOptions` में सेट किए गए मार्जिन देखें। यह प्रमाण है कि आपने सफलतापूर्वक **HTML फ़ाइल को PDF में कैसे बदलें** में महारत हासिल कर ली है। + +## चरण 4: वास्तविक‑दुनिया परिदृश्यों के लिए उन्नत विकल्प + +### 4.1 बाहरी संसाधनों (CSS, इमेज) को संभालना + +यदि आपका HTML बाहरी CSS फ़ाइलों या इमेजों को संदर्भित करता है, तो सुनिश्चित करें कि पाथ एब्सोल्यूट हों या HTML फ़ाइल की डायरेक्टरी के सापेक्ष हों। Aspose.PDF उन्हें स्वचालित रूप से हल करता है, लेकिन आप बेस URL भी सेट कर सकते हैं: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 फ़ॉन्ट एम्बेडिंग को नियंत्रित करना + +कभी‑कभी कॉरपोरेट PDF को विशिष्ट फ़ॉन्ट की आवश्यकता होती है। आप इस तरह एक TrueType फ़ॉन्ट एम्बेड कर सकते हैं: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +अपने `.ttf` फ़ाइलों को `fonts` फ़ोल्डर में रखें और उन्हें अपने HTML में `@font-face` के माध्यम से संदर्भित करें। + +### 4.3 कई HTML फ़ाइलों से एकल PDF जनरेट करना + +यदि आपको कई पेजों (जैसे, मल्टी‑चैप्टर रिपोर्ट) में फैला **HTML दस्तावेज़ से PDF जनरेट करना** है, तो आप कन्वर्ज़न के बाद PDF को जोड़ सकते हैं: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 त्रुटि हैंडलिंग और लॉगिंग + +प्रोडक्शन कोड को खराब HTML या गायब संसाधनों से बचाना चाहिए। कन्वर्ज़न को try‑catch ब्लॉक में लपेटें और अपवाद को लॉग करें: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## चरण 5: प्रोग्रामेटिक रूप से आउटपुट की जाँच करें (वैकल्पिक) + +यदि आप सुनिश्चित करना चाहते हैं कि प्रत्येक जनरेट किया गया PDF एक विशिष्ट कीवर्ड या पेज काउंट रखता है, तो Aspose.PDF आपको निर्माण के बाद PDF का निरीक्षण करने देता है: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +यह छोटा स्निपेट आपके **HTML को PDF C# में बदलें** पाइपलाइन के लिए एक ऑटोमेटेड टेस्ट सूट का हिस्सा बन सकता है। + +## सामान्य समस्याएँ और प्रो टिप्स + +| समस्या | क्यों होता है | समाधान | +|---------|----------------|-----| +| रिलेटिव इमेज पाथ टूटते हैं | कन्वर्टर अलग कार्यशील डायरेक्टरी से चलता है | `pdfOptions.BaseUri` को HTML फ़ोल्डर पर सेट करें | +| फ़ॉन्ट प्रतिस्थापन के रूप में दिखते हैं | फ़ॉन्ट एम्बेड नहीं है या सर्वर पर उपलब्ध नहीं है | `FontEmbeddingMode.Always` का उपयोग करें और फ़ॉन्ट फ़ाइलें प्रदान करें | +| बड़ी HTML फ़ाइलें मेमोरी स्पाइक का कारण बनती हैं | पूरा दस्तावेज़ मेमोरी में लोड हो जाता है | फ़ाइलों को एक‑एक करके प्रोसेस करें (जैसा दिखाया गया) या विकल्पों में `MemoryLimit` बढ़ाएँ | +| लिंक साधारण टेक्स्ट बन जाते हैं | `PreserveHyperlinks` निष्क्रिय है | `PdfSaveOptions` में `PreserveHyperlinks = true` सुनिश्चित करें | + +## पूर्ण कार्यशील उदाहरण (सभी कोड एक जगह) + +सुविधा के लिए, यहाँ पूरा प्रोग्राम है जिसे आप `Program.cs` में कॉपी‑पेस्ट कर सकते हैं। इसमें ऊपर चर्चा किए गए सभी वैकल्पिक ट्यून शामिल हैं, लेकिन आप उन सेक्शन को कमेंट कर सकते हैं जिनकी आपको आवश्यकता नहीं है। + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## अब आप क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स निकट संबंधी विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं जो आपको अतिरिक्त API फीचर्स में महारत हासिल करने और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन एप्रोच को एक्सप्लोर करने में मदद करेंगे। + +- [Aspose.HTML के साथ .NET में HTML को PDF में बदलें](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Aspose.HTML के साथ .NET में EPUB को PDF में बदलें](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Aspose.HTML के साथ .NET में SVG को PDF में बदलें](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/conversion-html-to-other-formats/_index.md b/html/hongkong/java/conversion-html-to-other-formats/_index.md index bcd12f00f5..16c8bdfff7 100644 --- a/html/hongkong/java/conversion-html-to-other-formats/_index.md +++ b/html/hongkong/java/conversion-html-to-other-formats/_index.md @@ -97,6 +97,8 @@ Aspose.HTML for Java 簡化了 HTML‑to‑PDF 工作流程。請參考專屬教 使用 Aspose.HTML 在 Java 中將 SVG 轉為 PDF,提供高品質文件轉換的無縫解決方案。 ### [Converting SVG to XPS](./convert-svg-to-xps/) 學習如何使用 Aspose.HTML for Java 將 SVG 轉為 XPS,提供簡單、步驟式的無縫轉換指南。 +### [如何在 C# 中將 HTML 檔案轉換為 PDF – 逐步指南](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +了解如何使用 Aspose.HTML 在 C# 中將 HTML 檔案轉換為 PDF,提供完整的逐步說明。 ## 常見問題 diff --git a/html/hongkong/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/hongkong/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..bf5cb97e0a --- /dev/null +++ b/html/hongkong/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,315 @@ +--- +category: general +date: 2026-07-18 +description: 如何在 C# 中使用 Aspose.PDF 將 HTML 檔案轉換為 PDF。學習批次轉換、PDF 選項,並透過清晰的程式碼範例從 HTML + 文件產生 PDF。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: zh-hant +lastmod: 2026-07-18 +og_description: 如何使用 Aspose.PDF 在 C# 中將 HTML 檔案轉換為 PDF。遵循本指南,即可輕鬆批量將 HTML 檔案轉換為 PDF,並從 + HTML 文件生成 PDF。 +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: 如何在 C# 中將 HTML 檔案轉換為 PDF – 完整程式教學 +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: 如何在 C# 中將 HTML 檔案轉換為 PDF – 逐步指南 +url: /zh-hant/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中將 HTML 檔案轉換為 PDF – 完整程式教學 + +Ever wondered **如何將 HTML 檔案轉換為 PDF** using C# without pulling your hair out? You're not the only one. Whether you're building a report generator, an invoice engine, or a static‑site exporter, turning HTML into a polished PDF is a frequent requirement. + +In this tutorial we'll walk through a ready‑to‑run solution that shows **how to convert HTML file to PDF** with Aspose.PDF, how to **convert HTML to PDF C#** in a single call, and even how to **batch convert HTML files to PDF** for large‑scale scenarios. By the end you’ll also know how to **generate PDF from HTML document** with custom options like page size, margins, and image handling. + +## 前置條件 + +Before we dive in, make sure you have: + +* .NET 6.0 SDK or later (the code works on .NET Framework 4.6+ as well) +* Visual Studio 2022 (or any editor you prefer) +* An active NuGet license for **Aspose.PDF for .NET** – the free trial works for experimentation +* A folder containing one or more `.html` files you want to turn into PDFs + +Got everything? Great—let’s get started. + +## 步驟 1:建立專案並安裝 Aspose.PDF + +First, create a new console app: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Now add the Aspose.PDF package: + +```bash +dotnet add package Aspose.PDF +``` + +The package brings in the `Converter` class we’ll use to **convert HTML to PDF C#** style. No extra DLLs, no native dependencies—just a clean NuGet reference. + +## 步驟 2:撰寫核心轉換邏輯 + +Open `Program.cs` and replace the boilerplate with the following code. Every line is commented so you can see exactly why it’s there. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### 為什麼這樣做會有效 + +* **`Converter.Convert`** is the heart of **how to convert HTML file to PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes a PDF in a single call. +* The loop implements **batch convert HTML files to PDF** without you writing extra boilerplate. +* By adjusting `PdfSaveOptions` you control the final look, which is essential when you need to **generate PDF from HTML document** that matches corporate branding. + +## 步驟 3:使用簡易 HTML 範例測試轉換器 + +Create a subfolder called `html` next to `Program.cs` and drop a tiny file named `sample.html` inside: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Run the program: + +```bash +dotnet run +``` + +You should see a green check‑mark line confirming the conversion, and a `sample.pdf` file will appear in the `pdf` folder. Open it—notice the heading color, the link, and the margins you set in `PdfSaveOptions`. That’s the proof that you’ve successfully mastered **how to convert HTML file to PDF**. + +## 步驟 4:實務情境的進階選項 + +### 4.1 處理外部資源(CSS、圖片) + +If your HTML references external CSS files or images, make sure the paths are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them automatically, but you can also set a base URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 控制字型嵌入 + +Sometimes corporate PDFs require specific fonts. You can embed a TrueType font like this: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Place your `.ttf` files in the `fonts` folder and reference them in your HTML via `@font-face`. + +### 4.3 從多個 HTML 檔案產生單一 PDF + +If you need to **generate PDF from HTML document** that spans several pages (e.g., a multi‑chapter report), you can concatenate PDFs after conversion: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 錯誤處理與日誌記錄 + +Production code should guard against malformed HTML or missing resources. Wrap the conversion in a try‑catch block and log the exception: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## 步驟 5:以程式方式驗證輸出(可選) + +If you want to ensure every generated PDF contains a specific keyword or page count, Aspose.PDF lets you inspect PDFs after creation: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +## 常見陷阱與專業技巧 + +| 陷阱 | 為何會發生 | 解決方式 | +|---------|----------------|-----| +| 相對圖片路徑失效 | 轉換器在不同的工作目錄執行 | 設定 `pdfOptions.BaseUri` 為 HTML 資料夾 | +| 字型顯示為替代字型 | 字型未嵌入或伺服器上缺少字型 | 使用 `FontEmbeddingMode.Always` 並提供字型檔案 | +| 大型 HTML 檔案導致記憶體激增 | 整個文件一次載入記憶體 | 如範例所示逐一處理檔案,或在選項中提升 `MemoryLimit` | +| 連結變成純文字 | `PreserveHyperlinks` 被停用 | 確保在 `PdfSaveOptions` 中設定 `PreserveHyperlinks = true` | + +## 完整範例(所有程式碼一次呈現) + +For convenience, here’s the entire program you can copy‑paste into `Program.cs`. It includes all the optional tweaks discussed above, but you can comment out sections you don’t need. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## 接下來該學什麼? + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [在 .NET 中使用 Aspose.HTML 將 HTML 轉換為 PDF](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [在 .NET 中使用 Aspose.HTML 將 EPUB 轉換為 PDF](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [在 .NET 中使用 Aspose.HTML 將 SVG 轉換為 PDF](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/conversion-html-to-other-formats/_index.md b/html/hungarian/java/conversion-html-to-other-formats/_index.md index 1c7d52b932..fd5c0bbb90 100644 --- a/html/hungarian/java/conversion-html-to-other-formats/_index.md +++ b/html/hungarian/java/conversion-html-to-other-formats/_index.md @@ -83,6 +83,8 @@ Alakítsa át az SVG grafikákat XPS formátumba a készülékek közötti konzi ## Átalakítás - HTML más formátumokra oktatóanyagok ### [HTML átalakítása PDF-re](./convert-html-to-pdf/) Ismerje meg, hogyan konvertálhatja a HTML‑t PDF‑re Java‑ban az Aspose.HTML használatával. Készítsen magas minőségű PDF‑eket HTML tartalmából könnyedén. +### [HTML fájl PDF‑re konvertálása C#‑ban – Lépésről‑lépésre útmutató](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Ismerje meg, hogyan konvertálhatja a HTML‑t PDF‑re C#‑ban az Aspose.HTML segítségével. Készítsen magas minőségű PDF‑eket egyszerűen. ### [HTML átalakítása PDF-re – Lépésről‑lépésre útmutató oldalméret beállításokkal](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Ismerje meg, hogyan konvertálhatja a HTML‑t PDF‑re Java‑ban részletesen, oldalméret beállításokkal. ### [HTML átalakítása MHTML-re](./convert-html-to-mhtml/) diff --git a/html/hungarian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/hungarian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..12b7ffd7b3 --- /dev/null +++ b/html/hungarian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: Hogyan konvertáljunk HTML fájlt PDF-re C#-ban az Aspose.PDF használatával. + Ismerje meg a kötegelt konvertálást, a PDF beállításokat, és generáljon PDF-et HTML + dokumentumból világos kódrészletekkel. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: hu +lastmod: 2026-07-18 +og_description: Hogyan konvertáljunk HTML fájlt PDF-re C#-ban az Aspose.PDF segítségével. + Kövesse ezt az útmutatót, hogy kötegelt módon konvertálja az HTML fájlokat PDF-re, + és könnyedén generáljon PDF-et HTML dokumentumból. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Hogyan konvertáljunk HTML fájlt PDF-re C#-ban – Teljes programozási útmutató +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Hogyan konvertáljunk HTML fájlt PDF-re C#-ban – Lépésről‑lépésre útmutató +url: /hu/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan konvertáljunk HTML fájlt PDF-re C#‑ban – Teljes programozási útmutató + +Gondolkodtál már azon, **hogyan konvertáljunk HTML fájlt PDF-re** C#‑ban anélkül, hogy a hajadba nyúlnál? Nem vagy egyedül. Akár jelentéskészítő, számlagenerátor vagy statikus weboldal exportáló programot építesz, a HTML átalakítása egy kifinomult PDF‑re gyakori követelmény. + +Ebben a tutorialban egy azonnal futtatható megoldáson keresztül mutatjuk be, **hogyan konvertáljunk HTML fájlt PDF-re** az Aspose.PDF segítségével, hogyan **konvertáljunk HTML‑t PDF‑re C#‑ban** egyetlen hívással, és akár **kötegelt konvertálást HTML fájlokból PDF‑be** is megvalósíthatunk nagy léptékű forgatókönyvekhez. A végére megtanulod, hogyan **generálj PDF‑t HTML dokumentumból** egyedi beállításokkal, mint például oldalméret, margók és képek kezelése. + +## Előfeltételek + +Mielőtt belevágnánk, győződj meg róla, hogy rendelkezel: + +* .NET 6.0 SDK vagy újabb verzióval (a kód .NET Framework 4.6+‑on is működik) +* Visual Studio 2022‑vel (vagy bármely általad preferált szerkesztővel) +* Aktív NuGet licenccel az **Aspose.PDF for .NET**‑hez – a ingyenes próba verzió elegendő a kísérletezéshez +* Egy mappával, amely egy vagy több `.html` fájlt tartalmaz, amelyeket PDF‑vé szeretnél alakítani + +Minden megvan? Remek—kezdjünk bele. + +## 1. lépés: A projekt beállítása és az Aspose.PDF telepítése + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Most add hozzá az Aspose.PDF csomagot: + +```bash +dotnet add package Aspose.PDF +``` + +A csomag tartalmazza a `Converter` osztályt, amelyet a **convert HTML to PDF C#** stílusú konvertáláshoz használunk. Nincs extra DLL, nincs natív függőség—csak egy tiszta NuGet hivatkozás. + +## 2. lépés: Az alapvető konverziós logika megírása + +Nyisd meg a `Program.cs`‑t, és cseréld le a sablont a következő kóddal. Minden sor meg van kommentálva, hogy pontosan lásd, miért van ott. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Miért működik ez + +* **`Converter.Convert`** a **how to convert HTML file to PDF** C#‑ban a szíve. Beolvassa a forrás HTML‑t, alkalmazza a `PdfSaveOptions`‑t, és egyetlen hívással PDF‑t ír ki. +* A ciklus megvalósítja a **batch convert HTML files to PDF** funkciót anélkül, hogy extra sablont kellene írnod. +* A `PdfSaveOptions` módosításával szabályozhatod a végső megjelenést, ami elengedhetetlen, ha **generate PDF from HTML document**-ot kell készítened, amely megfelel a vállalati arculatnak. + +## 3. lépés: A konverter tesztelése egy egyszerű HTML mintával + +Hozz létre egy `html` nevű almappát a `Program.cs` mellé, és helyezz el benne egy apró `sample.html` fájlt: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Futtasd a programot: + +```bash +dotnet run +``` + +Egy zöld pipa sort kell látnod, amely megerősíti a konvertálást, és egy `sample.pdf` fájl jelenik meg a `pdf` mappában. Nyisd meg—figyeld meg a címsor színét, a linket és a `PdfSaveOptions`‑ban beállított margókat. Ez bizonyítja, hogy sikeresen elsajátítottad a **how to convert HTML file to PDF** technikát. + +## 4. lépés: Haladó beállítások valós környezetekhez + +### 4.1 Külső erőforrások kezelése (CSS, képek) + +Ha a HTML külső CSS fájlokra vagy képekre hivatkozik, győződj meg róla, hogy az útvonalak abszolútak vagy a HTML fájl könyvtárához relatívak. Az Aspose.PDF automatikusan feloldja őket, de beállíthatsz egy alap URL‑t is: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Betűtípus beágyazásának vezérlése + +Néha a vállalati PDF‑eknek specifikus betűtípusokra van szükségük. Egy TrueType betűtípust így ágyazhatsz be: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Helyezd el a `.ttf` fájljaidat a `fonts` mappában, és hivatkozz rájuk a HTML‑ben `@font-face`‑szel. + +### 4.3 Egyetlen PDF generálása több HTML fájlból + +Ha **generate PDF from HTML document**-ra van szükséged, amely több oldalon terjed (pl. több fejezetes jelentés), a konvertálás után összefűzheted a PDF‑eket: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Hiba kezelés és naplózás + +A produkciós kódnak védenie kell a hibás HTML‑t vagy a hiányzó erőforrásokat. Tekerd a konvertálást egy try‑catch blokkba, és naplózd a kivételt: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## 5. lépés: A kimenet programozott ellenőrzése (opcionális) + +Ha biztosra akarsz menni, hogy minden generált PDF tartalmaz egy adott kulcsszót vagy oldalszámot, az Aspose.PDF lehetővé teszi a PDF‑ek ellenőrzését a létrehozás után: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Ez a kis kódrészlet része lehet egy automatizált tesztkészletnek a **convert HTML to PDF C#** folyamatodhoz. + +## Gyakori hibák és profi tippek + +| Probléma | Miért fordul elő | Javítás | +|----------|------------------|--------| +| Relatív képelérési utak hibát okoznak | A Converter más munkakönyvtárból fut | Állítsd be a `pdfOptions.BaseUri` értékét a HTML mappára | +| A betűtípusok helyettesítőként jelennek meg | A betűtípus nincs beágyazva vagy hiányzik a szerveren | Használd a `FontEmbeddingMode.Always` beállítást és biztosítsd a betűtípus fájlokat | +| Nagy HTML fájlok memóriacsúcsot okoznak | Az egész dokumentum memóriába töltődik | Feldolgozd a fájlokat egyesével (ahogy látható) vagy növeld a `MemoryLimit` értéket a beállításokban | +| A linkek egyszerű szöveggé válnak | `PreserveHyperlinks` le van tiltva | Győződj meg róla, hogy a `PreserveHyperlinks = true` be van állítva a `PdfSaveOptions`‑ban | + +## Teljes működő példa (az összes kód egy helyen) + +Könnyebb használat érdekében itt van a teljes program, amelyet beilleszthetsz a `Program.cs`‑be. Tartalmazza az összes fent tárgyalt opcionális finomítást, de a felesleges részeket ki is kommentelheted. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Mit érdemes következőként megtanulni? + +Az alábbi tutorialok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás tartalmaz teljes, működő kódrészleteket lépésről‑lépésre magyarázatokkal, hogy segítsen elsajátítani további API funkciókat és alternatív megvalósítási megközelítéseket a saját projektjeidben. + +- [HTML konvertálása PDF‑re .NET‑ben az Aspose.HTML segítségével](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [EPUB konvertálása PDF‑re .NET‑ben az Aspose.HTML segítségével](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [SVG konvertálása PDF‑re .NET‑ben az Aspose.HTML segítségével](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/conversion-html-to-other-formats/_index.md b/html/indonesian/java/conversion-html-to-other-formats/_index.md index 1fe7d1786c..9b2cf3a4ad 100644 --- a/html/indonesian/java/conversion-html-to-other-formats/_index.md +++ b/html/indonesian/java/conversion-html-to-other-formats/_index.md @@ -108,6 +108,9 @@ Ubah SVG ke PDF di Java dengan Aspose.HTML. Solusi mulus untuk konversi dokumen ### [Mengonversi SVG ke XPS](./convert-svg-to-xps/) Pelajari cara mengonversi SVG ke XPS dengan Aspose.HTML untuk Java. Panduan sederhana, langkah‑demi‑langkah untuk konversi mulus. +### [Cara Mengonversi File HTML ke PDF di C# – Panduan Langkah‑demi‑Langkah](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Pelajari cara mengonversi file HTML ke PDF di C# menggunakan Aspose.HTML dengan panduan langkah demi langkah. + ## Pertanyaan yang Sering Diajukan **Q: Bisakah saya menggunakan Aspose.HTML untuk Java dalam aplikasi komersial?** diff --git a/html/indonesian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/indonesian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..8e89fd170b --- /dev/null +++ b/html/indonesian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: Cara mengonversi file HTML ke PDF dalam C# menggunakan Aspose.PDF. Pelajari + konversi batch, opsi PDF, dan menghasilkan PDF dari dokumen HTML dengan contoh kode + yang jelas. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: id +lastmod: 2026-07-18 +og_description: Cara mengonversi file HTML ke PDF di C# dengan Aspose.PDF. Ikuti panduan + ini untuk mengonversi file HTML secara batch ke PDF dan menghasilkan PDF dari dokumen + HTML dengan mudah. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Cara Mengonversi File HTML ke PDF di C# – Panduan Pemrograman Lengkap +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Cara Mengonversi File HTML ke PDF di C# – Panduan Langkah demi Langkah +url: /id/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Mengonversi File HTML ke PDF di C# – Panduan Pemrograman Lengkap + +Pernah bertanya-tanya **cara mengonversi file HTML ke PDF** menggunakan C# tanpa membuat frustasi? Anda bukan satu-satunya. Baik Anda sedang membangun generator laporan, mesin faktur, atau pengekspor situs statis, mengubah HTML menjadi PDF yang rapi adalah kebutuhan yang sering muncul. + +Dalam tutorial ini kami akan membahas solusi siap‑jalankan yang menunjukkan **cara mengonversi file HTML ke PDF** dengan Aspose.PDF, cara **mengonversi HTML ke PDF C#** dalam satu panggilan, dan bahkan cara **mengonversi batch file HTML ke PDF** untuk skenario skala besar. Pada akhir tutorial Anda juga akan tahu cara **menghasilkan PDF dari dokumen HTML** dengan opsi khusus seperti ukuran halaman, margin, dan penanganan gambar. + +## Prasyarat + +* .NET 6.0 SDK atau yang lebih baru (kode ini juga bekerja pada .NET Framework 4.6+ ) +* Visual Studio 2022 (atau editor apa pun yang Anda sukai) +* Lisensi NuGet aktif untuk **Aspose.PDF for .NET** – percobaan gratis dapat digunakan untuk eksperimen +* Sebuah folder yang berisi satu atau lebih file `.html` yang ingin Anda ubah menjadi PDF + +Sudah semua? Bagus—mari kita mulai. + +## Langkah 1: Siapkan Proyek dan Instal Aspose.PDF + +First, create a new console app: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Now add the Aspose.PDF package: + +```bash +dotnet add package Aspose.PDF +``` + +The package brings in the `Converter` class we’ll use to **convert HTML to PDF C#** style. No extra DLLs, no native dependencies—just a clean NuGet reference. + +## Langkah 2: Tulis Logika Konversi Inti + +Open `Program.cs` and replace the boilerplate with the following code. Every line is commented so you can see exactly why it’s there. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Mengapa Ini Berfungsi + +* **`Converter.Convert`** adalah inti dari **cara mengonversi file HTML ke PDF** di C#. Ia membaca HTML sumber, menerapkan `PdfSaveOptions`, dan menulis PDF dalam satu panggilan. +* Loop ini mengimplementasikan **konversi batch file HTML ke PDF** tanpa Anda menulis boilerplate tambahan. +* Dengan menyesuaikan `PdfSaveOptions` Anda mengontrol tampilan akhir, yang penting ketika Anda perlu **menghasilkan PDF dari dokumen HTML** yang sesuai dengan merek perusahaan. + +## Langkah 3: Uji Konverter dengan Contoh HTML Sederhana + +Buat subfolder bernama `html` di samping `Program.cs` dan letakkan file kecil bernama `sample.html` di dalamnya: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Jalankan program: + +```bash +dotnet run +``` + +Anda akan melihat baris tanda centang hijau yang mengonfirmasi konversi, dan file `sample.pdf` akan muncul di folder `pdf`. Buka file tersebut—perhatikan warna judul, tautan, dan margin yang Anda atur di `PdfSaveOptions`. Itu bukti bahwa Anda telah berhasil menguasai **cara mengonversi file HTML ke PDF**. + +## Langkah 4: Opsi Lanjutan untuk Skenario Dunia Nyata + +### 4.1 Menangani Sumber Daya Eksternal (CSS, Gambar) + +Jika HTML Anda merujuk ke file CSS eksternal atau gambar, pastikan jalurnya absolut atau relatif terhadap direktori file HTML. Aspose.PDF akan menyelesaikannya secara otomatis, tetapi Anda juga dapat mengatur URL dasar: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Mengontrol Penyematan Font + +Kadang-kadang PDF perusahaan memerlukan font tertentu. Anda dapat menyematkan font TrueType seperti ini: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Letakkan file `.ttf` Anda di folder `fonts` dan referensikan mereka dalam HTML Anda melalui `@font-face`. + +### 4.3 Menghasilkan Satu PDF dari Beberapa File HTML + +Jika Anda perlu **menghasilkan PDF dari dokumen HTML** yang mencakup beberapa halaman (misalnya, laporan multi‑bab), Anda dapat menggabungkan PDF setelah konversi: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Penanganan Kesalahan dan Logging + +Kode produksi harus melindungi dari HTML yang rusak atau sumber daya yang hilang. Bungkus konversi dalam blok try‑catch dan catat pengecualian: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Langkah 5: Verifikasi Output Secara Programatis (Opsional) + +Jika Anda ingin memastikan setiap PDF yang dihasilkan berisi kata kunci tertentu atau jumlah halaman tertentu, Aspose.PDF memungkinkan Anda memeriksa PDF setelah dibuat: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Potongan kode kecil itu dapat menjadi bagian dari rangkaian tes otomatis untuk pipeline **convert HTML to PDF C#** Anda. + +## Kesalahan Umum dan Tips Profesional + +| Masalah | Mengapa Terjadi | Solusi | +|---------|----------------|--------| +| Path gambar relatif rusak | Converter dijalankan dari direktori kerja yang berbeda | Atur `pdfOptions.BaseUri` ke folder HTML | +| Font muncul sebagai pengganti | Font tidak disematkan atau tidak ada di server | Gunakan `FontEmbeddingMode.Always` dan sediakan file font | +| File HTML besar menyebabkan lonjakan memori | Seluruh dokumen dimuat ke memori | Proses file satu‑per‑satu (seperti yang ditunjukkan) atau tingkatkan `MemoryLimit` dalam opsi | +| Tautan menjadi teks biasa | `PreserveHyperlinks` dinonaktifkan | Pastikan `PreserveHyperlinks = true` di `PdfSaveOptions` | + +## Contoh Lengkap yang Berfungsi (Semua Kode dalam Satu Tempat) + +Untuk kemudahan, berikut seluruh program yang dapat Anda salin‑tempel ke `Program.cs`. Ini mencakup semua penyesuaian opsional yang dibahas di atas, tetapi Anda dapat mengomentari bagian yang tidak diperlukan. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik yang sangat terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber menyertakan contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [Mengonversi HTML ke PDF di .NET dengan Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Mengonversi EPUB ke PDF di .NET dengan Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Mengonversi SVG ke PDF di .NET dengan Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/conversion-html-to-other-formats/_index.md b/html/italian/java/conversion-html-to-other-formats/_index.md index 8c3556a362..3686a0df87 100644 --- a/html/italian/java/conversion-html-to-other-formats/_index.md +++ b/html/italian/java/conversion-html-to-other-formats/_index.md @@ -85,6 +85,7 @@ In conclusione, padroneggiare **html to pdf java** e l'insieme più ampio di con ### [Conversione da HTML a PDF](./convert-html-to-pdf/) ### [Converti HTML in PDF in Java – Guida passo‑passo con impostazioni della dimensione della pagina](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) +### [Come Convertire un File HTML in PDF in C# – Guida Passo‑Passo](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) ### [Conversione da HTML a MHTML](./convert-html-to-mhtml/) ### [Conversione da HTML a XPS](./convert-html-to-xps/) ### [Conversione da Markdown a HTML](./convert-markdown-to-html/) diff --git a/html/italian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/italian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..2639c5c615 --- /dev/null +++ b/html/italian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: Come convertire un file HTML in PDF in C# usando Aspose.PDF. Scopri la + conversione batch, le opzioni PDF e genera PDF da un documento HTML con esempi di + codice chiari. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: it +lastmod: 2026-07-18 +og_description: Come convertire un file HTML in PDF in C# con Aspose.PDF. Segui questa + guida per convertire in batch file HTML in PDF e generare PDF da un documento HTML + senza sforzo. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Come convertire un file HTML in PDF con C# – Guida completa alla programmazione +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Come convertire un file HTML in PDF con C# – Guida passo passo +url: /it/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come Convertire un File HTML in PDF in C# – Guida Completa di Programmazione + +Ti sei mai chiesto **come convertire un file HTML in PDF** usando C# senza impazzire? Non sei l'unico. Che tu stia creando un generatore di report, un motore di fatturazione o un esportatore di siti statici, trasformare HTML in un PDF curato è una necessità frequente. + +In questo tutorial percorreremo una soluzione pronta all'uso che mostra **come convertire un file HTML in PDF** con Aspose.PDF, come **convertire HTML in PDF C#** con una singola chiamata, e anche come **convertire in batch file HTML in PDF** per scenari su larga scala. Alla fine saprai anche come **generare PDF da un documento HTML** con opzioni personalizzate come dimensione della pagina, margini e gestione delle immagini. + +## Prerequisiti + +* .NET 6.0 SDK o successivo (il codice funziona anche su .NET Framework 4.6+) +* Visual Studio 2022 (o qualsiasi editor preferisci) +* Una licenza NuGet attiva per **Aspose.PDF for .NET** – la versione di prova gratuita è sufficiente per sperimentare +* Una cartella contenente uno o più file `.html` che desideri trasformare in PDF + +Hai tutto? Ottimo—iniziamo. + +## Passo 1: Configurare il Progetto e Installare Aspose.PDF + +Per prima cosa, crea una nuova applicazione console: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Ora aggiungi il pacchetto Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +Il pacchetto include la classe `Converter` che useremo per **convertire HTML in PDF C#**. Nessun DLL aggiuntivo, nessuna dipendenza nativa—solo un riferimento NuGet pulito. + +## Passo 2: Scrivere la Logica di Conversione Principale + +Apri `Program.cs` e sostituisci il boilerplate con il codice seguente. Ogni riga è commentata così puoi vedere esattamente il motivo della sua presenza. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Perché Questo Funziona + +* **`Converter.Convert`** è il cuore di **come convertire un file HTML in PDF** in C#. Legge l'HTML di origine, applica le `PdfSaveOptions` e scrive un PDF con una singola chiamata. +* Il ciclo implementa **convertire in batch file HTML in PDF** senza dover scrivere boilerplate aggiuntivo. +* Regolando le `PdfSaveOptions` controlli l'aspetto finale, fondamentale quando devi **generare PDF da un documento HTML** che rispetti il branding aziendale. + +## Passo 3: Testare il Convertitore con un Campione HTML Semplice + +Crea una sottocartella chiamata `html` accanto a `Program.cs` e inserisci un piccolo file chiamato `sample.html` al suo interno: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Esegui il programma: + +```bash +dotnet run +``` + +Dovresti vedere una riga con un segno di spunta verde che conferma la conversione, e un file `sample.pdf` apparirà nella cartella `pdf`. Aprilo—nota il colore dell'intestazione, il link e i margini impostati in `PdfSaveOptions`. Questa è la prova che hai padroneggiato con successo **come convertire un file HTML in PDF**. + +## Passo 4: Opzioni Avanzate per Scenari Real‑World + +### 4.1 Gestione delle Risorse Esterne (CSS, Immagini) + +Se il tuo HTML fa riferimento a file CSS o immagini esterne, assicurati che i percorsi siano assoluti o relativi alla directory del file HTML. Aspose.PDF li risolve automaticamente, ma puoi anche impostare un URL di base: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Controllo dell'Incorporamento dei Font + +A volte i PDF aziendali richiedono font specifici. Puoi incorporare un font TrueType in questo modo: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Posiziona i tuoi file `.ttf` nella cartella `fonts` e riferiscili nel tuo HTML tramite `@font-face`. + +### 4.3 Generare un PDF Unico da più File HTML + +Se devi **generare PDF da un documento HTML** che si estende su più pagine (ad esempio un report multi‑capitolo), puoi concatenare i PDF dopo la conversione: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Gestione degli Errori e Logging + +Il codice di produzione dovrebbe proteggersi da HTML malformato o risorse mancanti. Avvolgi la conversione in un blocco try‑catch e registra l'eccezione: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Passo 5: Verificare l'Output Programmaticamente (Opzionale) + +Se vuoi assicurarti che ogni PDF generato contenga una parola chiave specifica o un certo numero di pagine, Aspose.PDF ti permette di ispezionare i PDF dopo la creazione: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Questa piccola porzione di codice può diventare parte di una suite di test automatizzati per la tua pipeline **convert HTML to PDF C#**. + +## Problemi Comuni e Consigli Pro + +| Problema | Perché accade | Soluzione | +|----------|----------------|-----------| +| I percorsi relativi delle immagini si rompono | Il convertitore viene eseguito da una directory di lavoro diversa | Imposta `pdfOptions.BaseUri` sulla cartella HTML | +| I font appaiono come sostituti | Font non incorporato o mancante sul server | Usa `FontEmbeddingMode.Always` e fornisci i file dei font | +| File HTML di grandi dimensioni causano picchi di memoria | L'intero documento viene caricato in memoria | Elabora i file uno‑a‑uno (come mostrato) o aumenta `MemoryLimit` nelle opzioni | +| I link diventano testo semplice | `PreserveHyperlinks` disabilitato | Assicurati che `PreserveHyperlinks = true` in `PdfSaveOptions` | + +## Esempio Completo (Tutto il Codice in Un Unico Punto) + +Per comodità, ecco l'intero programma che puoi copiare‑incollare in `Program.cs`. Include tutte le modifiche opzionali discusse sopra, ma puoi commentare le sezioni che non ti servono. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Cosa Dovresti Imparare Dopo? + +I tutorial seguenti coprono argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità API aggiuntive ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Convert HTML to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convert SVG to PDF in .NET with Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/conversion-html-to-other-formats/_index.md b/html/japanese/java/conversion-html-to-other-formats/_index.md index ef52efca8d..91033e0c9f 100644 --- a/html/japanese/java/conversion-html-to-other-formats/_index.md +++ b/html/japanese/java/conversion-html-to-other-formats/_index.md @@ -97,6 +97,8 @@ Aspose.HTML で Java の SVG を PDF に変換します。高品質文書変換 Aspose.HTML for Java を使用して SVG を XPS に変換する方法を学びます。シンプルでステップバイステップのガイドでシームレスに変換できます。 ### [JavaでHTMLをPDFに変換 – ページサイズ設定付きステップバイステップガイド](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) JavaでHTMLをPDFに変換し、ページサイズをカスタマイズする手順を詳しく解説します。 +### [C#でHTMLファイルをPDFに変換する方法 – ステップバイステップガイド](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Aspose.HTML を使用して C# で HTML ファイルを PDF に変換する手順を詳しく解説します。 ## よくある質問 diff --git a/html/japanese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/japanese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..6341be0216 --- /dev/null +++ b/html/japanese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: Aspose.PDF を使用して C# で HTML ファイルを PDF に変換する方法。バッチ変換や PDF オプションを学び、明確なコード例で + HTML ドキュメントから PDF を生成します。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: ja +lastmod: 2026-07-18 +og_description: C# と Aspose.PDF を使用して HTML ファイルを PDF に変換する方法。このガイドに従って HTML ファイルをバッチで + PDF に変換し、HTML ドキュメントから簡単に PDF を生成しましょう。 +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: C#でHTMLファイルをPDFに変換する方法 – 完全プログラミング解説 +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: C#でHTMLファイルをPDFに変換する方法 – ステップバイステップガイド +url: /ja/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#でHTMLファイルをPDFに変換する方法 – 完全プログラミングウォークスルー + +**HTMLファイルをPDFに変換する方法**をC#で、髪の毛を抜かずに実現したいと思ったことはありませんか? あなた一人だけではありません。レポートジェネレータや請求書エンジン、あるいは静的サイトエクスポーターを構築している場合でも、HTMLを洗練されたPDFに変換するのは頻繁に求められる要件です。 + +このチュートリアルでは、Aspose.PDF を使用して **HTMLファイルをPDFに変換する方法** を示す実行可能なソリューションをステップバイステップで解説し、**C#でHTMLをPDFに変換**する単一呼び出しの方法、さらには大規模シナリオ向けの **HTMLファイルをPDFにバッチ変換** の手順も紹介します。最後には、ページサイズ、余白、画像処理などのカスタムオプションを指定して **HTMLドキュメントからPDFを生成** する方法も習得できます。 + +## 前提条件 + +作業を始める前に、以下を用意してください。 + +* .NET 6.0 SDK 以降(コードは .NET Framework 4.6+ でも動作します) +* Visual Studio 2022(またはお好みのエディタ) +* **Aspose.PDF for .NET** の有効な NuGet ライセンス – 無料トライアルで実験可能です +* PDF に変換したい `.html` ファイルが入っているフォルダー + +すべて揃いましたか? では、始めましょう。 + +## 手順 1: プロジェクトの作成と Aspose.PDF のインストール + +まず、コンソールアプリを新規作成します。 + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +次に、Aspose.PDF パッケージを追加します。 + +```bash +dotnet add package Aspose.PDF +``` + +このパッケージは、**C#でHTMLをPDFに変換**する際に使用する `Converter` クラスを提供します。余計な DLL やネイティブ依存関係は不要で、NuGet 参照だけで完結します。 + +## 手順 2: コア変換ロジックの実装 + +`Program.cs` を開き、以下のコードで雛形を置き換えてください。各行にコメントを付けているので、なぜ必要かがすぐに分かります。 + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### なぜこれが機能するのか + +* **`Converter.Convert`** は C#で **HTMLファイルをPDFに変換する方法** の中心です。ソース HTML を読み込み、`PdfSaveOptions` を適用し、単一呼び出しで PDF を出力します。 +* ループは **HTMLファイルをPDFにバッチ変換** するロジックで、余計なボイラープレートを書かずに済みます。 +* `PdfSaveOptions` を調整することで、最終的な見た目を制御でき、企業ブランディングに合わせた **HTMLドキュメントからPDFを生成** する際に重要です。 + +## 手順 3: シンプルな HTML サンプルでコンバータをテスト + +`Program.cs` と同じ階層に `html` というサブフォルダーを作成し、その中に `sample.html` という小さなファイルを配置します。 + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +プログラムを実行します。 + +```bash +dotnet run +``` + +緑のチェックマークが表示され、`pdf` フォルダーに `sample.pdf` が生成されます。開いてみて、見出しの色、リンク、`PdfSaveOptions` で設定した余白が反映されていることを確認してください。これで **HTMLファイルをPDFに変換する方法** をマスターした証拠です。 + +## 手順 4: 実務シナリオ向け高度なオプション + +### 4.1 外部リソース(CSS、画像)の取り扱い + +HTML が外部 CSS ファイルや画像を参照している場合、パスは絶対パスか HTML ファイルのディレクトリに対する相対パスにしてください。Aspose.PDF は自動で解決しますが、ベース URL を明示的に設定することもできます。 + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 フォント埋め込みの制御 + +企業向け PDF では特定のフォントが必要になることがあります。以下のように TrueType フォントを埋め込めます。 + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +`.ttf` ファイルは `fonts` フォルダーに配置し、HTML では `@font-face` で参照してください。 + +### 4.3 複数 HTML ファイルから単一 PDF を生成 + +複数ページにまたがる **HTMLドキュメントからPDFを生成** したい場合は、変換後に PDF を結合します。 + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 エラーハンドリングとロギング + +本番コードでは、破損した HTML やリソース欠損に備えて例外処理を行うべきです。変換処理を try‑catch で囲み、例外をログに記録します。 + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## 手順 5: 出力をプログラムから検証(任意) + +生成された PDF に特定のキーワードやページ数が含まれているか確認したい場合、Aspose.PDF を使って作成後に PDF を検査できます。 + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +この小さなスニペットは、**C#でHTMLをPDFに変換** パイプラインの自動テストに組み込むことができます。 + +## よくある落とし穴とプロのコツ + +| 落とし穴 | 発生理由 | 対策 | +|---------|----------|------| +| 相対画像パスが壊れる | コンバータが別の作業ディレクトリで実行される | `pdfOptions.BaseUri` を HTML フォルダーに設定 | +| フォントが代替表示される | フォントが埋め込まれていない、またはサーバーに存在しない | `FontEmbeddingMode.Always` を使用し、フォントファイルを提供 | +| 大きな HTML がメモリスパイクを起こす | ドキュメント全体をメモリに読み込む | ファイルを一つずつ処理(上記参照)または `MemoryLimit` を増やす | +| リンクがテキスト化される | `PreserveHyperlinks` が無効 | `PdfSaveOptions` の `PreserveHyperlinks = true` を確実に設定 | + +## 完全動作サンプル(コード一式) + +便利なように、`Program.cs` にそのまま貼り付けられる完全版プログラムを掲載します。上記で説明したオプションすべてを含んでいますが、不要な部分はコメントアウトしてください。 + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示したテクニックを応用した関連トピックを扱っています。各リソースには、ステップバイステップの解説と完全なコード例が含まれており、API の追加機能を習得したり、独自プロジェクトで代替実装を検討したりするのに役立ちます。 + +- [Aspose.HTML を使って .NET で HTML を PDF に変換](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Aspose.HTML を使って .NET で EPUB を PDF に変換](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Aspose.HTML を使って .NET で SVG を PDF に変換](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/conversion-html-to-other-formats/_index.md b/html/korean/java/conversion-html-to-other-formats/_index.md index de4e019fe7..af2e34dca4 100644 --- a/html/korean/java/conversion-html-to-other-formats/_index.md +++ b/html/korean/java/conversion-html-to-other-formats/_index.md @@ -86,6 +86,8 @@ SVG 그래픽을 XPS 형식으로 변환하여 기기 간 일관된 인쇄를 Aspose.HTML를 사용하여 Java에서 HTML을 PDF로 변환하는 방법을 배우세요. HTML 콘텐츠에서 고품질 PDF를 손쉽게 생성합니다. ### [Java에서 HTML을 PDF로 변환 – 페이지 크기 설정을 포함한 단계별 가이드](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Aspose.HTML를 사용하여 Java에서 페이지 크기 옵션을 지정하며 HTML을 PDF로 변환하는 방법을 단계별로 안내합니다. +### [C#에서 HTML 파일을 PDF로 변환하는 방법 – 단계별 가이드](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Aspose.HTML를 사용하여 C#에서 HTML 파일을 PDF로 변환하는 단계별 과정을 안내합니다. ### [HTML을 MHTML로 변환](./convert-html-to-mhtml/) Aspose.HTML for Java를 사용하여 HTML을 MHTML로 손쉽게 변환합니다. 효율적인 HTML‑to‑MHTML 변환을 위한 단계별 가이드를 따라 주세요. ### [HTML을 XPS로 변환](./convert-html-to-xps/) diff --git a/html/korean/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/korean/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..f17fa64ce3 --- /dev/null +++ b/html/korean/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,315 @@ +--- +category: general +date: 2026-07-18 +description: Aspose.PDF를 사용하여 C#에서 HTML 파일을 PDF로 변환하는 방법. 배치 변환, PDF 옵션을 배우고 명확한 코드 + 예제로 HTML 문서에서 PDF를 생성하세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: ko +lastmod: 2026-07-18 +og_description: C#와 Aspose.PDF를 사용하여 HTML 파일을 PDF로 변환하는 방법. 이 가이드를 따라 HTML 파일을 일괄적으로 + PDF로 변환하고 HTML 문서에서 손쉽게 PDF를 생성하세요. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: C#에서 HTML 파일을 PDF로 변환하는 방법 – 완전한 프로그래밍 가이드 +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: C#에서 HTML 파일을 PDF로 변환하는 방법 – 단계별 가이드 +url: /ko/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 HTML 파일을 PDF로 변환하는 방법 – 완전한 프로그래밍 워크스루 + +C#를 사용하여 **HTML 파일을 PDF로 변환하는 방법**을 고민해 본 적 있나요? 혼자만 그런 것이 아닙니다. 보고서 생성기, 청구서 엔진, 혹은 정적 사이트 내보내기를 만들고 있든, HTML을 깔끔한 PDF로 변환하는 것은 자주 요구되는 작업입니다. + +이 튜토리얼에서는 Aspose.PDF를 사용해 **HTML 파일을 PDF로 변환하는 방법**을 보여주는 바로 실행 가능한 솔루션을 단계별로 살펴보고, **HTML을 PDF C#**으로 한 번에 변환하는 방법과 대규모 시나리오를 위한 **HTML 파일을 PDF로 일괄 변환** 방법까지 다룹니다. 마지막으로 페이지 크기, 여백, 이미지 처리와 같은 사용자 지정 옵션을 사용해 **HTML 문서에서 PDF 생성**하는 방법도 알게 됩니다. + +## 사전 요구 사항 + +* .NET 6.0 SDK 또는 그 이상 (코드는 .NET Framework 4.6+에서도 작동합니다) +* Visual Studio 2022 (또는 선호하는 다른 편집기) +* **Aspose.PDF for .NET**에 대한 활성 NuGet 라이선스 – 무료 체험판으로 실험해 볼 수 있습니다 +* PDF로 변환하려는 하나 이상의 `.html` 파일이 들어 있는 폴더 + +모두 준비되었나요? 좋습니다—시작해 봅시다. + +## 1단계: 프로젝트 설정 및 Aspose.PDF 설치 + +First, create a new console app: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Now add the Aspose.PDF package: + +```bash +dotnet add package Aspose.PDF +``` + +The package brings in the `Converter` class we’ll use to **convert HTML to PDF C#** style. No extra DLLs, no native dependencies—just a clean NuGet reference. + +## 2단계: 핵심 변환 로직 작성 + +Open `Program.cs` and replace the boilerplate with the following code. Every line is commented so you can see exactly why it’s there. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### 왜 이렇게 동작하나요 + +* **`Converter.Convert`** is the heart of **how to convert HTML file to PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes a PDF in a single call. +* The loop implements **batch convert HTML files to PDF** without you writing extra boilerplate. +* By adjusting `PdfSaveOptions` you control the final look, which is essential when you need to **generate PDF from HTML document** that matches corporate branding. + +## 3단계: 간단한 HTML 샘플로 변환기 테스트 + +Create a subfolder called `html` next to `Program.cs` and drop a tiny file named `sample.html` inside: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Run the program: + +```bash +dotnet run +``` + +You should see a green check‑mark line confirming the conversion, and a `sample.pdf` file will appear in the `pdf` folder. Open it—notice the heading color, the link, and the margins you set in `PdfSaveOptions`. That’s the proof that you’ve successfully mastered **how to convert HTML file to PDF**. + +## 4단계: 실제 시나리오를 위한 고급 옵션 + +### 4.1 외부 리소스(CSS, 이미지) 처리 + +If your HTML references external CSS files or images, make sure the paths are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them automatically, but you can also set a base URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 폰트 임베딩 제어 + +Sometimes corporate PDFs require specific fonts. You can embed a TrueType font like this: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Place your `.ttf` files in the `fonts` folder and reference them in your HTML via `@font-face`. + +### 4.3 여러 HTML 파일을 하나의 PDF로 생성 + +If you need to **generate PDF from HTML document** that spans several pages (e.g., a multi‑chapter report), you can concatenate PDFs after conversion: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 오류 처리 및 로깅 + +Production code should guard against malformed HTML or missing resources. Wrap the conversion in a try‑catch block and log the exception: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## 5단계: 프로그래밍 방식으로 출력 확인 (선택 사항) + +If you want to ensure every generated PDF contains a specific keyword or page count, Aspose.PDF lets you inspect PDFs after creation: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +That tiny snippet can become part of an automated test suite for your **convert HTML to PDF C#** pipeline. + +## 흔히 발생하는 문제와 전문가 팁 + +| 문제점 | 발생 원인 | 해결 방법 | +|---------|----------------|-----| +| Relative image paths break | Converter runs from a different working directory | Set `pdfOptions.BaseUri` to the HTML folder | +| Fonts appear as substitutes | Font not embedded or missing on the server | Use `FontEmbeddingMode.Always` and supply the font files | +| Large HTML files cause memory spikes | Whole document is loaded into memory | Process files one‑by‑one (as shown) or increase `MemoryLimit` in options | +| Links become plain text | `PreserveHyperlinks` disabled | Ensure `PreserveHyperlinks = true` in `PdfSaveOptions` | + +## 전체 작업 예제 (모든 코드 한 곳에) + +For convenience, here’s the entire program you can copy‑paste into `Program.cs`. It includes all the optional tweaks discussed above, but you can comment out sections you don’t need. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## 다음에 배워야 할 내용은? + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Aspose.HTML를 사용한 .NET에서 HTML을 PDF로 변환](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Aspose.HTML를 사용한 .NET에서 EPUB을 PDF로 변환](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Aspose.HTML를 사용한 .NET에서 SVG를 PDF로 변환](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/conversion-html-to-other-formats/_index.md b/html/polish/java/conversion-html-to-other-formats/_index.md index f5a75bf2cc..0ff8c94124 100644 --- a/html/polish/java/conversion-html-to-other-formats/_index.md +++ b/html/polish/java/conversion-html-to-other-formats/_index.md @@ -98,6 +98,8 @@ Learn how to convert SVG to images in Java with Aspose.HTML. Comprehensive guide Convert SVG to PDF in Java with Aspose.HTML. A seamless solution for high-quality document conversion. ### [Converting SVG to XPS](./convert-svg-to-xps/) Learn how to convert SVG to XPS with Aspose.HTML for Java. Simple, step-by-step guide for seamless conversions. +### [Jak przekonwertować plik HTML na PDF w C# – Przewodnik krok po kroku](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Dowiedz się, jak w C# konwertować plik HTML na PDF przy użyciu Aspose.HTML, krok po kroku. ## Często zadawane pytania diff --git a/html/polish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/polish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..3e5eaea9b2 --- /dev/null +++ b/html/polish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: Jak przekonwertować plik HTML na PDF w C# przy użyciu Aspose.PDF. Dowiedz + się o konwersji wsadowej, opcjach PDF i generowaniu PDF z dokumentu HTML z przejrzystymi + przykładami kodu. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: pl +lastmod: 2026-07-18 +og_description: Jak przekonwertować plik HTML na PDF w C# przy użyciu Aspose.PDF. + Skorzystaj z tego przewodnika, aby wsadowo konwertować pliki HTML na PDF i łatwo + generować PDF z dokumentu HTML. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Jak przekonwertować plik HTML na PDF w C# – Kompletny przewodnik programistyczny +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Jak przekonwertować plik HTML na PDF w C# – Przewodnik krok po kroku +url: /pl/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak przekonwertować plik HTML na PDF w C# – Kompletny przewodnik programistyczny + +Zastanawiałeś się kiedyś **jak przekonwertować plik HTML na PDF** przy użyciu C#, nie tracąc przy tym włosów? Nie jesteś jedyny. Niezależnie od tego, czy tworzysz generator raportów, silnik faktur, czy eksportator statycznych stron, przekształcenie HTML w elegancki PDF jest częstym wymogiem. + +W tym samouczku przeprowadzimy Cię przez gotowe rozwiązanie, które pokazuje **jak przekonwertować plik HTML na PDF** przy użyciu Aspose.PDF, jak **konwertować HTML do PDF w C#** w jednym wywołaniu, a nawet jak **konwertować wsadowo pliki HTML na PDF** w scenariuszach na dużą skalę. Na końcu dowiesz się także, jak **generować PDF z dokumentu HTML** z własnymi opcjami, takimi jak rozmiar strony, marginesy i obsługa obrazów. + +## Wymagania wstępne + +* .NET 6.0 SDK lub nowszy (kod działa również na .NET Framework 4.6+) +* Visual Studio 2022 (lub dowolny edytor, który preferujesz) +* Aktywna licencja NuGet na **Aspose.PDF for .NET** – darmowa wersja próbna wystarczy do eksperymentów +* Folder zawierający jeden lub więcej plików `.html`, które chcesz przekształcić w PDFy + +Masz wszystko? Świetnie — zaczynamy. + +## Krok 1: Konfiguracja projektu i instalacja Aspose.PDF + +Najpierw utwórz nową aplikację konsolową: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Teraz dodaj pakiet Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +Pakiet dostarcza klasę `Converter`, której użyjemy do **konwersji HTML do PDF w C#**. Bez dodatkowych DLL‑ów, bez natywnych zależności — po prostu czyste odniesienie NuGet. + +## Krok 2: Napisz podstawową logikę konwersji + +Otwórz `Program.cs` i zamień szkielet kodu na poniższy. Każda linia jest skomentowana, abyś dokładnie widział, dlaczego jest potrzebna. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Dlaczego to działa + +* **`Converter.Convert`** jest sercem **jak przekonwertować plik HTML na PDF** w C#. Odczytuje źródłowy HTML, stosuje `PdfSaveOptions` i zapisuje PDF w jednym wywołaniu. +* Pętla realizuje **konwersję wsadową plików HTML do PDF** bez konieczności pisania dodatkowego szkieletu. +* Poprzez dostosowanie `PdfSaveOptions` kontrolujesz ostateczny wygląd, co jest kluczowe, gdy musisz **generować PDF z dokumentu HTML** zgodnie z identyfikacją wizualną firmy. + +## Krok 3: Przetestuj konwerter na prostym przykładzie HTML + +Utwórz podfolder o nazwie `html` obok `Program.cs` i umieść w nim mały plik o nazwie `sample.html`: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Uruchom program: + +```bash +dotnet run +``` + +Powinieneś zobaczyć zieloną linię z zaznaczeniem potwierdzającą konwersję oraz plik `sample.pdf` pojawi się w folderze `pdf`. Otwórz go — zwróć uwagę na kolor nagłówka, link oraz marginesy ustawione w `PdfSaveOptions`. To dowód, że opanowałeś **jak przekonwertować plik HTML na PDF**. + +## Krok 4: Zaawansowane opcje dla rzeczywistych scenariuszy + +### 4.1 Obsługa zasobów zewnętrznych (CSS, obrazy) + +Jeśli Twój HTML odwołuje się do zewnętrznych plików CSS lub obrazów, upewnij się, że ścieżki są bezwzględne lub względne względem katalogu pliku HTML. Aspose.PDF rozwiązuje je automatycznie, ale możesz także ustawić bazowy URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Kontrola osadzania czcionek + +Czasami korporacyjne PDFy wymagają konkretnych czcionek. Możesz osadzić czcionkę TrueType w następujący sposób: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Umieść pliki `.ttf` w folderze `fonts` i odwołuj się do nich w HTML za pomocą `@font-face`. + +### 4.3 Generowanie jednego PDF z wielu plików HTML + +Jeśli musisz **generować PDF z dokumentu HTML**, który rozciąga się na kilka stron (np. raport wielochapterowy), możesz połączyć PDFy po konwersji: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Obsługa błędów i logowanie + +Kod produkcyjny powinien chronić przed niepoprawnym HTML‑em lub brakującymi zasobami. Owiń konwersję w blok try‑catch i zaloguj wyjątek: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Krok 5: Weryfikacja wyjścia programowo (opcjonalnie) + +Jeśli chcesz mieć pewność, że każdy wygenerowany PDF zawiera określone słowo kluczowe lub liczbę stron, Aspose.PDF umożliwia inspekcję PDFów po ich utworzeniu: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Ten mały fragment może stać się częścią zautomatyzowanego zestawu testów dla Twojego potoku **konwersji HTML do PDF w C#**. + +## Typowe pułapki i wskazówki profesjonalistów + +| Pułapka | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| Ścieżki względne do obrazów przerywają | Konwerter uruchamia się z innego katalogu roboczego | Ustaw `pdfOptions.BaseUri` na folder HTML | +| Czcionki wyświetlane są jako zamienniki | Czcionka nie jest osadzona lub brakuje jej na serwerze | Użyj `FontEmbeddingMode.Always` i dostarcz pliki czcionek | +| Duże pliki HTML powodują skoki pamięci | Cały dokument jest ładowany do pamięci | Przetwarzaj pliki pojedynczo (jak pokazano) lub zwiększ `MemoryLimit` w opcjach | +| Linki stają się zwykłym tekstem | `PreserveHyperlinks` wyłączone | Upewnij się, że `PreserveHyperlinks = true` w `PdfSaveOptions` | + +## Pełny działający przykład (cały kod w jednym miejscu) + +Dla wygody, oto cały program, który możesz skopiować i wkleić do `Program.cs`. Zawiera wszystkie opcjonalne udoskonalenia omówione powyżej, ale możesz zakomentować niepotrzebne sekcje. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Co warto nauczyć się dalej? + +Poniższe samouczki obejmują ściśle powiązane tematy, które rozwijają techniki przedstawione w tym przewodniku. Każdy zasób zawiera kompletne działające przykłady kodu z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [Konwertuj HTML na PDF w .NET przy użyciu Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Konwertuj EPUB na PDF w .NET przy użyciu Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Konwertuj SVG na PDF w .NET przy użyciu Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/conversion-html-to-other-formats/_index.md b/html/portuguese/java/conversion-html-to-other-formats/_index.md index 7a450e1460..f4d5bc8a2b 100644 --- a/html/portuguese/java/conversion-html-to-other-formats/_index.md +++ b/html/portuguese/java/conversion-html-to-other-formats/_index.md @@ -84,21 +84,31 @@ Em conclusão, dominar **html to pdf java** e o conjunto mais amplo de conversõ ## Conversão - Tutoriais de HTML para Outros Formatos ### [Convertendo HTML para PDF](./convert-html-to-pdf/) Aprenda como converter HTML para PDF em Java usando Aspose.HTML. Crie PDFs de alta qualidade a partir do seu conteúdo HTML sem esforço. + ### [Converter HTML para PDF em Java – Guia passo a passo com configurações de tamanho de página](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Aprenda a converter HTML para PDF em Java, definindo tamanhos de página personalizados passo a passo. + ### [Convertendo HTML para MHTML](./convert-html-to-mhtml/) Converta HTML para MHTML facilmente usando Aspose.HTML for Java. Siga nosso guia passo a passo para uma conversão eficiente de HTML‑para‑MHTML. + ### [Convertendo HTML para XPS](./convert-html-to-xps/) Aprenda como converter HTML para XPS usando Aspose.HTML for Java. Crie documentos multiplataforma com facilidade. + ### [Convertendo Markdown para HTML](./convert-markdown-to-html/) Converta Markdown para HTML em Java de forma fluida com Aspose.HTML for Java. Siga nosso guia passo a passo para simplificar suas necessidades de conversão de documentos. + ### [Convertendo SVG para Imagem](./convert-svg-to-image/) Aprenda como converter SVG para imagens em Java com Aspose.HTML. Guia abrangente para saída de alta qualidade. + ### [Convertendo SVG para PDF](./convert-svg-to-pdf/) Converta SVG para PDF em Java com Aspose.HTML. Uma solução fluida para conversão de documentos de alta qualidade. + ### [Convertendo SVG para XPS](./convert-svg-to-xps/) Aprenda como converter SVG para XPS com Aspose.HTML for Java. Guia simples, passo a passo, para conversões sem complicações. +### [Como Converter Arquivo HTML para PDF em C# – Guia Passo a Passo](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Aprenda a converter arquivos HTML em PDF usando C# com Aspose.HTML, passo a passo, com exemplos claros. + ## Perguntas Frequentes **Q: Posso usar o Aspose.HTML for Java em uma aplicação comercial?** diff --git a/html/portuguese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/portuguese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..fd75caf592 --- /dev/null +++ b/html/portuguese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,320 @@ +--- +category: general +date: 2026-07-18 +description: Como converter um arquivo HTML em PDF em C# usando Aspose.PDF. Aprenda + conversão em lote, opções de PDF e gere PDF a partir de documento HTML com exemplos + de código claros. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: pt +lastmod: 2026-07-18 +og_description: Como converter arquivo HTML para PDF em C# com Aspose.PDF. Siga este + guia para converter em lote arquivos HTML para PDF e gerar PDF a partir de documento + HTML sem esforço. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Como Converter Arquivo HTML para PDF em C# – Guia Completo de Programação +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Como Converter Arquivo HTML para PDF em C# – Guia Passo a Passo +url: /pt/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Converter Arquivo HTML para PDF em C# – Guia Completo de Programação + +Já se perguntou **como converter arquivo HTML para PDF** usando C# sem perder a cabeça? Você não está sozinho. Seja construindo um gerador de relatórios, um motor de faturas ou um exportador de site estático, transformar HTML em um PDF bem formatado é uma necessidade frequente. + +Neste tutorial vamos percorrer uma solução pronta‑para‑executar que mostra **como converter arquivo HTML para PDF** com Aspose.PDF, como **converter HTML para PDF C#** em uma única chamada, e até mesmo como **converter em lote arquivos HTML para PDF** em cenários de grande escala. Ao final, você também saberá como **gerar PDF a partir de documento HTML** com opções personalizadas como tamanho de página, margens e tratamento de imagens. + +## Pré‑requisitos + +Antes de mergulharmos, certifique-se de que você tem: + +* .NET 6.0 SDK ou posterior (o código também funciona no .NET Framework 4.6+). +* Visual Studio 2022 (ou qualquer editor de sua preferência). +* Uma licença ativa do NuGet para **Aspose.PDF for .NET** – o teste gratuito funciona para experimentação. +* Uma pasta contendo um ou mais arquivos `.html` que você deseja transformar em PDFs. + +Tudo pronto? Ótimo—vamos começar. + +## Etapa 1: Configurar o Projeto e Instalar Aspose.PDF + +Primeiro, crie um novo aplicativo de console: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Agora adicione o pacote Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +O pacote traz a classe `Converter` que usaremos para **converter HTML para PDF C#**. Sem DLLs extras, sem dependências nativas—apenas uma referência limpa ao NuGet. + +## Etapa 2: Escrever a Lógica Central de Conversão + +Abra `Program.cs` e substitua o código padrão pelo seguinte. Cada linha está comentada para que você veja exatamente por que está lá. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Por Que Isso Funciona + +* **`Converter.Convert`** é o coração de **como converter arquivo HTML para PDF** em C#. Ele lê o HTML de origem, aplica o `PdfSaveOptions` e grava um PDF em uma única chamada. +* O loop implementa **converter em lote arquivos HTML para PDF** sem que você precise escrever código extra. +* Ajustando o `PdfSaveOptions` você controla a aparência final, o que é essencial quando precisa **gerar PDF a partir de documento HTML** que corresponda à identidade visual da empresa. + +## Etapa 3: Testar o Conversor com um Exemplo HTML Simples + +Crie uma subpasta chamada `html` ao lado de `Program.cs` e coloque um pequeno arquivo chamado `sample.html` dentro: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Execute o programa: + +```bash +dotnet run +``` + +Você deverá ver uma linha com marca de verificação verde confirmando a conversão, e um arquivo `sample.pdf` aparecerá na pasta `pdf`. Abra‑o—note a cor do título, o link e as margens que você definiu em `PdfSaveOptions`. Essa é a prova de que você dominou **como converter arquivo HTML para PDF**. + +## Etapa 4: Opções Avançadas para Cenários do Mundo Real + +### 4.1 Manipulação de Recursos Externos (CSS, Imagens) + +Se seu HTML referencia arquivos CSS ou imagens externos, certifique‑se de que os caminhos sejam absolutos ou relativos ao diretório do arquivo HTML. Aspose.PDF os resolve automaticamente, mas você também pode definir uma URL base: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Controle de Incorporação de Fontes + +Às vezes, PDFs corporativos exigem fontes específicas. Você pode incorporar uma fonte TrueType assim: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Coloque seus arquivos `.ttf` na pasta `fonts` e faça referência a eles no seu HTML via `@font-face`. + +### 4.3 Gerar um PDF Único a Partir de Vários Arquivos HTML + +Se precisar **gerar PDF a partir de documento HTML** que abranja várias páginas (por exemplo, um relatório de múltiplos capítulos), pode concatenar os PDFs após a conversão: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Tratamento de Erros e Log + +Código de produção deve proteger contra HTML mal‑formado ou recursos ausentes. Envolva a conversão em um bloco try‑catch e registre a exceção: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Etapa 5: Verificar a Saída Programaticamente (Opcional) + +Se quiser garantir que cada PDF gerado contenha uma palavra‑chave específica ou um número de páginas determinado, Aspose.PDF permite inspecionar os PDFs após a criação: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Esse pequeno trecho pode se tornar parte de uma suíte de testes automatizados para seu pipeline de **converter HTML para PDF C#**. + +## Armadilhas Comuns e Dicas Profissionais + +| Problema | Por que acontece | Correção | +|----------|------------------|----------| +| Caminhos relativos de imagens quebram | O conversor é executado a partir de um diretório de trabalho diferente | Defina `pdfOptions.BaseUri` para a pasta HTML | +| Fontes aparecem como substitutas | Fonte não incorporada ou ausente no servidor | Use `FontEmbeddingMode.Always` e forneça os arquivos de fonte | +| Arquivos HTML grandes causam picos de memória | Todo o documento é carregado na memória | Processar arquivos um‑por‑um (como mostrado) ou aumentar `MemoryLimit` nas opções | +| Links se tornam texto simples | `PreserveHyperlinks` desativado | Garanta `PreserveHyperlinks = true` em `PdfSaveOptions` | + +## Exemplo Completo Funcional (Todo o Código em Um Só Lugar) + +Para sua conveniência, aqui está o programa inteiro que você pode copiar‑colar em `Program.cs`. Ele inclui todos os ajustes opcionais discutidos acima, mas você pode comentar as seções que não precisar. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## O Que Você Deve Aprender a Seguir? + + +Os tutoriais a seguir abordam tópicos intimamente relacionados que ampliam as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens alternativas de implementação em seus próprios projetos. + +- [Converter HTML para PDF em .NET com Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Converter EPUB para PDF em .NET com Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Converter SVG para PDF em .NET com Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/conversion-html-to-other-formats/_index.md b/html/russian/java/conversion-html-to-other-formats/_index.md index 7a599423a5..f3396c6908 100644 --- a/html/russian/java/conversion-html-to-other-formats/_index.md +++ b/html/russian/java/conversion-html-to-other-formats/_index.md @@ -91,7 +91,7 @@ Aspose.HTML for Java упрощает процесс конвертации HTML Легко конвертируйте HTML в MHTML с помощью Aspose.HTML for Java. Следуйте нашему пошаговому руководству для эффективной конвертации HTML в MHTML. ### [Конвертация HTML в XPS](./convert-html-to-xps/) -Узнайте, как без труда конвертировать HTML в XPS с помощью Aspose.HTML for Java. Создавайте кросс‑платформенные документы с лёгкостью. +Узнайте, как без труда конвертировать HTML в XPS с помощью Aspose.HTML for Java. Создавайте кросс‑платформные документы с лёгкостью. ### [Конвертация Markdown в HTML](./convert-markdown-to-html/) Бесшовно конвертируйте Markdown в HTML в Java с помощью Aspose.HTML for Java. Следуйте нашему пошаговому руководству, чтобы упростить ваши потребности в конвертации документов. @@ -108,6 +108,9 @@ Aspose.HTML for Java упрощает процесс конвертации HTML ### [Конвертация HTML в PDF в Java – Пошаговое руководство с настройками размера страницы](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Подробное пошаговое руководство по конвертации HTML в PDF в Java с настройкой размеров страниц. +### [Как конвертировать HTML‑файл в PDF на C# – Пошаговое руководство](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Пошаговое руководство по конвертации HTML‑файла в PDF с помощью Aspose.HTML for C#. Создавайте PDF‑документы из HTML без усилий. + ## Часто задаваемые вопросы **Q: Можно ли использовать Aspose.HTML for Java в коммерческом приложении?** diff --git a/html/russian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/russian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..e2b6b30f73 --- /dev/null +++ b/html/russian/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,319 @@ +--- +category: general +date: 2026-07-18 +description: Как конвертировать HTML‑файл в PDF на C# с использованием Aspose.PDF. + Узнайте о пакетном преобразовании, параметрах PDF и создании PDF из HTML‑документа + с понятными примерами кода. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: ru +lastmod: 2026-07-18 +og_description: Как конвертировать HTML‑файл в PDF на C# с помощью Aspose.PDF. Следуйте + этому руководству, чтобы пакетно преобразовывать HTML‑файлы в PDF и легко создавать + PDF из HTML‑документа. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Как конвертировать HTML‑файл в PDF на C# — Полный программный обзор +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Как конвертировать HTML‑файл в PDF на C# – пошаговое руководство +url: /ru/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как конвертировать HTML‑файл в PDF на C# – Полное пошаговое руководство + +Задумывались когда‑нибудь **как конвертировать HTML‑файл в PDF** с помощью C#, не теряя волосы? Вы не одиноки. Независимо от того, создаёте ли вы генератор отчетов, движок счетов или экспортёр статических сайтов, преобразование HTML в аккуратный PDF — частая задача. + +В этом руководстве мы пройдем готовое к запуску решение, показывающее **как конвертировать HTML‑файл в PDF** с помощью Aspose.PDF, как **конвертировать HTML в PDF C#** одним вызовом и даже как **пакетно конвертировать HTML‑файлы в PDF** для масштабных сценариев. К концу вы также узнаете, как **генерировать PDF из HTML‑документа** с пользовательскими параметрами, такими как размер страницы, отступы и обработка изображений. + +## Требования + +Перед тем как начать, убедитесь, что у вас есть: + +* .NET 6.0 SDK или новее (код также работает на .NET Framework 4.6+). +* Visual Studio 2022 (или любой другой предпочитаемый редактор). +* Активная лицензия NuGet для **Aspose.PDF for .NET** — бесплатная пробная версия подходит для экспериментов. +* Папка, содержащая один или несколько файлов `.html`, которые вы хотите преобразовать в PDF. + +Все готово? Отлично — приступим. + +## Шаг 1: Настройка проекта и установка Aspose.PDF + +Сначала создайте новое консольное приложение: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Теперь добавьте пакет Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +Пакет добавляет класс `Converter`, который мы будем использовать для **конвертации HTML в PDF C#**. Никаких дополнительных DLL, никаких нативных зависимостей — только чистая ссылка NuGet. + +## Шаг 2: Написание основной логики конвертации + +Откройте `Program.cs` и замените шаблонный код следующим: + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Почему это работает + +* **`Converter.Convert`** — сердце **как конвертировать HTML‑файл в PDF** на C#. Он читает исходный HTML, применяет `PdfSaveOptions` и записывает PDF одним вызовом. +* Цикл реализует **пакетную конвертацию HTML‑файлов в PDF** без необходимости писать дополнительный шаблонный код. +* Настраивая `PdfSaveOptions`, вы контролируете окончательный вид, что особенно важно, когда нужно **генерировать PDF из HTML‑документа**, соответствующего фирменному стилю. + +## Шаг 3: Тестирование конвертера на простом HTML‑примерe + +Создайте подпапку `html` рядом с `Program.cs` и поместите в неё небольшой файл `sample.html`: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Запустите программу: + +```bash +dotnet run +``` + +Вы должны увидеть строку с зелёной галочкой, подтверждающую конвертацию, а файл `sample.pdf` появится в папке `pdf`. Откройте его — обратите внимание на цвет заголовка, ссылку и отступы, заданные в `PdfSaveOptions`. Это доказательство того, что вы успешно освоили **как конвертировать HTML‑файл в PDF**. + +## Шаг 4: Расширенные параметры для реальных сценариев + +### 4.1 Обработка внешних ресурсов (CSS, изображения) + +Если ваш HTML ссылается на внешние CSS‑файлы или изображения, убедитесь, что пути абсолютные или относительные к каталогу HTML‑файла. Aspose.PDF разрешает их автоматически, но вы также можете задать базовый URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Управление встраиванием шрифтов + +Иногда корпоративные PDF требуют определённые шрифты. Вы можете встроить TrueType‑шрифт так: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Поместите ваши файлы `.ttf` в папку `fonts` и укажите их в HTML через `@font-face`. + +### 4.3 Генерация единого PDF из нескольких HTML‑файлов + +Если нужно **генерировать PDF из HTML‑документа**, охватывающего несколько страниц (например, многоразделный отчёт), вы можете объединить PDF‑файлы после конвертации: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Обработка ошибок и логирование + +Продакшн‑код должен защищать от некорректного HTML или отсутствующих ресурсов. Оберните конвертацию в блок try‑catch и запишите исключение в лог: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Шаг 5: Программная проверка результата (опционально) + +Если требуется убедиться, что каждый сгенерированный PDF содержит определённое ключевое слово или количество страниц, Aspose.PDF позволяет инспектировать PDF после создания: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Этот небольшой фрагмент может стать частью автоматизированного набора тестов для вашего конвейера **конвертации HTML в PDF C#**. + +## Распространённые проблемы и профессиональные советы + +| Проблема | Почему происходит | Решение | +|----------|-------------------|---------| +| Относительные пути к изображениям ломаются | Конвертер запускается из другой рабочей директории | Установите `pdfOptions.BaseUri` в папку с HTML | +| Шрифты заменяются другими | Шрифт не встроен или отсутствует на сервере | Используйте `FontEmbeddingMode.Always` и предоставьте файлы шрифтов | +| Большие HTML‑файлы вызывают всплеск памяти | Весь документ загружается в память | Обрабатывайте файлы по одному (как показано) или увеличьте `MemoryLimit` в параметрах | +| Ссылки превращаются в обычный текст | `PreserveHyperlinks` отключён | Убедитесь, что `PreserveHyperlinks = true` в `PdfSaveOptions` | + +## Полный рабочий пример (весь код в одном месте) + +Для удобства представляем полную программу, которую можно скопировать в `Program.cs`. Она включает все обсуждённые опциональные настройки, но вы можете закомментировать ненужные части. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Что изучать дальше? + +Следующие руководства охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс включает полностью рабочие примеры кода с пошаговыми объяснениями, помогая вам освоить дополнительные возможности API и исследовать альтернативные подходы в собственных проектах. + +- [Конвертировать HTML в PDF в .NET с Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Конвертировать EPUB в PDF в .NET с Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Конвертировать SVG в PDF в .NET с Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/conversion-html-to-other-formats/_index.md b/html/spanish/java/conversion-html-to-other-formats/_index.md index 5c04b8250e..837429dcea 100644 --- a/html/spanish/java/conversion-html-to-other-formats/_index.md +++ b/html/spanish/java/conversion-html-to-other-formats/_index.md @@ -96,6 +96,8 @@ Aprende a convertir SVG a imágenes en Java con Aspose.HTML. Guía completa para Convierte SVG a PDF en Java con Aspose.HTML. Una solución fluida para conversiones de documentos de alta calidad. ### [Conversión de SVG a XPS](./convert-svg-to-xps/) Aprende a convertir SVG a XPS con Aspose.HTML para Java. Guía simple, paso a paso, para conversiones sin inconvenientes. +### [Cómo convertir un archivo HTML a PDF en C# – Guía paso a paso](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Aprende a convertir archivos HTML a PDF en C# paso a paso usando Aspose.HTML, con ejemplos claros y configuración personalizada. ## Preguntas Frecuentes diff --git a/html/spanish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/spanish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..c1c44862ae --- /dev/null +++ b/html/spanish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,319 @@ +--- +category: general +date: 2026-07-18 +description: Cómo convertir un archivo HTML a PDF en C# usando Aspose.PDF. Aprende + la conversión por lotes, opciones de PDF y genera PDF a partir de un documento HTML + con ejemplos de código claros. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: es +lastmod: 2026-07-18 +og_description: Cómo convertir un archivo HTML a PDF en C# con Aspose.PDF. Sigue esta + guía para convertir en lote archivos HTML a PDF y generar PDF a partir de un documento + HTML sin esfuerzo. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Cómo convertir un archivo HTML a PDF en C# – Guía completa de programación +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Cómo convertir un archivo HTML a PDF en C# – Guía paso a paso +url: /es/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo convertir un archivo HTML a PDF en C# – Guía completa de programación + +¿Alguna vez te has preguntado **cómo convertir un archivo HTML a PDF** usando C# sin volverte loco? No eres el único. Ya sea que estés construyendo un generador de informes, un motor de facturación o un exportador de sitios estáticos, convertir HTML en un PDF pulido es un requisito frecuente. + +En este tutorial recorreremos una solución lista‑para‑ejecutar que muestra **cómo convertir un archivo HTML a PDF** con Aspose.PDF, cómo **convertir HTML a PDF C#** en una sola llamada, e incluso cómo **convertir en lote archivos HTML a PDF** para escenarios a gran escala. Al final también sabrás cómo **generar PDF a partir de un documento HTML** con opciones personalizadas como tamaño de página, márgenes y manejo de imágenes. + +## Requisitos previos + +Antes de sumergirnos, asegúrate de tener: + +* .NET 6.0 SDK o posterior (el código también funciona en .NET Framework 4.6+). +* Visual Studio 2022 (o cualquier editor que prefieras). +* Una licencia activa de NuGet para **Aspose.PDF for .NET** – la prueba gratuita sirve para experimentar. +* Una carpeta que contenga uno o más archivos `.html` que deseas convertir a PDFs. + +¿Tienes todo? Genial—comencemos. + +## Paso 1: Configurar el proyecto e instalar Aspose.PDF + +Primero, crea una nueva aplicación de consola: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Ahora agrega el paquete Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +El paquete incluye la clase `Converter` que usaremos para **convertir HTML a PDF C#**. Sin DLLs adicionales, sin dependencias nativas—solo una referencia NuGet limpia. + +## Paso 2: Escribir la lógica central de conversión + +Abre `Program.cs` y reemplaza el código de ejemplo con el siguiente código. Cada línea está comentada para que puedas ver exactamente por qué está allí. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Por qué funciona + +* **`Converter.Convert`** es el núcleo de **cómo convertir un archivo HTML a PDF** en C#. Lee el HTML de origen, aplica `PdfSaveOptions` y escribe un PDF en una sola llamada. +* El bucle implementa **convertir en lote archivos HTML a PDF** sin que tengas que escribir código adicional. +* Ajustando `PdfSaveOptions` controlas el aspecto final, lo cual es esencial cuando necesitas **generar PDF a partir de un documento HTML** que coincida con la identidad corporativa. + +## Paso 3: Probar el convertidor con una muestra HTML simple + +Crea una subcarpeta llamada `html` junto a `Program.cs` y coloca un pequeño archivo llamado `sample.html` dentro: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Ejecuta el programa: + +```bash +dotnet run +``` + +Deberías ver una línea con una marca de verificación verde que confirma la conversión, y un archivo `sample.pdf` aparecerá en la carpeta `pdf`. Ábrelo—observa el color del encabezado, el enlace y los márgenes que configuraste en `PdfSaveOptions`. Esa es la prueba de que has dominado con éxito **cómo convertir un archivo HTML a PDF**. + +## Paso 4: Opciones avanzadas para escenarios del mundo real + +### 4.1 Manejo de recursos externos (CSS, Imágenes) + +Si tu HTML hace referencia a archivos CSS externos o imágenes, asegúrate de que las rutas sean absolutas o relativas al directorio del archivo HTML. Aspose.PDF las resuelve automáticamente, pero también puedes establecer una URL base: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Control de incrustación de fuentes + +A veces los PDFs corporativos requieren fuentes específicas. Puedes incrustar una fuente TrueType de esta manera: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Coloca tus archivos `.ttf` en la carpeta `fonts` y haz referencia a ellos en tu HTML mediante `@font-face`. + +### 4.3 Generar un solo PDF a partir de varios archivos HTML + +Si necesitas **generar PDF a partir de un documento HTML** que abarque varias páginas (p. ej., un informe de varios capítulos), puedes concatenar PDFs después de la conversión: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Manejo de errores y registro + +El código de producción debe protegerse contra HTML malformado o recursos faltantes. Envuelve la conversión en un bloque try‑catch y registra la excepción: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Paso 5: Verificar la salida programáticamente (Opcional) + +Si deseas asegurarte de que cada PDF generado contenga una palabra clave específica o un número de páginas, Aspose.PDF te permite inspeccionar los PDFs después de su creación: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Ese pequeño fragmento puede convertirse en parte de una suite de pruebas automatizada para tu canal **convertir HTML a PDF C#**. + +## Errores comunes y consejos profesionales + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| Las rutas de imágenes relativas se rompen | El convertidor se ejecuta desde un directorio de trabajo diferente | Establecer `pdfOptions.BaseUri` a la carpeta HTML | +| Las fuentes aparecen como sustitutos | Fuente no incrustada o falta en el servidor | Usar `FontEmbeddingMode.Always` y proporcionar los archivos de fuentes | +| Los archivos HTML grandes provocan picos de memoria | Todo el documento se carga en memoria | Procesar los archivos uno por uno (como se muestra) o aumentar `MemoryLimit` en las opciones | +| Los enlaces se convierten en texto plano | `PreserveHyperlinks` desactivado | Asegurar `PreserveHyperlinks = true` en `PdfSaveOptions` | + +## Ejemplo completo funcional (Todo el código en un solo lugar) + +Para mayor comodidad, aquí tienes el programa completo que puedes copiar y pegar en `Program.cs`. Incluye todos los ajustes opcionales discutidos arriba, pero puedes comentar las secciones que no necesites. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que amplían las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y funcionales con explicaciones paso a paso para ayudarte a dominar características adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Convertir HTML a PDF en .NET con Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convertir EPUB a PDF en .NET con Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convertir SVG a PDF en .NET con Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/conversion-html-to-other-formats/_index.md b/html/swedish/java/conversion-html-to-other-formats/_index.md index 91c83a46f3..997c9a5694 100644 --- a/html/swedish/java/conversion-html-to-other-formats/_index.md +++ b/html/swedish/java/conversion-html-to-other-formats/_index.md @@ -98,6 +98,8 @@ Konvertera SVG till PDF i Java med Aspose.HTML. En sömlös lösning för högkv Lär dig hur du konverterar SVG till XPS med Aspose.HTML for Java. Enkel, steg‑för‑steg‑guide för smidiga konverteringar. ### [Konvertera HTML till PDF i Java – Steg‑för‑steg‑guide med sidstorleksinställningar](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Lär dig konvertera HTML till PDF i Java med detaljerade steg och anpassa sidstorlek för optimal utskrift. +### [Hur du konverterar HTML‑fil till PDF i C# – Steg‑för‑steg‑guide](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Lär dig hur du konverterar en HTML‑fil till PDF i C# med Aspose.HTML, steg för steg med kodexempel. ## Vanliga frågor diff --git a/html/swedish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/swedish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..a73dc5b0ca --- /dev/null +++ b/html/swedish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,319 @@ +--- +category: general +date: 2026-07-18 +description: Hur man konverterar HTML‑fil till PDF i C# med Aspose.PDF. Lär dig batchkonvertering, + PDF‑alternativ och generera PDF från HTML‑dokument med tydliga kodexempel. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: sv +lastmod: 2026-07-18 +og_description: Hur du konverterar en HTML‑fil till PDF i C# med Aspose.PDF. Följ + den här guiden för att batchkonvertera HTML‑filer till PDF och enkelt generera PDF + från ett HTML‑dokument. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Hur man konverterar HTML‑fil till PDF i C# – Komplett programmeringsgenomgång +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Hur man konverterar HTML‑fil till PDF i C# – Steg‑för‑steg‑guide +url: /sv/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man konverterar HTML‑fil till PDF i C# – Komplett programmeringsgenomgång + +Har du någonsin undrat **hur man konverterar HTML‑fil till PDF** med C# utan att dra i håret? Du är inte ensam. Oavsett om du bygger en rapportgenerator, en fakturamotor eller en exportör för statiska webbplatser, är det en vanlig uppgift att omvandla HTML till en polerad PDF. + +I den här handledningen går vi igenom en färdig, körbar lösning som visar **hur man konverterar HTML‑fil till PDF** med Aspose.PDF, hur man **konverterar HTML till PDF C#** i ett enda anrop, och även hur man **batch‑konverterar HTML‑filer till PDF** för storskaliga scenarier. I slutet vet du också hur du **genererar PDF från HTML‑dokument** med anpassade alternativ som sidstorlek, marginaler och bildhantering. + +## Förutsättningar + +Innan vi dyker ner, se till att du har: + +* .NET 6.0 SDK eller senare (koden fungerar även på .NET Framework 4.6+) +* Visual Studio 2022 (eller någon annan editor du föredrar) +* En aktiv NuGet‑licens för **Aspose.PDF for .NET** – gratis provversion räcker för experiment +* En mapp som innehåller en eller flera `.html`‑filer du vill omvandla till PDF + +Har du allt? Bra – låt oss börja. + +## Steg 1: Skapa projektet och installera Aspose.PDF + +Skapa först en ny konsolapp: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Lägg sedan till Aspose.PDF‑paketet: + +```bash +dotnet add package Aspose.PDF +``` + +Paketet medför klassen `Converter` som vi kommer att använda för att **konvertera HTML till PDF C#**‑stil. Inga extra DLL‑filer, inga inhemska beroenden – bara en ren NuGet‑referens. + +## Steg 2: Skriv den centrala konverteringslogiken + +Öppna `Program.cs` och ersätt standardkoden med följande kod. Varje rad är kommenterad så att du exakt kan se varför den finns där. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Varför detta fungerar + +* **`Converter.Convert`** är kärnan i **hur man konverterar HTML‑fil till PDF** i C#. Den läser käll‑HTML, tillämpar `PdfSaveOptions` och skriver en PDF i ett enda anrop. +* Loopen implementerar **batch‑konvertera HTML‑filer till PDF** utan att du behöver skriva extra kod. +* Genom att justera `PdfSaveOptions` styr du det slutgiltiga utseendet, vilket är avgörande när du måste **generera PDF från HTML‑dokument** som matchar företagets varumärke. + +## Steg 3: Testa konverteraren med ett enkelt HTML‑exempel + +Skapa en undermapp som heter `html` bredvid `Program.cs` och lägg i en liten fil med namnet `sample.html`: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Kör programmet: + +```bash +dotnet run +``` + +Du bör se en grön bock‑rad som bekräftar konverteringen, och en `sample.pdf`‑fil kommer att dyka upp i `pdf`‑mappen. Öppna den – notera rubrikens färg, länken och marginalerna du satte i `PdfSaveOptions`. Det är beviset på att du framgångsrikt har bemästrat **hur man konverterar HTML‑fil till PDF**. + +## Steg 4: Avancerade alternativ för verkliga scenarier + +### 4.1 Hantera externa resurser (CSS, bilder) + +Om ditt HTML refererar till externa CSS‑filer eller bilder, se till att sökvägarna är absoluta eller relativa till HTML‑filens katalog. Aspose.PDF löser dem automatiskt, men du kan också ange en bas‑URL: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Styrning av teckensnittsinbäddning + +Ibland kräver företags‑PDF:er specifika teckensnitt. Du kan bädda in ett TrueType‑teckensnitt så här: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Placera dina `.ttf`‑filer i mappen `fonts` och referera dem i ditt HTML via `@font-face`. + +### 4.3 Generera en enda PDF från flera HTML‑filer + +Om du behöver **generera PDF från HTML‑dokument** som sträcker sig över flera sidor (t.ex. en flerkapitelsrapport), kan du sammanfoga PDF‑filer efter konvertering: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Felhantering och loggning + +Produktionskod bör skydda mot felaktig HTML eller saknade resurser. Omge konverteringen med ett try‑catch‑block och logga undantaget: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Steg 5: Verifiera resultatet programatiskt (valfritt) + +Om du vill säkerställa att varje genererad PDF innehåller ett specifikt nyckelord eller ett visst sidantal, låter Aspose.PDF dig inspektera PDF‑filerna efter skapandet: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +Det lilla kodsnutten kan bli en del av en automatiserad testsvit för din **convert HTML to PDF C#**‑pipeline. + +## Vanliga fallgropar och pro‑tips + +| Fallgrop | Varför det händer | Lösning | +|----------|-------------------|---------| +| Relativa bildvägar går sönder | `Converter` körs från en annan arbetskatalog | Sätt `pdfOptions.BaseUri` till HTML‑mappen | +| Teckensnitt visas som ersättningar | Teckensnittet är inte inbäddat eller saknas på servern | Använd `FontEmbeddingMode.Always` och tillhandahåll teckensnittsfilerna | +| Stora HTML‑filer ger minnesspikar | Hela dokumentet laddas in i minnet | Bearbeta filer en‑och‑en (som visat) eller öka `MemoryLimit` i alternativ | +| Länkar blir vanlig text | `PreserveHyperlinks` är inaktiverat | Säkerställ `PreserveHyperlinks = true` i `PdfSaveOptions` | + +## Fullt fungerande exempel (All kod på ett ställe) + +För enkelhets skull är här hela programmet som du kan kopiera‑klistra in i `Program.cs`. Det innehåller alla de valfria justeringar som diskuterats ovan, men du kan kommentera bort sektioner du inte behöver. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Vad du bör lära dig härnäst? + + +Följande handledningar täcker närbesläktade ämnen som bygger vidare på teknikerna som demonstrerats i den här guiden. Varje resurs innehåller kompletta kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementationsmetoder i dina egna projekt. + +- [Convert HTML to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convert SVG to PDF in .NET with Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/conversion-html-to-other-formats/_index.md b/html/thai/java/conversion-html-to-other-formats/_index.md index aa3e49be5d..13feda504f 100644 --- a/html/thai/java/conversion-html-to-other-formats/_index.md +++ b/html/thai/java/conversion-html-to-other-formats/_index.md @@ -107,6 +107,8 @@ Aspose.HTML for Java ทำให้กระบวนการแปลง HTML แปลง SVG เป็น PDF ใน Java ด้วย Aspose.HTML โซลูชันที่ไร้รอยต่อสำหรับการแปลงเอกสารคุณภาพสูง ### [Converting SVG to XPS](./convert-svg-to-xps/) เรียนรู้วิธีแปลง SVG เป็น XPS ด้วย Aspose.HTML for Java คู่มือขั้นตอน‑ต่อ‑ขั้นตอนที่ง่ายสำหรับการแปลงที่ไร้รอยต่อ +### [วิธีแปลงไฟล์ HTML เป็น PDF ใน C# – คู่มือขั้นตอน‑โดย‑ขั้นตอน](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +เรียนรู้วิธีแปลงไฟล์ HTML เป็น PDF ใน C# อย่างละเอียดด้วยขั้นตอนที่ชัดเจน ## คำถามที่พบบ่อย diff --git a/html/thai/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/thai/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..ed7e06000c --- /dev/null +++ b/html/thai/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,317 @@ +--- +category: general +date: 2026-07-18 +description: วิธีแปลงไฟล์ HTML เป็น PDF ใน C# ด้วย Aspose.PDF เรียนรู้การแปลงเป็นชุด + ตัวเลือก PDF และสร้าง PDF จากเอกสาร HTML พร้อมตัวอย่างโค้ดที่ชัดเจน +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: th +lastmod: 2026-07-18 +og_description: วิธีแปลงไฟล์ HTML เป็น PDF ใน C# ด้วย Aspose.PDF. ปฏิบัติตามคำแนะนำนี้เพื่อแปลงไฟล์ + HTML เป็น PDF เป็นชุดและสร้าง PDF จากเอกสาร HTML อย่างง่ายดาย. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: วิธีแปลงไฟล์ HTML เป็น PDF ใน C# – คู่มือการเขียนโปรแกรมเต็มรูปแบบ +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: วิธีแปลงไฟล์ HTML เป็น PDF ด้วย C# – คู่มือขั้นตอนโดยละเอียด +url: /th/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีแปลงไฟล์ HTML เป็น PDF ด้วย C# – คู่มือการเขียนโปรแกรมอย่างครบถ้วน + +เคยสงสัย **วิธีแปลงไฟล์ HTML เป็น PDF** ด้วย C# โดยไม่ต้องบิดหัวไหม? คุณไม่ได้เป็นคนเดียว ไม่ว่าจะเป็นการสร้างตัวสร้างรายงาน, เครื่องมือออกใบแจ้งหนี้, หรือการส่งออกเว็บไซต์แบบสถิต, การแปลง HTML ให้เป็น PDF ที่ดูเป็นมืออาชีพเป็นความต้องการที่พบบ่อย + +ในบทเรียนนี้เราจะพาคุณผ่านโซลูชันที่พร้อมรันที่แสดง **วิธีแปลงไฟล์ HTML เป็น PDF** ด้วย Aspose.PDF, วิธี **แปลง HTML เป็น PDF C#** ด้วยการเรียกครั้งเดียว, และแม้กระทั่ง **แปลงไฟล์ HTML เป็น PDF เป็นชุด** สำหรับสถานการณ์ขนาดใหญ่ เมื่อเสร็จแล้วคุณจะรู้วิธี **สร้าง PDF จากเอกสาร HTML** พร้อมตัวเลือกกำหนดเองเช่น ขนาดหน้า, ระยะขอบ, และการจัดการรูปภาพ + +## ข้อกำหนดเบื้องต้น + +ก่อนที่เราจะดำเนินการต่อ, โปรดตรวจสอบว่าคุณมี: + +* .NET 6.0 SDK หรือใหม่กว่า (โค้ดนี้ทำงานบน .NET Framework 4.6+ ด้วย) +* Visual Studio 2022 (หรือเครื่องมือแก้ไขที่คุณชอบ) +* ใบอนุญาต NuGet ที่ใช้งานได้สำหรับ **Aspose.PDF for .NET** – รุ่นทดลองฟรีเพียงพอสำหรับการทดลอง +* โฟลเดอร์ที่มีไฟล์ `.html` หนึ่งไฟล์หรือหลายไฟล์ที่คุณต้องการแปลงเป็น PDF + +ทุกอย่างพร้อมหรือยัง? ดีมาก—มาเริ่มกันเลย + +## ขั้นตอนที่ 1: ตั้งค่าโปรเจกต์และติดตั้ง Aspose.PDF + +แรกเริ่ม, สร้างแอปคอนโซลใหม่: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +จากนั้นเพิ่มแพ็กเกจ Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +แพ็กเกจนี้จะนำเข้าคลาส `Converter` ที่เราจะใช้เพื่อ **แปลง HTML เป็น PDF C#** ไม่ต้อง DLL เพิ่มเติม, ไม่ต้องพึ่งพา native dependencies—แค่การอ้างอิง NuGet ที่สะอาด + +## ขั้นตอนที่ 2: เขียนตรรกะการแปลงหลัก + +เปิดไฟล์ `Program.cs` และแทนที่โค้ดพื้นฐานด้วยโค้ดต่อไปนี้ ทุกบรรทัดมีคอมเมนต์เพื่อให้คุณเข้าใจเหตุผลของมัน + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### ทำไมวิธีนี้ถึงได้ผล + +* **`Converter.Convert`** เป็นหัวใจของ **วิธีแปลงไฟล์ HTML เป็น PDF** ใน C#. มันอ่าน HTML ต้นฉบับ, ใช้ `PdfSaveOptions`, และเขียน PDF ในการเรียกครั้งเดียว +* ลูปนี้ทำให้ **แปลงไฟล์ HTML เป็น PDF เป็นชุด** โดยไม่ต้องเขียนโค้ดซ้ำซ้อน +* การปรับ `PdfSaveOptions` จะควบคุมลักษณะสุดท้าย, ซึ่งสำคัญเมื่อคุณต้อง **สร้าง PDF จากเอกสาร HTML** ที่ต้องสอดคล้องกับแบรนด์ของบริษัท + +## ขั้นตอนที่ 3: ทดสอบคอนเวอร์เตอร์ด้วยตัวอย่าง HTML ง่าย + +สร้างโฟลเดอร์ย่อยชื่อ `html` ข้างไฟล์ `Program.cs` แล้ววางไฟล์ขนาดเล็กชื่อ `sample.html` ไว้ด้านใน: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +รันโปรแกรม: + +```bash +dotnet run +``` + +คุณควรเห็นบรรทัดเครื่องหมายถูกสีเขียวยืนยันการแปลง, และไฟล์ `sample.pdf` จะปรากฏในโฟลเดอร์ `pdf` เปิดไฟล์นั้น—สังเกตสีหัวเรื่อง, ลิงก์, และระยะขอบที่คุณตั้งค่าใน `PdfSaveOptions` นั่นคือหลักฐานว่าคุณได้เชี่ยวชาญ **วิธีแปลงไฟล์ HTML เป็น PDF** แล้ว + +## ขั้นตอนที่ 4: ตัวเลือกขั้นสูงสำหรับสถานการณ์จริง + +### 4.1 การจัดการทรัพยากรภายนอก (CSS, รูปภาพ) + +หาก HTML ของคุณอ้างอิงไฟล์ CSS หรือรูปภาพภายนอก, ตรวจสอบให้แน่ใจว่าเส้นทางเป็นแบบ absolute หรือ relative กับไดเรกทอรีของไฟล์ HTML. Aspose.PDF จะ resolve อัตโนมัติ, แต่คุณก็สามารถตั้งค่า base URL ได้เช่นกัน: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 การควบคุมการฝังฟอนต์ + +บางครั้ง PDF ของบริษัทต้องการฟอนต์เฉพาะ คุณสามารถฝังฟอนต์ TrueType ได้ดังนี้: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +วางไฟล์ `.ttf` ของคุณในโฟลเดอร์ `fonts` แล้วอ้างอิงใน HTML ผ่าน `@font-face` + +### 4.3 การสร้าง PDF เดียวจากหลายไฟล์ HTML + +หากคุณต้อง **สร้าง PDF จากเอกสาร HTML** ที่มีหลายหน้า (เช่น รายงานหลายบท), คุณสามารถต่อ PDF หลังจากแปลงได้: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 การจัดการข้อผิดพลาดและการบันทึก + +โค้ดในสภาพการผลิตควรป้องกัน HTML ที่ผิดรูปหรือทรัพยากรที่หายไป. ห่อการแปลงด้วยบล็อก try‑catch และบันทึกข้อยกเว้น: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## ขั้นตอนที่ 5: ตรวจสอบผลลัพธ์ด้วยโปรแกรม (ทางเลือก) + +หากคุณต้องการยืนยันว่า PDF ที่สร้างแต่ละไฟล์มีคีย์เวิร์ดหรือจำนวนหน้าที่กำหนด, Aspose.PDF ให้คุณตรวจสอบ PDF หลังการสร้างได้: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +สคริปต์สั้น ๆ นี้สามารถเป็นส่วนหนึ่งของชุดทดสอบอัตโนมัติสำหรับ **แปลง HTML เป็น PDF C#** pipeline ของคุณ + +## ข้อผิดพลาดทั่วไปและเคล็ดลับระดับมืออาชีพ + +| ปัญหา | สาเหตุ | วิธีแก้ | +|---------|----------------|-----| +| เส้นทางรูปภาพแบบ relative ขัดข้อง | ตัวแปลงทำงานจากไดเรกทอรีทำงานที่ต่างกัน | ตั้งค่า `pdfOptions.BaseUri` ให้เป็นโฟลเดอร์ HTML | +| ฟอนต์แสดงเป็นตัวแทน | ฟอนต์ไม่ได้ฝังหรือไม่มีบนเซิร์ฟเวอร์ | ใช้ `FontEmbeddingMode.Always` และจัดเตรียมไฟล์ฟอนต์ | +| ไฟล์ HTML ขนาดใหญ่ทำให้ใช้หน่วยความจำสูง | โหลดเอกสารทั้งหมดเข้าสู่หน่วยความจำ | แปลงไฟล์ทีละหนึ่ง (ตามตัวอย่าง) หรือเพิ่ม `MemoryLimit` ในตัวเลือก | +| ลิงก์กลายเป็นข้อความธรรมดา | `PreserveHyperlinks` ถูกปิด | ตรวจสอบให้ `PreserveHyperlinks = true` ใน `PdfSaveOptions` | + +## ตัวอย่างทำงานเต็มรูปแบบ (โค้ดทั้งหมดในที่เดียว) + +เพื่อความสะดวก, นี่คือโปรแกรมทั้งหมดที่คุณสามารถคัดลอก‑วางลงใน `Program.cs`. รวมการปรับแต่งทางเลือกทั้งหมดที่กล่าวถึงข้างต้น, แต่คุณสามารถคอมเมนต์ส่วนที่ไม่ต้องการได้ + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## คุณควรเรียนรู้อะไรต่อไป? + +บทเรียนต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้. แต่ละแหล่งข้อมูลมีโค้ดตัวอย่างทำงานเต็มรูปแบบพร้อมคำอธิบายขั้นตอนเพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจวิธีการทำงานทางเลือกในโครงการของคุณเอง. + +- [Convert HTML to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Convert SVG to PDF in .NET with Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/conversion-html-to-other-formats/_index.md b/html/turkish/java/conversion-html-to-other-formats/_index.md index b9af7690c4..47f40803c2 100644 --- a/html/turkish/java/conversion-html-to-other-formats/_index.md +++ b/html/turkish/java/conversion-html-to-other-formats/_index.md @@ -99,6 +99,8 @@ Aspose.HTML ile Java'da SVG'yi görüntülere dönüştürmeyi öğrenin. Yükse Aspose.HTML ile Java'da SVG'yi PDF'ye dönüştürün. Yüksek kaliteli belge dönüşümü için sorunsuz bir çözüm. ### [SVG'yi XPS'ye Dönüştürme](./convert-svg-to-xps/) Aspose.HTML for Java ile SVG'yi XPS'ye dönüştürmeyi öğrenin. Sorunsuz dönüşümler için basit, adım adım rehber. +### [HTML'yi PDF'ye Dönüştürme – C# Adım‑Adım Kılavuz](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +C# ile HTML dosyasını PDF'ye dönüştürmek için adım adım rehber. ## Sıkça Sorulan Sorular diff --git a/html/turkish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/turkish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..0daf7fb5c5 --- /dev/null +++ b/html/turkish/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,315 @@ +--- +category: general +date: 2026-07-18 +description: Aspose.PDF kullanarak C#’ta HTML dosyasını PDF’ye nasıl dönüştüreceğinizi + öğrenin. Toplu dönüşüm, PDF seçenekleri ve net kod örnekleriyle HTML belgesinden + PDF oluşturmayı keşfedin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: tr +lastmod: 2026-07-18 +og_description: C# ile Aspose.PDF kullanarak HTML dosyasını PDF'ye nasıl dönüştürürsünüz. + Bu kılavuzu izleyerek HTML dosyalarını toplu olarak PDF'ye dönüştürün ve HTML belgesinden + PDF'yi zahmetsizce oluşturun. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: C# ile HTML Dosyasını PDF'ye Nasıl Dönüştürürsünüz – Tam Programlama Rehberi +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: C#'ta HTML Dosyasını PDF'ye Dönüştürme – Adım Adım Rehber +url: /tr/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML Dosyasını PDF'e Dönüştürme C# – Tam Programlama Rehberi + +C# kullanarak **HTML dosyasını PDF'e nasıl dönüştüreceğinizi** merak ettiniz mi? Tek başınıza değilsiniz. Rapor oluşturucu, fatura motoru ya da statik‑site dışa aktarımı gibi bir şeyler geliştiriyor olun, HTML'yi şık bir PDF'e dönüştürmek sıkça ihtiyaç duyulan bir gereksinim. + +Bu öğreticide, Aspose.PDF ile **how to convert HTML file to PDF** gösteren, tek bir çağrıda **convert HTML to PDF C#** yapan ve büyük ölçekli senaryolar için **batch convert HTML files to PDF** gerçekleştiren hazır‑çalışır bir çözümü adım adım inceleyeceğiz. Sonunda, sayfa boyutu, kenar boşlukları ve görüntü işleme gibi özelleştirilmiş seçeneklerle **generate PDF from HTML document** nasıl yapılacağını da öğreneceksiniz. + +## Önkoşullar + +* .NET 6.0 SDK veya daha yeni (kod .NET Framework 4.6+ üzerinde de çalışır) +* Visual Studio 2022 (veya tercih ettiğiniz herhangi bir editör) +* Aktif bir NuGet lisansı **Aspose.PDF for .NET** – ücretsiz deneme sürümü deneyler için yeterlidir +* PDF'ye dönüştürmek istediğiniz bir veya daha fazla `.html` dosyası içeren bir klasör + +Her şey hazır mı? Harika—başlayalım. + +## 1. Adım: Projeyi Kurun ve Aspose.PDF'yi Yükleyin + +İlk olarak yeni bir konsol uygulaması oluşturun: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Şimdi Aspose.PDF paketini ekleyin: + +```bash +dotnet add package Aspose.PDF +``` + +Paket, **convert HTML to PDF C#** stilinde **HTML'yi PDF'e dönüştürmek** için kullanacağımız `Converter` sınıfını getirir. Ek DLL'ler, yerel bağımlılıklar yok—sadece temiz bir NuGet referansı. + +## 2. Adım: Çekirdek Dönüştürme Mantığını Yazın + +`Program.cs` dosyasını açın ve aşağıdaki kodla şablonu değiştirin. Her satır yorumlanmıştır, böylece neden orada olduğunu tam olarak görebilirsiniz. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Neden Bu Çalışıyor + +* **`Converter.Convert`** C# içinde **how to convert HTML file to PDF** işleminin kalbidir. Kaynak HTML'yi okur, `PdfSaveOptions` uygular ve tek bir çağrıda PDF yazar. +* Döngü, ekstra şablon yazmadan **batch convert HTML files to PDF** işlemini gerçekleştirir. +* `PdfSaveOptions` ayarlarını değiştirerek nihai görünümü kontrol edersiniz; bu, kurumsal marka kimliğine uygun **generate PDF from HTML document** oluşturmanız gerektiğinde kritiktir. + +## 3. Adım: Basit Bir HTML Örneğiyle Dönüştürücüyü Test Edin + +`Program.cs` yanına `html` adlı bir alt klasör oluşturun ve içine `sample.html` adlı küçük bir dosya bırakın: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Programı çalıştırın: + +```bash +dotnet run +``` + +Yeşil onay işareti satırını görmeli ve `pdf` klasöründe bir `sample.pdf` dosyası oluşmuş olmalı. Açın—başlık rengi, bağlantı ve `PdfSaveOptions` içinde ayarladığınız kenar boşluklarını fark edin. Bu, **how to convert HTML file to PDF** konusunda başarılı olduğunuzun kanıtıdır. + +## 4. Adım: Gerçek Dünya Senaryoları İçin İleri Seçenekler + +### 4.1 Dış Kaynakların (CSS, Görseller) Yönetimi + +HTML'niz dış CSS dosyalarına veya görsellere referans veriyorsa, yolların mutlak ya da HTML dosyasının dizinine göre göreceli olduğundan emin olun. Aspose.PDF bunları otomatik çözer, ancak bir temel URL de ayarlayabilirsiniz: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Yazı Tipi Gömme Kontrolü + +Bazen kurumsal PDF'lerde belirli yazı tipleri gerekir. Bir TrueType yazı tipini şu şekilde gömebilirsiniz: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +`.ttf` dosyalarınızı `fonts` klasörüne koyun ve HTML içinde `@font-face` ile referans verin. + +### 4.3 Birden Çok HTML Dosyasından Tek PDF Oluşturma + +Birden fazla sayfaya yayılan **generate PDF from HTML document** ihtiyacınız varsa (ör. çok bölümlü bir rapor), dönüşümden sonra PDF'leri birleştirebilirsiniz: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Hata Yönetimi ve Günlük Kaydı + +Üretim kodu, hatalı HTML veya eksik kaynaklara karşı koruma sağlamalıdır. Dönüştürmeyi bir try‑catch bloğuna sarın ve istisnayı günlüğe kaydedin: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## 5. Adım: Çıktıyı Programatik Olarak Doğrulayın (İsteğe Bağlı) + +Her oluşturulan PDF'nin belirli bir anahtar kelime veya sayfa sayısı içerdiğinden emin olmak istiyorsanız, Aspose.PDF oluşturma sonrası PDF'leri incelemenize olanak tanır: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +## Yaygın Tuzaklar ve Profesyonel İpuçları + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|-------| +| Göreceli görsel yolları kırılır | Dönüştürücü farklı bir çalışma dizininden çalışıyor | `pdfOptions.BaseUri` değerini HTML klasörüne ayarlayın | +| Yazı tipleri yerine yedek gösterilir | Yazı tipi gömülmemiş veya sunucuda eksik | `FontEmbeddingMode.Always` kullanın ve yazı tipi dosyalarını sağlayın | +| Büyük HTML dosyaları bellek dalgalanmalarına neden olur | Tüm belge belleğe yüklenir | Dosyaları tek tek işleyin (gösterildiği gibi) veya seçeneklerde `MemoryLimit` değerini artırın | +| Bağlantılar düz metin olur | `PreserveHyperlinks` devre dışı | `PdfSaveOptions` içinde `PreserveHyperlinks = true` olduğundan emin olun | + +## Tam Çalışan Örnek (Tüm Kod Tek Bir Yerde) + +Kolaylık olması açısından, `Program.cs` içine kopyalayıp yapıştırabileceğiniz tüm programı burada sunuyoruz. Yukarıda tartışılan isteğe bağlı ayarları içerir, ancak ihtiyacınız olmayan bölümleri yorum satırı haline getirebilirsiniz. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Sonra Ne Öğrenmelisiniz? + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanarak yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini ustalaşmanıza ve kendi projelerinizde alternatif uygulama yaklaşımlarını keşfetmenize yardımcı olacak tam çalışan kod örnekleri ve adım adım açıklamalar içerir. + +- [Aspose.HTML ile .NET'te HTML'yi PDF'e Dönüştürme](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Aspose.HTML ile .NET'te EPUB'yi PDF'e Dönüştürme](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Aspose.HTML ile .NET'te SVG'yi PDF'e Dönüştürme](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/conversion-html-to-other-formats/_index.md b/html/vietnamese/java/conversion-html-to-other-formats/_index.md index ec6e7a78c1..281c9fa6fc 100644 --- a/html/vietnamese/java/conversion-html-to-other-formats/_index.md +++ b/html/vietnamese/java/conversion-html-to-other-formats/_index.md @@ -109,6 +109,9 @@ Chuyển đổi SVG sang PDF trong Java với Aspose.HTML. Giải pháp liền m ### [Chuyển đổi SVG sang XPS](./convert-svg-to-xps/) Tìm hiểu cách chuyển đổi SVG sang XPS với Aspose.HTML for Java. Hướng dẫn đơn giản, từng bước để chuyển đổi liền mạch. +### [Cách chuyển đổi tệp HTML sang PDF trong C# – Hướng dẫn từng bước](./how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/) +Hướng dẫn chi tiết cách chuyển đổi tệp HTML sang PDF trong C# bằng Aspose.HTML, bao gồm các bước cấu hình và tối ưu. + ## Câu hỏi thường gặp **Q: Tôi có thể sử dụng Aspose.HTML cho Java trong một ứng dụng thương mại không?** diff --git a/html/vietnamese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md b/html/vietnamese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..5616bf5073 --- /dev/null +++ b/html/vietnamese/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/_index.md @@ -0,0 +1,315 @@ +--- +category: general +date: 2026-07-18 +description: Cách chuyển đổi tệp HTML sang PDF trong C# bằng Aspose.PDF. Tìm hiểu + chuyển đổi hàng loạt, các tùy chọn PDF và tạo PDF từ tài liệu HTML với các ví dụ + mã rõ ràng. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to convert html file to pdf +- convert html to pdf c# +- batch convert html files to pdf +- generate pdf from html document +language: vi +lastmod: 2026-07-18 +og_description: Cách chuyển đổi tệp HTML sang PDF trong C# với Aspose.PDF. Hãy làm + theo hướng dẫn này để chuyển đổi hàng loạt các tệp HTML sang PDF và tạo PDF từ tài + liệu HTML một cách dễ dàng. +og_image_alt: Diagram showing how to convert HTML file to PDF using C# code +og_title: Cách chuyển đổi tệp HTML sang PDF trong C# – Hướng dẫn lập trình chi tiết +schemas: +- author: Aspose + dateModified: '2026-07-18' + description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + headline: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + type: TechArticle +- description: How to convert HTML file to PDF in C# using Aspose.PDF. Learn batch + conversion, PDF options, and generate PDF from HTML document with clear code examples. + name: How to Convert HTML File to PDF in C# – Step‑by‑Step Guide + steps: + - name: Why This Works + text: '* **`Converter.Convert`** is the heart of **how to convert HTML file to + PDF** in C#. It reads the source HTML, applies the `PdfSaveOptions`, and writes + a PDF in a single call. * The loop implements **batch convert HTML files to + PDF** without you writing extra boilerplate. * By adjusting `PdfSaveOpti' + - name: 4.1 Handling External Resources (CSS, Images) + text: 'If your HTML references external CSS files or images, make sure the paths + are absolute or relative to the HTML file’s directory. Aspose.PDF resolves them + automatically, but you can also set a base URL:' + - name: 4.2 Controlling Font Embedding + text: 'Sometimes corporate PDFs require specific fonts. You can embed a TrueType + font like this:' + - name: 4.3 Generating a Single PDF from Multiple HTML Files + text: 'If you need to **generate PDF from HTML document** that spans several pages + (e.g., a multi‑chapter report), you can concatenate PDFs after conversion:' + - name: 4.4 Error Handling and Logging + text: 'Production code should guard against malformed HTML or missing resources. + Wrap the conversion in a try‑catch block and log the exception:' + type: HowTo +tags: +- C# +- PDF +- HTML conversion +title: Cách Chuyển Đổi Tệp HTML Sang PDF trong C# – Hướng Dẫn Từng Bước +url: /vi/java/conversion-html-to-other-formats/how-to-convert-html-file-to-pdf-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Chuyển Đổi Tệp HTML Sang PDF trong C# – Hướng Dẫn Lập Trình Toàn Diện + +Bạn đã bao giờ tự hỏi **cách chuyển đổi tệp HTML sang PDF** bằng C# mà không phải rối rắm không? Bạn không phải là người duy nhất. Dù bạn đang xây dựng một công cụ tạo báo cáo, một engine xuất hoá đơn, hay một trình xuất trang tĩnh, việc chuyển HTML thành PDF hoàn chỉnh là một yêu cầu thường xuyên. + +Trong hướng dẫn này, chúng tôi sẽ đi qua một giải pháp sẵn sàng chạy cho thấy **cách chuyển đổi tệp HTML sang PDF** với Aspose.PDF, cách **chuyển đổi HTML sang PDF C#** trong một lần gọi, và thậm chí cách **chuyển đổi hàng loạt các tệp HTML sang PDF** cho các kịch bản quy mô lớn. Khi kết thúc, bạn cũng sẽ biết cách **tạo PDF từ tài liệu HTML** với các tùy chọn tùy chỉnh như kích thước trang, lề và xử lý hình ảnh. + +## Yêu Cầu Trước + +* .NET 6.0 SDK hoặc phiên bản mới hơn (mã cũng hoạt động trên .NET Framework 4.6+) +* Visual Studio 2022 (hoặc bất kỳ trình soạn thảo nào bạn thích) +* Một giấy phép NuGet đang hoạt động cho **Aspose.PDF for .NET** – bản dùng thử miễn phí đủ cho việc thử nghiệm +* Một thư mục chứa một hoặc nhiều tệp `.html` mà bạn muốn chuyển thành PDF + +Mọi thứ đã sẵn sàng? Tuyệt—bây giờ chúng ta bắt đầu. + +## Bước 1: Thiết Lập Dự Án và Cài Đặt Aspose.PDF + +Đầu tiên, tạo một ứng dụng console mới: + +```bash +dotnet new console -n HtmlToPdfDemo +cd HtmlToPdfDemo +``` + +Bây giờ thêm gói Aspose.PDF: + +```bash +dotnet add package Aspose.PDF +``` + +Gói này cung cấp lớp `Converter` mà chúng ta sẽ dùng để **chuyển đổi HTML sang PDF C#**. Không có DLL phụ, không có phụ thuộc gốc—chỉ một tham chiếu NuGet sạch sẽ. + +## Bước 2: Viết Logic Chuyển Đổi Cốt Lõi + +Mở `Program.cs` và thay thế phần khung mẫu bằng đoạn mã sau. Mỗi dòng đều có chú thích để bạn có thể thấy chính xác lý do tại sao nó có ở đó. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; // Core PDF classes +using Aspose.Pdf.Devices; // Optional: for rendering PDFs as images +using Aspose.Pdf.HtmlSaveOptions; // Optional: for HTML‑to‑PDF settings + +class Program +{ + static void Main() + { + // 👉 1️⃣ Define source and destination folders + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + + // Ensure the output folder exists + Directory.CreateDirectory(outputFolder); + + // 👉 2️⃣ Grab every *.html file – this is the basis for batch conversion + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found in the source folder."); + return; + } + + // 👉 3️⃣ Loop through each file and convert it + foreach (var htmlPath in htmlFiles) + { + // Extract just the file name without extension for the PDF name + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + // 👉 4️⃣ Set up PDF save options – you can tweak these to suit your needs + var pdfOptions = new PdfSaveOptions + { + // Example: force A4 page size, 1‑inch margins + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), // 1 inch = 72 points + // Preserve hyperlinks from the original HTML + PreserveHyperlinks = true, + // Render CSS @media print rules if present + RenderPrintMedia = true + }; + + // 👉 5️⃣ Perform the conversion – this is the one‑liner that actually does the work + Converter.Convert(htmlPath, pdfOptions, pdfPath); + + Console.WriteLine($"✅ Converted '{fileName}.html' → '{fileName}.pdf'"); + } + + Console.WriteLine("\nAll done! PDFs are located in the 'pdf' folder."); + } +} +``` + +### Tại Sao Cách Này Hoạt Động + +- **`Converter.Convert`** là trung tâm của **cách chuyển đổi tệp HTML sang PDF** trong C#. Nó đọc HTML nguồn, áp dụng `PdfSaveOptions`, và ghi ra PDF trong một lần gọi. +- Vòng lặp thực hiện **chuyển đổi hàng loạt các tệp HTML sang PDF** mà không cần bạn viết khung mẫu thêm. +- Bằng cách điều chỉnh `PdfSaveOptions` bạn kiểm soát giao diện cuối cùng, điều này rất quan trọng khi bạn cần **tạo PDF từ tài liệu HTML** phù hợp với thương hiệu công ty. + +## Bước 3: Kiểm Tra Bộ Chuyển Đổi với Một Mẫu HTML Đơn Giản + +Tạo một thư mục con có tên `html` bên cạnh `Program.cs` và đặt một tệp nhỏ tên `sample.html` vào bên trong: + +```html + + + + Demo PDF + + + +

    Hello, PDF World!

    +

    This PDF was generated from an HTML file using C#.

    + Visit Example.com + + +``` + +Chạy chương trình: + +```bash +dotnet run +``` + +Bạn sẽ thấy một dòng dấu kiểm màu xanh lá cây xác nhận việc chuyển đổi, và một tệp `sample.pdf` sẽ xuất hiện trong thư mục `pdf`. Mở nó—chú ý màu tiêu đề, liên kết và các lề bạn đã đặt trong `PdfSaveOptions`. Đó là bằng chứng rằng bạn đã thành thạo **cách chuyển đổi tệp HTML sang PDF**. + +## Bước 4: Các Tùy Chọn Nâng Cao cho Các Kịch Bản Thực Tế + +### 4.1 Xử Lý Tài Nguyên Ngoài (CSS, Hình Ảnh) + +Nếu HTML của bạn tham chiếu tới các tệp CSS hoặc hình ảnh bên ngoài, hãy đảm bảo các đường dẫn là tuyệt đối hoặc tương đối so với thư mục của tệp HTML. Aspose.PDF sẽ tự động giải quyết chúng, nhưng bạn cũng có thể đặt một URL cơ sở: + +```csharp +pdfOptions.BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar); +``` + +### 4.2 Kiểm Soát Nhúng Phông + +Đôi khi các PDF doanh nghiệp yêu cầu phông chữ cụ thể. Bạn có thể nhúng phông TrueType như sau: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Always; +pdfOptions.FontsDirectory = Path.Combine(Directory.GetCurrentDirectory(), "fonts"); +``` + +Đặt các tệp `.ttf` của bạn vào thư mục `fonts` và tham chiếu chúng trong HTML của bạn qua `@font-face`. + +### 4.3 Tạo Một PDF Đơn Từ Nhiều Tệp HTML + +Nếu bạn cần **tạo PDF từ tài liệu HTML** trải dài trên nhiều trang (ví dụ, một báo cáo đa chương), bạn có thể nối các PDF lại sau khi chuyển đổi: + +```csharp +var finalDoc = new Document(); // empty PDF + +foreach (var htmlPath in htmlFiles) +{ + var tempPdf = new Document(); + Converter.Convert(htmlPath, pdfOptions, tempPdf); + finalDoc.Pages.Add(tempPdf.Pages); +} + +// Save the merged result +finalDoc.Save(Path.Combine(outputFolder, "CombinedReport.pdf")); +``` + +### 4.4 Xử Lý Lỗi và Ghi Log + +Mã sản xuất nên bảo vệ khỏi HTML không hợp lệ hoặc tài nguyên thiếu. Bao bọc quá trình chuyển đổi trong khối try‑catch và ghi lại ngoại lệ: + +```csharp +try +{ + Converter.Convert(htmlPath, pdfOptions, pdfPath); +} +catch (Exception ex) +{ + Console.Error.WriteLine($"⚠️ Failed to convert {htmlPath}: {ex.Message}"); +} +``` + +## Bước 5: Xác Minh Đầu Ra Bằng Chương Trình (Tùy Chọn) + +Nếu bạn muốn đảm bảo mỗi PDF được tạo ra chứa một từ khóa cụ thể hoặc số trang nhất định, Aspose.PDF cho phép bạn kiểm tra PDF sau khi tạo: + +```csharp +var pdf = new Document(pdfPath); +bool containsKeyword = pdf.Pages[1].ExtractText().Contains("Hello, PDF World!"); +Console.WriteLine(containsKeyword ? "✔️ Keyword found" : "❌ Keyword missing"); +``` + +## Những Sai Lầm Thường Gặp và Mẹo Chuyên Nghiệp + +| Rủi ro | Nguyên nhân | Cách khắc phục | +|---------|----------------|-----| +| Đường dẫn hình ảnh tương đối bị lỗi | Converter chạy từ thư mục làm việc khác | Đặt `pdfOptions.BaseUri` tới thư mục HTML | +| Phông chữ hiển thị dưới dạng thay thế | Phông chữ không được nhúng hoặc thiếu trên máy chủ | Sử dụng `FontEmbeddingMode.Always` và cung cấp các tệp phông chữ | +| Các tệp HTML lớn gây tăng đột biến bộ nhớ | Toàn bộ tài liệu được tải vào bộ nhớ | Xử lý các tệp từng cái một (như đã minh họa) hoặc tăng `MemoryLimit` trong tùy chọn | +| Liên kết trở thành văn bản thường | `PreserveHyperlinks` bị tắt | Đảm bảo `PreserveHyperlinks = true` trong `PdfSaveOptions` | + +## Ví Dụ Hoàn Chỉnh (Tất Cả Mã Trong Một Nơi) + +Để tiện lợi, dưới đây là toàn bộ chương trình mà bạn có thể sao chép‑dán vào `Program.cs`. Nó bao gồm tất cả các tinh chỉnh tùy chọn đã thảo luận ở trên, nhưng bạn có thể chú thích các phần không cần thiết. + +```csharp +using System; +using System.IO; +using Aspose.Pdf; + +class Program +{ + static void Main() + { + string sourceFolder = Path.Combine(Directory.GetCurrentDirectory(), "html"); + string outputFolder = Path.Combine(Directory.GetCurrentDirectory(), "pdf"); + Directory.CreateDirectory(outputFolder); + + string[] htmlFiles = Directory.GetFiles(sourceFolder, "*.html"); + if (htmlFiles.Length == 0) + { + Console.WriteLine("No HTML files found."); + return; + } + + foreach (var htmlPath in htmlFiles) + { + string fileName = Path.GetFileNameWithoutExtension(htmlPath); + string pdfPath = Path.Combine(outputFolder, $"{fileName}.pdf"); + + var pdfOptions = new PdfSaveOptions + { + PageSize = PageSize.A4, + Margin = new MarginInfo(72, 72, 72, 72), + PreserveHyperlinks = true, + RenderPrintMedia = true, + BaseUri = new Uri(sourceFolder + Path.DirectorySeparatorChar), + + +## Bạn Nên Học Gì Tiếp Theo? + +Các hướng dẫn sau đây bao phủ các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật được trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm các ví dụ mã hoàn chỉnh với giải thích từng bước để giúp bạn nắm vững các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Chuyển đổi HTML sang PDF trong .NET với Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-pdf/) +- [Chuyển đổi EPUB sang PDF trong .NET với Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) +- [Chuyển đổi SVG sang PDF trong .NET với Aspose.HTML](/html/english/net/canvas-and-image-manipulation/convert-svg-to-pdf/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file