From fb7335ce2ac9936c5c36b0a81f713bbab7477a4a Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Mon, 27 Apr 2026 06:38:57 +0000 Subject: [PATCH] Add 3 html net tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: generate-jpg-and-png-images, html-extensions-and-conversions Source: AI Search API Tutorials: - Save HTML as ZIP – Complete C# Guide to Convert HTML to ZIP - Create PNG from HTML in C# – Step‑by‑Step Guide - How to Zip HTML from DOCX – Complete C# Guide Auto-generated by Professionalize.Tutorials Agent --- .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 222 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 294 ++++++++++++++++ .../_index.md | 241 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 5 +- .../_index.md | 222 ++++++++++++ .../html-extensions-and-conversions/_index.md | 5 +- .../_index.md | 282 +++++++++++++++ .../_index.md | 241 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 223 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 244 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 222 ++++++++++++ .../html-extensions-and-conversions/_index.md | 44 +-- .../_index.md | 294 ++++++++++++++++ .../_index.md | 241 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 298 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 50 +-- .../_index.md | 280 +++++++++++++++ .../_index.md | 248 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 30 +- .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 222 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 280 +++++++++++++++ .../_index.md | 223 ++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 298 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 223 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 222 ++++++++++++ .../html-extensions-and-conversions/_index.md | 7 + .../_index.md | 279 +++++++++++++++ .../_index.md | 328 ++++++++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 222 ++++++++++++ .../html-extensions-and-conversions/_index.md | 6 +- .../_index.md | 294 ++++++++++++++++ .../_index.md | 223 ++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 223 ++++++++++++ .../html-extensions-and-conversions/_index.md | 5 +- .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 224 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 281 +++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 4 +- .../_index.md | 223 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 243 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 223 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 242 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 222 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 294 ++++++++++++++++ .../_index.md | 223 ++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 225 ++++++++++++ .../html-extensions-and-conversions/_index.md | 3 + .../_index.md | 296 ++++++++++++++++ .../_index.md | 249 +++++++++++++ .../net/generate-jpg-and-png-images/_index.md | 2 + .../_index.md | 223 ++++++++++++ .../html-extensions-and-conversions/_index.md | 4 + .../_index.md | 294 ++++++++++++++++ .../_index.md | 243 +++++++++++++ 115 files changed, 17676 insertions(+), 61 deletions(-) create mode 100644 html/arabic/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/arabic/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/arabic/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/chinese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/chinese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/chinese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/czech/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/czech/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/czech/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/dutch/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/dutch/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/dutch/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/english/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/english/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/english/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/french/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/french/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/french/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/german/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/german/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/german/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/greek/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/greek/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/greek/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/hindi/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/hindi/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/hindi/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/hongkong/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/hongkong/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/hongkong/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/hungarian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/hungarian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/hungarian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/indonesian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/indonesian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/indonesian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/italian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/italian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/italian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/japanese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/japanese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/japanese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/korean/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/korean/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/korean/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/polish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/polish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/polish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/portuguese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/portuguese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/portuguese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/russian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/russian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/russian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/spanish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/spanish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/spanish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/swedish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/swedish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/swedish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/thai/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/thai/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/thai/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/turkish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/turkish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/turkish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md create mode 100644 html/vietnamese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md create mode 100644 html/vietnamese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md create mode 100644 html/vietnamese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md diff --git a/html/arabic/net/generate-jpg-and-png-images/_index.md b/html/arabic/net/generate-jpg-and-png-images/_index.md index 432f80cdc..f94b47674 100644 --- a/html/arabic/net/generate-jpg-and-png-images/_index.md +++ b/html/arabic/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Aspose.HTML for .NET هي مكتبة قوية تتيح للمطورين إنشا تعلم كيفية تمكين مضاد التعرج عند تحويل ملفات DOCX إلى صور PNG أو JPG باستخدام Aspose.HTML. ### [تحويل docx إلى png – إنشاء أرشيف zip في C# – دليل تعليمي](./convert-docx-to-png-create-zip-archive-c-tutorial/) تعلم كيفية تحويل ملفات docx إلى صور PNG وإنشاء أرشيف ZIP باستخدام C# و Aspose.HTML. +### [إنشاء PNG من HTML في C# – دليل خطوة بخطوة](./create-png-from-html-in-c-step-by-step-guide/) +تعلم كيفية تحويل HTML إلى صورة PNG باستخدام C# و Aspose.HTML خطوة بخطوة. ## خاتمة diff --git a/html/arabic/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/arabic/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..2a49cf1d4 --- /dev/null +++ b/html/arabic/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-26 +description: إنشاء PNG من HTML باستخدام Aspose.HTML. تعلّم كيفية تحويل HTML إلى PNG، + تحويل HTML إلى صورة، تصدير HTML كملف PNG، وعرض صورة مستند HTML بسرعة. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: ar +og_description: إنشاء PNG من HTML في C# باستخدام Aspose.HTML. يوضح لك هذا الدليل كيفية + تحويل HTML إلى PNG، وتحويل HTML إلى صورة، وتصدير HTML كملف PNG. +og_title: إنشاء PNG من HTML في C# – دليل برمجة شامل +tags: +- Aspose.HTML +- C# +- Image Rendering +title: إنشاء PNG من HTML في C# – دليل خطوة بخطوة +url: /ar/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء PNG من HTML باستخدام C# – دليل برمجة شامل + +هل احتجت يومًا إلى **إنشاء PNG من HTML** لكنك لم تكن متأكدًا أي مكتبة ستعطيك نتيجة واضحة دون عناء؟ لست وحدك. يواجه العديد من المطورين صعوبة عندما يحاولون تحويل صفحة ويب إلى صورة bitmap، خاصةً عندما يحتاجون إلى مضاد التعرج (anti‑aliasing) أو تلميحات خطوط مخصصة. + +في هذا الدرس سنستعرض حلًا عمليًا باستخدام **Aspose.HTML for .NET**. بنهاية الدرس ستعرف كيف **ترسم HTML إلى PNG**، **تحول HTML إلى صورة**، **تصدير HTML كـ PNG**، وحتى تعديل خط أنابيب الرسم للحصول على نتائج مثالية. لا إطالة—فقط مثال شفرة يعمل، شرح سبب أهمية كل سطر، وبعض النصائح الاحترافية التي كنت تتمنى معرفتها مسبقًا. + +## ما ستحتاجه + +- .NET 6+ (أو .NET Framework 4.6+). +- حزمة NuGet `Aspose.HTML` (الإصدار 23.9 أو أحدث). +- ملف `input.html` بسيط تريد تحويله إلى صورة. +- بيئة تطوير مثل Visual Studio 2022 (أي محرر يستطيع تجميع C# يكفي). + +هذا كل ما تحتاجه. لا ملفات تنفيذية إضافية، لا خدمات خارجية، ولا ملفات إعدادات غامضة. جاهز؟ لنبدأ. + +## إنشاء PNG من HTML – الخطوات الأساسية + +فيما يلي نقسم العملية بالكامل إلى أربع قطع منطقية. كل قطعة ترتبط بكتلة شفرة محددة، وترافقها شرح قصير “لماذا”. اتبع الترتيب، انسخ الشفرة، وستحصل على PNG في `YOUR_DIRECTORY/output.png` خلال ثوانٍ. + +### الخطوة 1: تحميل مستند HTML + +أول ما علينا فعله هو إعطاء Aspose.HTML كائن المستند للعمل معه. فكر فيها كأنك تسلم المرسِّم لوحة جديدة تحتوي بالفعل على جميع العلامات، CSS، والصور المشار إليها في ملف HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*لماذا هذا مهم:* `HTMLDocument` يقوم بتحليل الملف، حل عناوين URL النسبية، وبناء شجرة DOM. إذا تعذر العثور على الملف، يُرمى استثناء هنا—وبالتالي تكتشف المشكلة مبكرًا قبل بدء أي عملية رسم. + +### الخطوة 2: تكوين خيارات رسم الصورة + +بعد ذلك نخبر Aspose بحجم الصورة النهائية وما إذا كنا نريد مضاد التعرج. هذه الخيارات تؤثر مباشرة على جودة عملية **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*لماذا هذا مهم:* الأبعاد الأكبر تمنحك تفاصيل أكثر لكن تستهلك ذاكرة أكبر. `UseAntialiasing` هو السر للحصول على **export html as png** بمظهر احترافي—بدونه ستظهر حواف متعرجة حول النص والرسومات المتجهة. + +### الخطوة 3: تحسين رسم النص (Hinting & Font Style) + +إذا كان HTML الخاص بك يستخدم خطوطًا مخصصة أو تحتاج إلى تنسيق غامق/مائل، فستحتاج إلى تمكين الـ hinting وتحديد `WebFontStyle` المناسب. الـ hinting يضبط الحروف على حدود البكسل، وهو أمر حاسم عندما تقوم بـ **convert html to image** بدقة ثابتة. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*لماذا هذا مهم:* الـ hinting يمنع تشوش الحروف، خاصةً على الشاشات منخفضة الـ DPI. الجمع بين `Bold` و `Italic` يوضح كيف يمكنك دمج أنماط متعددة؛ يمكنك بالطبع اختيار أحدهما أو لا شيء، حسب التصميم. + +### الخطوة 4: رسم ملف PNG + +أخيرًا نقوم بإنشاء كائن `ImageRenderer`، نحدده على المستند، نحدد مسار الإخراج، ونمرر الخيارات التي أعددناها. استدعاء `Render()` يقوم بكل العمل الشاق. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*لماذا هذا مهم:* `ImageRenderer` يطبق كل الإعدادات التي عرفناها مسبقًا—الحجم، مضاد التعرج، تلميحات النص، نمط الخط. عندما تنتهي `Render()`، ستحصل على PNG متوافق تمامًا يمكن عرضه في المتصفحات، رفعه إلى التخزين السحابي، أو تضمينه في التقارير. + +> **نصيحة احترافية:** إذا كنت تحتاج إلى تنسيق صورة مختلف (JPEG, BMP, GIF)، فقط غير امتداد الملف في مسار الإخراج. Aspose يختار المشفر المناسب تلقائيًا. + +## رسم HTML إلى PNG باستخدام Aspose.HTML – مثال كامل + +تجميع كل الأجزاء معًا يمنحك برنامجًا واحدًا مكتملًا. انسخ الكتلة أدناه إلى تطبيق Console جديد وشغّله؛ ستظهر `output.png` بجوار ملف HTML المصدر. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### النتيجة المتوقعة + +بعد التنفيذ يجب أن ترى ملفًا مشابهًا للنموذج أدناه (المظهر الفعلي يعتمد على محتوى HTML الخاص بك). + +![إنشاء مثال PNG من HTML](/images/html-to-png-sample.png "نموذج النتيجة عند إنشاء PNG من HTML باستخدام Aspose.HTML") + +سيحافظ PNG على التخطيط، الألوان، والخطوط تمامًا كما يعرض المتصفح الصفحة—بفضل محرك **render html document image** داخل Aspose. + +## أسئلة شائعة وحالات خاصة + +### ماذا لو كان HTML الخاص بي يشير إلى صور خارجية؟ + +Aspose.HTML يتبع عناوين URL النسبية بناءً على مجلد `input.html`. إذا كانت الصور مخزنة في مكان آخر، يمكنك إما: + +1. استخدام عناوين URL مطلقة (مثال: `https://example.com/logo.png`). +2. تعيين `htmlDocument.BaseUrl` للإشارة إلى المجلد الذي يحتوي على الأصول. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### كيف أضبط DPI لإخراج عالي الدقة؟ + +يمكنك تكبير حجم الرسم مع الحفاظ على نسبة الأبعاد، أو يمكنك ضبط `renderingOptions.DPI` (القيمة الافتراضية 96). للـ PNG الجاهز للطباعة، 300 DPI شائع: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### هل يمكنني رسم صفحات متعددة من مستند HTML واحد؟ + +نعم. إذا كان HTML يحتوي على فواصل صفحات CSS (`@media print { page-break-after: always; }`)، سيولد Aspose ملفات PNG منفصلة لكل صفحة عند استخدام `MultiPageImageRenderer`. هذا سيناريو متقدم، لكن مبدأ **convert html to image** يبقى نفسه. + +### ماذا عن استهلاك الذاكرة؟ + +رسم صفحة ضخمة (عدة آلاف بكسل عرضًا) قد يستهلك مئات الميغابايت. لتقليل استهلاك الذاكرة: + +- ارسم بأصغر أبعاد مقبولة. +- أوقف `UseAntialiasing` إذا لم تكن الجودة حرجة. +- حرّر `HTMLDocument` و `ImageRenderer` فورًا باستخدام عبارات `using` (كما هو موضح). + +## رسم صورة مستند HTML – الخطوات التالية + +الآن بعد أن أتقنت أساسيات **render html to png**، فكر في هذه التوسعات: + +- **تحويل دفعي:** حلقة تمر عبر مجلد من ملفات HTML وتولد PNGs دفعة واحدة. +- **إضافة علامة مائية:** بعد الرسم، حمّل PNG باستخدام `System.Drawing` أو `ImageSharp` وضع شعارًا فوقه. +- **إنشاء PDF:** استخدم `PdfRenderer` (جزء من Aspose.HTML) لإنشاء ملفات PDF من نفس مصدر HTML. + +كل هذه تبني على المفاهيم الأساسية التي تعلمتها للتو، لذا ستشعر بالراحة فورًا. + +## الخلاصة + +لقد انتقلنا معك من بيان المشكلة—*كيفية إنشاء PNG من HTML*—إلى حل كامل قابل للتنفيذ يـ **renders HTML to PNG**، **converts HTML to image**، و **exports HTML as PNG** مع تحكم دقيق في الحجم، مضاد التعرج، وتلميحات النص. + +جرّبه على صفحتك الخاصة، عدّل الأبعاد، وجرب أنماط خطوط مختلفة. الشفرة قصيرة، الـ API بديهية، والنتائج تبدو كأنها لقطة شاشة من المتصفح—لكن أسرع وقابلة للأتمتة بالكامل. + +إذا أعجبك هذا الدليل، تفقد دروسنا الأخرى حول **render html document image** مثل تحويل HTML إلى PDF أو إنشاء لقطات SVG. برمجة سعيدة، ولتكن PNGs دائمًا ذات جودة بكسل‑مثالية! + +{{< /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/arabic/net/html-extensions-and-conversions/_index.md b/html/arabic/net/html-extensions-and-conversions/_index.md index 980eb7013..5f569ab09 100644 --- a/html/arabic/net/html-extensions-and-conversions/_index.md +++ b/html/arabic/net/html-extensions-and-conversions/_index.md @@ -71,8 +71,12 @@ url: /ar/net/html-extensions-and-conversions/ تعلم كيفية ضغط ملفات HTML وحفظها كملف Zip باستخدام C# ومكتبة Aspose.HTML. ### [حفظ HTML كملف ZIP – دليل C# كامل](./save-html-as-zip-complete-c-tutorial/) تعلم كيفية حفظ مستند HTML كملف ZIP باستخدام Aspose.HTML في C# خطوة بخطوة. +### [حفظ HTML كملف ZIP – دليل C# كامل لتحويل HTML إلى ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +تعلم كيفية حفظ مستند HTML كملف ZIP وتحويله إلى ZIP باستخدام Aspose.HTML في C# خطوة بخطوة. ### [حفظ HTML إلى ZIP في C# – مثال كامل في الذاكرة](./save-html-to-zip-in-c-complete-in-memory-example/) تعلم كيفية حفظ مستند HTML كملف ZIP في الذاكرة باستخدام C# ومكتبة Aspose.HTML. +### [ضغط HTML من DOCX – دليل C# كامل](./how-to-zip-html-from-docx-complete-c-guide/) +دليل شامل لكيفية ضغط ملفات HTML المستخرجة من مستند DOCX باستخدام C# ومكتبة Aspose.HTML. ## خاتمة diff --git a/html/arabic/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/arabic/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..560b2cc38 --- /dev/null +++ b/html/arabic/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,294 @@ +--- +category: general +date: 2026-04-26 +description: تعلم كيفية ضغط مخرجات HTML من ملف DOCX، تحويل docx إلى HTML، ضبط حجم + الصورة، تصدير Word إلى PNG وكيفية تعيين الخط الغامق – كود خطوة بخطوة. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: ar +og_description: تعلّم كيفية ضغط مخرجات HTML من ملف DOCX، تحويل DOCX إلى HTML، ضبط + حجم الصورة، تصدير Word إلى PNG، وكيفية تعيين الخط الغامق مع أمثلة واضحة بلغة C#. +og_title: كيفية ضغط HTML من DOCX – دليل C# الكامل +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: كيفية ضغط HTML من DOCX – دليل C# الكامل +url: /ar/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية ضغط HTML من DOCX – دليل C# الكامل + +هل تساءلت يومًا **how to zip html** الذي تولده من مستند Word؟ ربما تحتاج إلى أرشيف واحد لتسليمه للعميل أو لتخزينه في السحابة، ولا تريد مجلدًا مليئًا بالملفات المتفرقة. في هذا الدرس سنستعرض تحويل ملف .docx إلى HTML، تجميع النتيجة في ملف ZIP، ثم عرض نفس المستند كصورة PNG بحجم مخصص ونص غامق. على طول الطريق سنغطي أيضًا *convert docx to html*، *set image size*، *export word to png*، و*how to set bold font*—كل ذلك في مثال واحد متكامل. + +بنهاية هذا الدليل ستحصل على برنامج C# جاهز للتنفيذ يقوم بـ: + +* تحميل ملف DOCX من القرص. +* حفظه كـ HTML مع ضغط الناتج تلقائيًا. +* إنشاء صورة PNG بعرض وارتفاع محددين، مع تمكين مضاد التسنين وتطبيق نمط الخط الغامق. + +بدون سكريبتات خارجية، بدون منطق ضغط يدوي—فقط Aspose.Words for .NET API (أو أي مكتبة مكافئة) تقوم بالعمل الشاق. + +--- + +## المتطلبات المسبقة — ما تحتاجه قبل البدء + +| المتطلب | لماذا يهم | +|-------------|----------------| +| **.NET 6.0+** (أو .NET Framework 4.7.2) | يوفر بيئة تشغيل لصياغة C# 10 المستخدمة أدناه. | +| **Aspose.Words for .NET** (أو مكتبة مشابهة تدعم `HtmlSaveOptions` و `ImageRenderer`) | تتولى تحويل DOCX → HTML، الضغط، وعرض الصورة. | +| **ملف DOCX** اسمه `input.docx` في مجلد تتحكم فيه | المستند الأصلي الذي سنقوم بتحويله. | +| **صلاحية كتابة** إلى دليل الإخراج (`YOUR_DIRECTORY`) | ضرورية لإنشاء `doc.zip` و `out.png`. | + +إذا كنت تستخدم NuGet، ثبّت الحزمة بالأمر التالي: + +```bash +dotnet add package Aspose.Words +``` + +> **نصيحة احترافية:** النسخة التجريبية المجانية تضيف علامة مائية إلى PNG المُصدّر. احصل على ترخيص للاستخدام الإنتاجي. + +--- + +## الخطوة 1: تحميل المستند المصدر + +أول ما نقوم به هو قراءة ملف Word إلى الذاكرة. هذه هي الأساس لـ **convert docx to html** ولعرض PNG لاحقًا. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*لماذا هذا مهم:* +`Document` هو الكائن المركزي؛ فهو يحلل حزمة .docx، يحل الأنماط، ويجهّز الموارد لكل من تصدير HTML وعرض الصورة. إذا لم يُعثر على الملف، يُرمى استثناء—لذا تأكد من صحة المسار. + +--- + +## الخطوة 2: تكوين خيارات حفظ HTML – جوهر **How to Zip HTML** + +هنا نخبر Aspose.Words بإنشاء HTML، وتخزين جميع الأصول المرتبطة (صور، CSS) عبر معالج موارد مخصص، ثم ضغط كل شيء في أرشيف واحد. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### ما يفعله `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*لماذا نحتاج إلى معالج:* +عند تحويل **convert docx to html**، قد تُصدر المكتبة العديد من الملفات المساعدة (مثل `image001.png`). يتدخل المعالج في كل عملية حفظ، مما يضمن أن كل شيء ينتهي داخل ملف ZIP بدلاً من مجلد منفصل. + +--- + +## الخطوة 3: حفظ المستند كـ HTML مضغوط + +الآن يحدث السحر. تُكتب ملفات HTML ومواردها مباشرةً إلى `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**النتيجة:** +`YOUR_DIRECTORY/doc.zip` يحتوي الآن على: + +* `document.html` – العلامة الأساسية. +* `document_files/` – مجلد فرعي يضم الصور، CSS، وأي وسائط مدمجة. + +يمكنك فك الضغط للتحقق من البنية، أو تقديم ملف ZIP مباشرةً عبر واجهة ويب API. + +--- + +## الخطوة 4: إعداد خيارات عرض الصورة – التحكم في **Set Image Size** و **How to Set Bold Font** + +إذا كنت بحاجة إلى لقطة بصرية لملف Word، يمكنك عرضه كـ PNG. يوضح المقطع التالي كيفية تحديد الأبعاد الدقيقة، تمكين مضاد التسنين، وإجبار النص على أن يكون غامقًا. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*لماذا هذه العلامات مهمة:* +- **Width/Height** يتيحان لك ضبط PNG وفقًا لتصميم واجهة المستخدم. +- **UseAntialiasing** ينعم الحواف، مانعًا الخطوط المتعرجة. +- **FontStyle = Bold** يتجاوز أي نمط مضمّن في DOCX، مما يضمن أن PNG يظهر بنص غامق بغض النظر عن التنسيق الأصلي. + +--- + +## الخطوة 5: عرض المستند كـ PNG – خطوة **Export Word to PNG** + +أخيرًا، نجمع كل شيء معًا وننتج ملف الصورة. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**ما ستراه:** +صورة `out.png` واضحة بحجم 800 × 600، مع جميع النصوص غامقة ومضادة للتسنين. + +--- + +## مثال كامل يعمل – انسخ، الصق، شغّل + +فيما يلي البرنامج الكامل، جاهز لتضمينه في تطبيق Console. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### النتيجة المتوقعة + +| الملف | الموقع | الوصف | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML مضغوط + الموارد (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG بحجم 800 × 600، كل النص غامق، مضاد للتسنين. | + +يمكنك فتح `doc.zip` بأي أداة أرشفة، استخراج `document.html` وعرضه في المتصفح. ستظهر الصورة بالضبط كما تم عرضها من ملف Word الأصلي. + +--- + +## أسئلة شائعة وحالات خاصة + +### ماذا لو أردت تنسيق صورة مختلف؟ +غيّر امتداد الملف في مُنشئ `ImageRenderer` (`out.jpg`, `out.tiff`) واضبط `ImageSavingOptions` وفقًا. يختار الـ API المشفر المناسب تلقائيًا. + +### هل يمكنني التحكم في مستوى ضغط ZIP؟ +`HtmlSaveOptions` يوفّر خاصية `ZipCompressionLevel` (مثال: `CompressionLevel.BestCompression`). اضبطها قبل استدعاء `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### ملف DOCX يحتوي على صور عالية الدقة—هل سيكون PNG كبيرًا؟ +نعم، لأننا نفرض حجم بكسل ثابت. لتقليل حجم الملف، قلل `Width`/`Height` أو فعّل `ImageResizeOptions` داخل `ImageRenderingOptions`. + +### كيف أحافظ على وزن الخط الأصلي بدلاً من إجبار النص على الغامق؟ +احذف سطر `FontStyle = WebFontStyle.Bold`، أو اجعله مشروطًا بناءً على علم تقدمه للمستخدم. + +### هل يعمل هذا على Linux/macOS؟ +بالتأكيد. Aspose.Words متعدد المنصات؛ فقط تأكد من تثبيت بيئة .NET المناسبة. + +--- + +## قائمة فحص استكشاف الأخطاء وإصلاحها + +| العَرَض | السبب المحتمل | الحل | +|---------|--------------|-----| +| `FileNotFoundException` على `input.docx` | مسار خاطئ أو ملف مفقود | تحقق من وجود `YOUR_DIRECTORY/input.docx`؛ استخدم مسارات مطلقة للاختبار. | +| `OutOfMemoryException` أثناء عرض PNG | مستند كبير جدًا أو أبعاد صورة هائلة | قلل `Width`/`Height` أو اعرض الصفحات بشكل فردي (`ImageRenderer.Render(pageIndex)`). | +| ZIP يحتوي على مجلد `document_files` فارغ | `MyResourceHandler` أعاد اسم ملف مختلف أو ألقى استثناءً | تأكد من أن `ResourceSaving` لا يلغي الحفظ (`args.Cancel = false`). | +| النص غير غامق في PNG | ` + +{{< /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/arabic/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/arabic/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..d4b62964f --- /dev/null +++ b/html/arabic/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-04-26 +description: احفظ HTML كملف ZIP بسرعة باستخدام Aspose.HTML. تعلم كيفية تحويل HTML + إلى ZIP باستخدام معالج موارد مخصص وتوليد HTML إلى ZIP في بضع خطوات فقط. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: ar +og_description: احفظ HTML كملف ZIP باستخدام Aspose.HTML. يوضح هذا الدليل كيفية تحويل + HTML إلى ZIP، باستخدام معالج موارد مخصص لتوليد ZIP من HTML بكفاءة. +og_title: حفظ HTML كملف ZIP – دليل C# خطوة بخطوة +tags: +- Aspose.HTML +- C# +- HTML rendering +title: حفظ HTML كملف ZIP – دليل C# الكامل لتحويل HTML إلى ZIP +url: /ar/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# حفظ HTML كملف ZIP – دليل C# الكامل لتحويل HTML إلى ZIP + +هل احتجت يوماً إلى **حفظ HTML كملف ZIP** لكن لم تكن متأكدًا من أي استدعاءات API يجب ربطها معًا؟ لست وحدك. يواجه العديد من المطورين صعوبة عندما يرغبون في تجميع صفحة HTML مع ملفات CSS والصور والخطوط الخاصة بها في أرشيف واحد—خاصةً عندما يرغبون في إبقاء كل شيء في الذاكرة حتى يقرروا ما سيفعلونه به. + +الخبر السار؟ مع Aspose.HTML يمكنك **تحويل HTML إلى ZIP** ببضع أسطر فقط، بفضل فئة `HtmlSaveOptions` و**معالج الموارد المخصص** الذي يمنحك التحكم الكامل في مكان وضع كل مورد. في هذا الدرس سنستعرض الخطوات الدقيقة لـ **تحويل HTML إلى ZIP**، تخزين كل شيء في الذاكرة، وإمكانية كتابة الملفات إلى القرص إذا رغبت. في النهاية ستحصل على مقتطف قابل لإعادة الاستخدام يمكنك إدراجه في أي مشروع .NET. + +## ما يغطيه هذا الدرس + +* كيفية تعريف سلسلة مصدر HTML (أو تحميلها من ملف). +* كيفية إنشاء كائن `HTMLDocument` باستخدام Aspose.HTML. +* كيفية إنشاء **معالج موارد مخصص** يُعيد `MemoryStream` لكل مورد. +* كيفية تكوين `HtmlSaveOptions` لتوليد **أرشيف ZIP** يحتوي على HTML وجميع الملفات التابعة له. +* كيفية حفظ المستند، وإذا رغبت، كتابة البيانات الموجودة في الذاكرة إلى مجلد على القرص. + +لا أدوات خارجية، لا ضغط يدوي—فقط C# صافي و Aspose.HTML. + +> **نصيحة احترافية:** إذا كنت تستخدم بالفعل Aspose.PDF أو Aspose.Words، فإن نمط `ResourceHandler` نفسه يعمل هناك أيضًا، لذا يمكنك إعادة استخدام هذا الكود عبر أنواع مستندات متعددة. + +--- + +## الخطوة 1: حفظ HTML كملف ZIP – تعريف مصدر HTML + +أولاً نحتاج إلى سلسلة تحتوي على HTML الذي نريد أرشفته. في مشروع حقيقي قد تقرأ ذلك من ملف، قاعدة بيانات، أو استجابة API، لكن للتوضيح سنكتب مثالًا صغيرًا مباشرةً في الشيفرة. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **لماذا هذا مهم:** مُنشئ `HTMLDocument` يتوقع إما مسار ملف أو HTML خام. إمداده بالسلسلة مباشرةً يبقي العملية بأكملها في الذاكرة، وهو ما يكون مثاليًا عندما تريد لاحقًا تدفق الـ ZIP مباشرةً إلى العميل. + +--- + +## الخطوة 2: تحويل HTML إلى ZIP – تحميل HTMLDocument + +الآن نمرر سلسلة HTML إلى Aspose.HTML. الوسيط الثاني (`"."`) يخبر المكتبة أين تحل الروابط النسبية؛ استخدام الدليل الحالي يناسب معظم الحالات البسيطة. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **ما يحدث:** يقوم `HTMLDocument` بتحليل العلامات، بناء DOM، وتحضير جميع الموارد المرتبطة (CSS، صور، خطوط) للعرض. تغليف الكائن داخل كتلة `using` يضمن تحرير الموارد الأصلية بشكل صحيح. + +--- + +## الخطوة 3: تحويل HTML إلى ZIP – إنشاء معالج موارد مخصص + +يتيح لك Aspose.HTML تحديد **مكان** كتابة كل مورد. من خلال توريث `ResourceHandler` يمكننا إرجاع `MemoryStream` جديد لكل ملف يحتاجه المُعالج للحفظ. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **لماذا نحتاج معالجًا مخصصًا؟** السلوك الافتراضي يكتب الملفات إلى نظام الملفات. باستخدام معالج يمكنك إبقاء كل شيء في الذاكرة، دفع الـ ZIP مباشرةً إلى استجابة ويب، أو حتى تشفير التيارات أثناء الإنشاء. + +--- + +## الخطوة 4: تحويل HTML إلى ZIP – تكوين خيارات الحفظ + +هنا تكمن جوهر العملية. `HtmlSaveOptions` تخبر Aspose.HTML بجمع كل شيء في أرشيف ZIP (`SaveToArchive = true`) واستخدام `resourceHandler` الخاص بنا للتخزين. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **نقطة أساسية:** `ArchiveFileName` هو الاسم الذي سيظهر داخل الـ ZIP، وليس مسارًا على القرص. لأننا نستخدم معالجًا قائمًا على الذاكرة، يبقى الـ ZIP بالكامل في RAM حتى نقرر ما سنفعله به. + +--- + +## الخطوة 5: حفظ HTML كملف ZIP – تثبيت الأرشيف + +أخيرًا، نطلب من المستند أن يحفظ نفسه باستخدام الخيارات التي أنشأناها للتو. هذه الدعوة تُشغّل خط أنابيب العرض، تستدعي معالجنا لكل مورد، وتكتب الـ ZIP النهائي إلى التيارات الذاكرة التي قدمناها. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **النتيجة:** في هذه المرحلة يحتوي `resourceHandler` على `MemoryStream` للملف HTML الرئيسي، بالإضافة إلى تدفقات إضافية لأي CSS أو صور أو خطوط تم الإشارة إليها. تم تجميع ملف الـ ZIP بالكامل داخل تلك التيارات. + +--- + +## الخطوة 6: معالج الموارد المخصص – توفير تيار لكل مورد + +فيما يلي تنفيذ `MyResourceHandler`. تُستدعى طريقة `HandleResource` مرة واحدة لكل مورد (HTML، CSS، صور، خطوط، …). ببساطة نعيد `MemoryStream` جديد في كل مرة. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **لماذا تيار جديد؟** كل مورد يحتاج إلى حاوية خاصة به؛ إعادة استخدام نفس التيار سيؤدي إلى فساد الأرشيف. `MemoryStream` خفيف الوزن ويتوسع تلقائيًا حسب الحاجة. + +--- + +## الخطوة 7: اختياري – كتابة الموارد المحفوظة إلى القرص + +إذا رغبت في فحص الملفات المولدة أو الاحتفاظ بنسخة على الخادم، تُستدعى `ResourceSaved` بعد إغلاق التيار. هنا نكتب المحتوى الموجود في الذاكرة إلى مجلد تحدده (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **ملاحظة حالة حافة:** إذا كنت تعمل في بيئة لا تملك أذونات كتابة (مثل Azure Functions)، يمكنك ببساطة تخطي تنفيذ `ResourceSaved` أو استبداله بعملية رفع إلى تخزين سحابي. + +--- + +## مثال كامل قابل للتنفيذ (38 سطرًا) + +فيما يلي الشيفرة الكاملة جاهزة للنسخ إلى تطبيق Console. تحترم حدود 15‑40 سطرًا، تستخدم أسماء متغيرات وصفية، وتحتوي على أماكن يمكن تعديلها حسب الحاجة. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### النتيجة المتوقعة + +* يظهر ملف `result.zip` داخل الأرشيف الموجود في الذاكرة (يمكنك استرجاعه من `resourceHandler` إذا أضفت خاصية لتوفير التيار). +* إذا احتفظت بتنفيذ `ResourceSaved`، تُكتب نفس الملفات أيضًا إلى `YOUR_DIRECTORY/Output` على القرص، مما يعكس بنية الـ ZIP الداخلية. + +--- + +## الأسئلة المتكررة (FAQ) + +**س: هل يعمل هذا مع صفحات HTML الكبيرة؟** +ج: بالتأكيد. `MemoryStream` يتوسع حسب الحاجة، لكن للصفحات متعددة الميغابايت قد تفضل التدفق مباشرةً إلى `FileStream` لتقليل الضغط على الذاكرة. ما عليك سوى تعديل `HandleResource` لإرجاع `File.Create(Path.Combine("temp", info.FileName))`. + +**س: هل يمكنني تشفير الـ ZIP؟** +ج: لا توفر Aspose.HTML تشفيرًا مدمجًا، ولكن بعد استرجاع `MemoryStream` يمكنك تمريره إلى `System.IO.Compression.ZipArchive` مع كلمة مرور، أو استخدام مكتبة طرف ثالث مثل SharpZipLib. + +**س: ماذا عن الروابط النسبية داخل HTML؟** +ج: الوسيط الثاني لـ `HTMLDocument` (`"."`) يخبر Aspose.HTML بحل المسارات النسبية بالنسبة للدليل الحالي. إذا كانت مواردك موجودة في مكان آخر، مرّر المسار الأساسي المناسب أو `UriResolver` مخصص. + +--- + +## الخلاصة + +لقد أظهرنا لك كيفية **حفظ HTML كملف ZIP** باستخدام Aspose.HTML، **معالج موارد مخصص**، وعدد قليل من خطوات التكوين البسيطة. تسمح لك هذه الطريقة **بتحويل HTML إلى ZIP** بالكامل في الذاكرة، ما يمنحك المرونة لتدفق النتيجة إلى عميل ويب، تخزينها في قاعدة بيانات، أو كتابتها إلى قرص للاستخدام لاحقًا. + +لا تتردد في التجربة: استبدل `MemoryStream` بتيار تخزين سحابي، أضف حماية بكلمة مرور، أو عالج عشرات الصفحات بالتوازي. النمط الأساسي—التحميل، المعالجة، التكوين، الحفظ—يبقى هو نفسه، مما يجعلها وحدة بناء قابلة لإعادة الاستخدام لأي حل .NET يحتاج إلى **تحويل HTML إلى ZIP** أو **إنشاء ZIP من HTML**. + +هل لديك المزيد من الأسئلة حول معالجة الموارد المخصصة أو ميزات Aspose.HTML الأخرى؟ اترك تعليقًا أدناه، ونتمنى لك برمجة سعيدة! + +![مخطط يوضح التدفق من مصدر HTML إلى أرشيف ZIP في الذاكرة](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/chinese/net/generate-jpg-and-png-images/_index.md index 3a7bc53dc..21376e098 100644 --- a/html/chinese/net/generate-jpg-and-png-images/_index.md +++ b/html/chinese/net/generate-jpg-and-png-images/_index.md @@ -38,13 +38,10 @@ Aspose.HTML for .NET 提供了一种将 HTML 转换为图像的简单方法。 ## 生成 JPG 和 PNG 图像教程 ### [使用 Aspose.HTML 在 .NET 中通过 ImageDevice 生成 JPG 图像](./generate-jpg-images-by-imagedevice/) -了解如何使用 Aspose.HTML for .NET 创建动态网页。本分步教程涵盖先决条件、命名空间以及将 HTML 渲染为图像。 ### [使用 Aspose.HTML 在 .NET 中通过 ImageDevice 生成 PNG 图像](./generate-png-images-by-imagedevice/) -学习使用 Aspose.HTML for .NET 来操作 HTML 文档、将 HTML 转换为图像等。分步教程,包含常见问题解答。 ### [如何在将 DOCX 转换为 PNG/JPG 时启用抗锯齿](./how-to-enable-antialiasing-when-converting-docx-to-png-jpg/) -了解如何在使用 Aspose.HTML for .NET 将 DOCX 文档转换为 PNG 或 JPG 图像时启用抗锯齿,以提升图像质量。 ### [使用 C# 将 docx 转换为 png 并创建 zip 存档教程](./convert-docx-to-png-create-zip-archive-c-tutorial/) -学习如何使用 C# 将 DOCX 文档转换为 PNG 图像并打包为 ZIP 文件的完整步骤。 +### [使用 C# 从 HTML 创建 PNG – 步骤指南](./create-png-from-html-in-c-step-by-step-guide/) ## 结论 diff --git a/html/chinese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/chinese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..6dd04d550 --- /dev/null +++ b/html/chinese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-26 +description: 使用 Aspose.HTML 将 HTML 创建为 PNG。了解如何将 HTML 渲染为 PNG、将 HTML 转换为图像、导出 HTML + 为 PNG,以及快速渲染 HTML 文档图像。 +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: zh +og_description: 使用 Aspose.HTML 在 C# 中将 HTML 创建为 PNG。本指南向您展示如何将 HTML 渲染为 PNG、将 HTML + 转换为图像以及将 HTML 导出为 PNG。 +og_title: 在 C# 中从 HTML 创建 PNG – 完整编程指南 +tags: +- Aspose.HTML +- C# +- Image Rendering +title: 在 C# 中将 HTML 转换为 PNG – 步骤指南 +url: /zh/net/generate-jpg-and-png-images/create-png-from-html-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 创建 PNG – 完整编程指南 + +是否曾经需要**从 HTML 创建 PNG**,但不确定哪个库能够提供清晰的输出而不让人头疼?你并不孤单。许多开发者在尝试将网页转换为位图时会遇到困难,尤其是当他们需要抗锯齿或自定义字体提示时。 + +在本教程中,我们将使用 **Aspose.HTML for .NET** 进行动手实践。完成后,你将了解如何**将 HTML 渲染为 PNG**、**将 HTML 转换为图像**、**将 HTML 导出为 PNG**,甚至可以微调渲染管线以获得完美效果。内容简洁——只提供可运行的代码示例、每行代码的意义解释,以及一些你希望早些知道的专业技巧。 + +## 你需要的环境 + +- .NET 6+(或 .NET Framework 4.6+)。 +- `Aspose.HTML` NuGet 包(版本 23.9 或更高)。 +- 一个你想转换为图片的简单 `input.html` 文件。 +- 如 Visual Studio 2022 等 IDE(任何能够编译 C# 的编辑器均可)。 + +就这些。无需额外的二进制文件、外部服务,也不需要晦涩的配置文件。准备好了吗?让我们开始吧。 + +## 从 HTML 创建 PNG – 核心步骤 + +下面我们将整个过程拆分为四个逻辑块。每个块对应一个具体的代码块,并附有简短的“原因”说明。按顺序操作,复制代码,你将在几秒钟内得到位于 `YOUR_DIRECTORY/output.png` 的 PNG 文件。 + +### 步骤 1:加载 HTML 文档 + +我们首先要做的就是为 Aspose.HTML 提供一个文档对象。可以把它看作是把已经包含所有标记、CSS 和 HTML 文件引用的图像的全新画布交给渲染器。 + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*为什么这很重要:* `HTMLDocument` 解析文件,解析相对 URL,并构建 DOM 树。如果文件未找到,会在此处抛出异常——因此可以在任何渲染工作开始前及早捕获问题。 + +### 步骤 2:配置图像渲染选项 + +接下来我们告诉 Aspose 最终图片的尺寸以及是否需要抗锯齿。这些选项直接影响 **render html to png** 操作的视觉保真度。 + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*为什么这很重要:* 更大的尺寸提供更多细节,但会增加内存使用。`UseAntialiasing` 是实现专业外观 **export html as png** 的关键——如果不使用,你会在文字和矢量图形周围看到阶梯状的伪影。 + +### 步骤 3:微调文本渲染(Hinting 与字体样式) + +如果你的 HTML 使用自定义字体或需要粗体/斜体样式,你需要启用 hinting 并设置相应的 `WebFontStyle`。Hinting 将字形对齐到像素边界,这在以固定分辨率 **convert html to image** 时至关重要。 + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*为什么这很重要:* Hinting 可防止文字模糊,尤其在低 DPI 屏幕上。组合 `Bold` 和 `Italic` 展示了如何叠加多种样式;当然,你也可以根据设计只选择其中一种或不使用。 + +### 步骤 4:渲染 PNG 文件 + +最后我们实例化 `ImageRenderer`,指向文档,提供输出路径,并传入我们构建的选项。`Render()` 调用完成所有繁重的工作。 + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*为什么这很重要:* `ImageRenderer` 会遵循我们之前定义的所有设置——尺寸、抗锯齿、文本 hinting、字体样式。当 `Render()` 完成后,你将得到一个完全符合规范的 PNG,可在浏览器中显示、上传至云存储或嵌入报告中。 + +> **专业提示:** 如果需要不同的图像格式(JPEG、BMP、GIF),只需更改输出路径中的文件扩展名。Aspose 会自动选择正确的编码器。 + +## 使用 Aspose.HTML 将 HTML 渲染为 PNG – 完整示例 + +将所有部分组合在一起即可得到一个单独的、独立的程序。将下面的代码块复制到新的控制台应用程序中并运行,你会看到 `output.png` 出现在源 HTML 文件旁边。 + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### 预期结果 + +执行后,你应该会看到一个类似下方示例的文件(实际外观取决于你的 HTML 内容)。 + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +该 PNG 将精确保留布局、颜色和字体,就像浏览器显示页面一样——这要归功于 Aspose 内部的 **render html document image** 引擎。 + +## 常见问题与边缘情况 + +### 如果我的 HTML 引用了外部图片怎么办? + +Aspose.HTML 会根据 `input.html` 所在文件夹解析相对 URL。如果你的图片存放在其他位置,可以: + +1. 使用绝对 URL(例如 `https://example.com/logo.png`)。 +2. 将 `htmlDocument.BaseUrl` 设置为指向包含资源的文件夹。 + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### 如何调整 DPI 以获得高分辨率输出? + +你可以在保持相同宽高比的同时缩放渲染尺寸,或者设置 `renderingOptions.DPI`(默认 96)。对于可打印的 PNG,常用 300 DPI: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### 能否从单个 HTML 文档渲染多页? + +可以。如果 HTML 包含 CSS 页面断页(`@media print { page-break-after: always; }`),在使用 `MultiPageImageRenderer` 时,Aspose 会为每页生成单独的 PNG 文件。这是高级场景,但同样适用 **convert html to image** 原则。 + +### 内存消耗如何? + +渲染一个巨大的页面(宽度数千像素)可能会消耗数百兆字节的内存。为了降低内存使用: + +- 使用最小可接受的尺寸进行渲染。 +- 如果质量不是关键,可关闭 `UseAntialiasing`。 +- 使用 `using` 语句及时释放 `HTMLDocument` 和 `ImageRenderer`(如示例所示)。 + +## 渲染 HTML 文档图像 – 后续步骤 + +现在你已经掌握了 **render html to png** 的基础,考虑以下扩展: + +- **批量转换:**遍历文件夹中的 HTML 文件,一次性生成 PNG。 +- **水印添加:**渲染后,使用 `System.Drawing` 或 `ImageSharp` 加载 PNG 并叠加徽标。 +- **PDF 生成:**使用 `PdfRenderer`(同样是 Aspose.HTML 的一部分)从相同的 HTML 源创建 PDF。 + +这些都基于你刚学到的核心概念,因此你会感到得心应手。 + +## 结论 + +我们已经从问题陈述——*如何从 HTML 创建 PNG*——带你走向完整、可运行的解决方案,该方案 **renders HTML to PNG**、**converts HTML to image**,并 **exports HTML as PNG**,同时对尺寸、抗锯齿和文本 hinting 进行细粒度控制。 + +使用你自己的网页尝试一下,调整尺寸,实验不同的字体样式。代码简短,API 直观,结果看起来就像在浏览器中截取的截图——但更快且完全可自动化。 + +如果你喜欢本指南,请查看我们其他关于 **render html document image** 操作的教程,例如将 HTML 转换为 PDF 或生成 SVG 快照。祝编码愉快,愿你的 PNG 永远像素完美! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/chinese/net/html-extensions-and-conversions/_index.md index a6c24babf..b3509d023 100644 --- a/html/chinese/net/html-extensions-and-conversions/_index.md +++ b/html/chinese/net/html-extensions-and-conversions/_index.md @@ -71,9 +71,12 @@ Aspose.HTML for .NET 不仅仅是一个库;它是 Web 开发领域的变革者 使用 Aspose.HTML for .NET 在 C# 中将 HTML 转换为 PDF 的完整分步指南,涵盖代码示例和最佳实践。 ### [使用 Aspose.HTML 在 .NET 中将 HTML 保存为 ZIP – 完整的 C# 教程](./save-html-as-zip-complete-c-tutorial/) 使用 Aspose.HTML for .NET 将 HTML 内容打包为 ZIP 文件的完整 C# 示例,包含代码演示和关键步骤。 - +### [使用 Aspose.HTML 在 .NET 中将 HTML 保存为 ZIP – 完整的 C# 指南](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +使用 Aspose.HTML for .NET 在 C# 中将 HTML 内容压缩为 ZIP 文件的完整指南,包含代码示例和关键步骤。 ### [在 C# 中将 HTML 保存为 ZIP – 完整内存示例](./save-html-to-zip-in-c-complete-in-memory-example/) 演示如何使用 Aspose.HTML for .NET 在 C# 中将 HTML 内容压缩为 ZIP 文件,完整的内存操作示例。 +### [使用 Aspose.HTML 在 .NET 中将 HTML 从 DOCX 压缩为 ZIP – 完整的 C# 指南](./how-to-zip-html-from-docx-complete-c-guide/) +使用 Aspose.HTML for .NET 在 C# 中将 DOCX 中的 HTML 内容压缩为 ZIP,提供完整步骤和代码示例。 ## 结论 diff --git a/html/chinese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/chinese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..7bbeebca1 --- /dev/null +++ b/html/chinese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-04-26 +description: 学习如何对 DOCX 文件的 HTML 输出进行压缩、将 docx 转换为 HTML、设置图像大小、将 Word 导出为 PNG,以及如何设置粗体字体——一步一步的代码示例。 +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: zh +og_description: 掌握如何从 DOCX 文件压缩 HTML 输出、将 docx 转换为 HTML、设置图像大小、将 Word 导出为 PNG,以及如何使用清晰的 + C# 示例设置粗体字体。 +og_title: 如何将 DOCX 中的 HTML 打包为 Zip – 完整 C# 指南 +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: 如何从 DOCX 中压缩 HTML – 完整 C# 指南 +url: /zh/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何将 DOCX 转换为 ZIP HTML – 完整 C# 指南 + +是否曾想过 **如何压缩 html**,即从 Word 文档生成的 html?也许你需要一个单一的归档文件来交付给客户或存储在云端,而不想要一堆散落的文件夹。在本教程中,我们将演示如何将 .docx 文件转换为 HTML,将结果打包成 ZIP 文件,然后将同一文档渲染为具有自定义尺寸和粗体文本的 PNG 图像。过程中我们还会涉及 *convert docx to html*、*set image size*、*export word to png* 和 *how to set bold font*——全部在一个完整的示例中。 + +在本指南结束时,你将拥有一个可直接运行的 C# 程序,它能够: + +* 从磁盘加载 DOCX。 +* 将其保存为 HTML 并自动压缩为 ZIP。 +* 以精确的宽度、高度、抗锯齿和粗体样式渲染 PNG。 + +无需外部脚本,也不需要手动编写 zip 逻辑——全部由 Aspose.Words for .NET API(或任何等效库)完成。 + +--- + +## 前置条件 — 开始之前你需要的东西 + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+**(or .NET Framework 4.7.2) | 提供运行时,以支持下面使用的 C# 10 语法。 | +| **Aspose.Words for .NET**(or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | 处理 DOCX → HTML 转换、归档以及图像渲染。 | +| **一个 DOCX 文件**,名为 `input.docx`,位于你可控制的文件夹中 | 我们将要转换的源文档。 | +| **写入权限** 到输出目录(`YOUR_DIRECTORY`) | 用于创建 `doc.zip` 和 `out.png`。 | + +如果使用 NuGet,请使用以下方式安装包: + +```bash +dotnet add package Aspose.Words +``` + +> **专业提示:** 免费评估版会在渲染的 PNG 上添加水印。请获取许可证用于生产环境。 + +## 步骤 1:加载源文档 + +我们首先要做的是将 Word 文件读取到内存中。这是 **convert docx to html** 和后续渲染 PNG 的基础。 + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*为什么这很重要:* +`Document` 是核心对象;它解析 .docx 包,解析样式,并为 HTML 导出和图像渲染准备资源。如果找不到文件,会抛出异常——请确保路径正确。 + +## 步骤 2:配置 HTML 保存选项 – **How to Zip HTML** 的核心 + +在这里我们告诉 Aspose.Words 生成 HTML,通过自定义资源处理程序存储所有相关资产(图像、CSS),并最终将所有内容压缩为单个归档文件。 + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### `MyResourceHandler` 的作用 + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*为什么需要处理程序:* +在进行 **convert docx to html** 转换时,库可能会生成许多辅助文件(例如 `image001.png`)。处理程序拦截每一次保存操作,确保所有内容都放入 ZIP 而不是散落的文件夹中。 + +## 步骤 3:将文档保存为压缩的 HTML + +现在魔法出现了。HTML 文件及其资源直接写入 `doc.zip`。 + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**结果:** +`YOUR_DIRECTORY/doc.zip` 现在包含: + +* `document.html` – 主标记文件。 +* `document_files/` – 包含图像、CSS 以及任何嵌入媒体的子文件夹。 + +你可以解压它以验证结构,或直接通过 Web API 提供该 ZIP。 + +## 步骤 4:设置图像渲染选项 – 控制 **Set Image Size** 和 **How to Set Bold Font** + +如果需要 Word 文件的可视快照,可以将其渲染为 PNG。下面的代码块展示了如何定义精确尺寸、启用抗锯齿以及强制所有文本使用粗体样式。 + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*这些标志为何重要:* +- **Width/Height** 让你根据 UI 布局定制 PNG 大小。 +- **UseAntialiasing** 平滑边缘,防止出现锯齿。 +- **FontStyle = Bold** 覆盖 DOCX 中的任何内联样式,确保 PNG 以粗体显示,无论原始格式如何。 + +## 步骤 5:将文档渲染为 PNG – **Export Word to PNG** 步骤 + +最后,我们将所有内容结合起来,生成图像文件。 + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**你将看到:** +一个清晰的 `out.png`,尺寸为 800 × 600,所有文本均以粗体渲染,且任何矢量图形都已抗锯齿。 + +## 完整工作示例 – 复制、粘贴、运行 + +下面是完整的程序代码,直接放入控制台应用即可运行。 + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### 预期输出 + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | 压缩的 HTML + 资源(`document.html`、`document_files/…`)。 | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG,所有文本粗体,已抗锯齿。 | + +你可以使用任意压缩工具打开 `doc.zip`,提取 `document.html` 并在浏览器中查看。图像将与原始 Word 文件渲染的效果完全一致。 + +## 常见问题与边缘情况 + +### 如果需要不同的图像格式怎么办? + +在 `ImageRenderer` 构造函数中更换文件扩展名(如 `out.jpg`、`out.tiff`),并相应调整 `ImageSavingOptions`。API 会自动选择正确的编码器。 + +### 能否控制 ZIP 的压缩级别? + +`HtmlSaveOptions` 提供 `ZipCompressionLevel` 属性(例如 `CompressionLevel.BestCompression`),在调用 `Save` 之前进行设置。 + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### 我的 DOCX 包含大尺寸高分辨率图片——PNG 会很大吗? + +是的,因为我们强制使用固定像素尺寸。若想减小文件大小,可降低 `Width`/`Height`,或在 `ImageRenderingOptions` 中启用 `ImageResizeOptions`。 + +### 如何保留原始字体粗细而不是强制粗体? + +只需删除 `FontStyle = WebFontStyle.Bold` 行,或根据向用户暴露的标志有条件地设置它。 + +### 这在 Linux/macOS 上能工作吗? + +当然可以。Aspose.Words 是跨平台的,只需确保已安装相应的 .NET 运行时。 + +## 故障排查清单 + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| 在 `input.docx` 上出现 `FileNotFoundException` | 路径错误或文件缺失 | 确认 `YOUR_DIRECTORY/input.docx` 存在;测试时使用绝对路径。 | +| 在 PNG 渲染期间出现 `OutOfMemoryException` | 文档过大或图像尺寸过大 | 降低 `Width`/`Height`,或逐页渲染(`ImageRenderer.Render(pageIndex)`)。 | +| ZIP 包含空的 `document_files` 文件夹 | `MyResourceHandler` 返回了不同的文件名或抛出了异常 | 确保 `ResourceSaving` 不会取消保存(`args.Cancel = false`)。 | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/chinese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..4f041e7f1 --- /dev/null +++ b/html/chinese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-04-26 +description: 使用 Aspose.HTML 快速将 HTML 保存为 ZIP。了解如何通过自定义资源处理程序将 HTML 转换为 ZIP,并仅需几步即可将 + HTML 渲染为 ZIP。 +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: zh +og_description: 使用 Aspose.HTML 将 HTML 保存为 ZIP。本指南展示了如何将 HTML 转换为 ZIP,使用自定义资源处理程序高效地将 + HTML 渲染为 ZIP。 +og_title: 将HTML保存为ZIP – C# 逐步教程 +tags: +- Aspose.HTML +- C# +- HTML rendering +title: 将HTML保存为ZIP – 完整的C#指南:将HTML转换为ZIP +url: /zh/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 将 HTML 保存为 ZIP – 完整的 C# 指南,将 HTML 转换为 ZIP + +是否曾经需要 **将 HTML 保存为 ZIP**,却不确定该如何组合 API 调用?你并不孤单。许多开发者在想把 HTML 页面连同其 CSS、图片和字体打包成单个归档文件时会卡住——尤其是当他们希望整个过程始终保留在内存中,直到决定后续处理方式时。 + +好消息是?借助 Aspose.HTML,你可以仅用几行代码 **将 HTML 转换为 ZIP**,这得益于 `HtmlSaveOptions` 类以及一个 **自定义资源处理器**,它让你完全控制每个资源的保存位置。在本教程中,我们将逐步演示如何 **将 HTML 渲染为 ZIP**,将所有内容存放在内存中,并可选地将文件写入磁盘。完成后,你将拥有一个可在任何 .NET 项目中直接使用的可复用代码片段。 + +## 本教程涵盖内容 + +* 如何定义 HTML 源字符串(或从文件加载)。 +* 如何使用 Aspose.HTML 实例化 `HTMLDocument`。 +* 如何创建 **自定义资源处理器**,为每个资源返回一个 `MemoryStream`。 +* 如何配置 `HtmlSaveOptions` 以生成包含 HTML 及其所有依赖文件的 **ZIP 归档**。 +* 如何保存文档,并在需要时将内存中的数据写入磁盘文件夹。 + +无需外部工具,无需手动压缩——仅使用纯 C# 与 Aspose.HTML。 + +> **专业提示:** 如果你已经在使用 Aspose.PDF 或 Aspose.Words,同样的 `ResourceHandler` 模式同样适用,能够在多种文档类型之间复用此代码。 + +--- + +## 步骤 1:保存 HTML 为 ZIP – 定义 HTML 源 + +首先需要一个字符串来保存我们想要归档的 HTML 内容。在实际项目中,你可能会从文件、数据库或 API 响应中读取,但为便于说明,这里直接硬编码一个小示例。 + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **为什么重要:** `HTMLDocument` 构造函数接受文件路径或原始 HTML。直接传入字符串可以让整个过程保持在内存中,这在后续需要直接将 ZIP 流式传输给客户端时尤为理想。 + +--- + +## 步骤 2:将 HTML 转换为 ZIP – 加载 HTMLDocument + +现在把 HTML 字符串交给 Aspose.HTML。第二个参数 (`"."`) 告诉库在何处解析相对 URL;使用当前目录对大多数简单情况都适用。 + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **正在发生的事:** `HTMLDocument` 解析标记,构建 DOM,并准备所有链接资源(CSS、图片、字体)以供渲染。将其放在 `using` 块中可确保本机资源得到正确释放。 + +--- + +## 步骤 3:将 HTML 渲染为 ZIP – 创建自定义资源处理器 + +Aspose.HTML 允许你决定 **每个资源写入何处**。通过继承 `ResourceHandler`,我们可以为渲染器需要保存的每个文件返回一个全新的 `MemoryStream`。 + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **为什么需要自定义处理器?** 默认行为是将文件写入文件系统。使用处理器后,你可以把所有内容保存在 RAM 中,直接推送 ZIP 到 Web 响应,甚至在流式传输时进行加密。 + +--- + +## 步骤 4:将 HTML 转换为 ZIP – 配置保存选项 + +下面是核心代码。`HtmlSaveOptions` 告诉 Aspose.HTML 将所有内容打包成 ZIP 归档(`SaveToArchive = true`),并使用我们的 `resourceHandler` 进行存储。 + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **关键点:** `ArchiveFileName` 是 ZIP 内部显示的文件名,而不是磁盘路径。因为我们使用基于内存的处理器,ZIP 完全驻留在 RAM 中,直至决定后续操作。 + +--- + +## 步骤 5:保存 HTML 为 ZIP – 持久化归档 + +最后,使用我们刚构建的选项让文档自行保存。此调用会触发渲染管线,为每个资源调用我们的处理器,并将最终的 ZIP 写入我们提供的内存流。 + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **结果:** 此时 `resourceHandler` 已持有主 HTML 文件的 `MemoryStream`,以及所有 CSS、图片或字体等引用资源的额外流。ZIP 文件已完整组装在这些流中。 + +--- + +## 步骤 6:自定义资源处理器 – 为每个资源提供流 + +下面是 `MyResourceHandler` 的实现。`HandleResource` 方法会针对每个资源(HTML、CSS、图片、字体等)调用一次。我们仅返回一个新的 `MemoryStream`。 + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **为什么每次都返回新流?** 每个资源都需要独立的容器;复用同一个流会导致归档损坏。`MemoryStream` 轻量且会根据需要自动增长。 + +--- + +## 步骤 7:可选 – 将已保存的资源写入磁盘 + +如果你想检查生成的文件或在服务器上保留一份副本,`ResourceSaved` 会在流关闭后被调用。这里我们把内存内容写入你指定的文件夹(`YOUR_DIRECTORY/Output`)。 + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **边缘情况说明:** 若运行环境没有写入权限(例如 Azure Functions),只需跳过 `ResourceSaved` 实现,或改为上传至云存储。 + +--- + +## 完整可运行示例(38 行) + +下面是完整代码,可直接粘贴到控制台应用程序中。它遵循 15‑40 行限制,使用可读的变量名,并包含可自行调整的占位符。 + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### 预期输出 + +* `result.zip` 文件会出现在内存归档中(如果为 `resourceHandler` 添加属性以公开流,可从中获取)。 +* 若保留了 `ResourceSaved` 实现,相同文件也会写入磁盘的 `YOUR_DIRECTORY/Output` 目录,结构与 ZIP 内部保持一致。 + +--- + +## 常见问题解答 (FAQ) + +**问:这对大型 HTML 页面有效吗?** +答:完全可以。`MemoryStream` 会根据需要扩展,但对于多兆字节的页面,可能需要直接流式写入 `FileStream` 以避免过高的内存占用。只需将 `HandleResource` 改为返回 `File.Create(Path.Combine("temp", info.FileName))` 即可。 + +**问:我可以加密 ZIP 吗?** +答:Aspose.HTML 本身不提供内置加密,但在获取 `MemoryStream` 后,你可以将其交给 `System.IO.Compression.ZipArchive` 并使用密码,或使用第三方库如 SharpZipLib 实现加密。 + +**问:HTML 中的相对 URL 如何处理?** +答:`HTMLDocument` 的第二个参数 (`"."`) 告诉 Aspose.HTML 将相对路径解析为当前目录。如果资源位于其他位置,请传入相应的基路径或自定义 `UriResolver`。 + +--- + +## 结论 + +我们已经展示了如何使用 Aspose.HTML、**自定义资源处理器** 以及几步简洁的配置,将 **HTML 保存为 ZIP**。该方法能够 **在内存中完成 HTML 到 ZIP 的转换**,从而灵活地将结果流式传输给 Web 客户端、存入数据库,或写入磁盘以备后用。 + +欢迎尝试:将 `MemoryStream` 替换为云存储流、添加密码保护,或并行批处理大量页面。加载、处理、配置、保存的核心模式保持不变,成为任何需要 **将 HTML 渲染为 ZIP** 或 **从 HTML 创建 ZIP** 的 .NET 解决方案的可复用构建块。 + +对自定义资源处理或其他 Aspose.HTML 功能还有疑问?在下方留言吧,祝编码愉快! + +![显示从 HTML 源到内存 ZIP 归档流程的示意图](placeholder.png "将 HTML 保存为 ZIP 示例") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/czech/net/generate-jpg-and-png-images/_index.md index 11b9c8465..7ac58dd84 100644 --- a/html/czech/net/generate-jpg-and-png-images/_index.md +++ b/html/czech/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Naučte se používat Aspose.HTML pro .NET k manipulaci s dokumenty HTML, převo Naučte se, jak při převodu dokumentů DOCX na PNG nebo JPG povolit antialiasing pro hladší výstup. ### [Převod docx na png – vytvoření zip archivu C# tutoriál](./convert-docx-to-png-create-zip-archive-c-tutorial/) Naučte se převést soubory DOCX na PNG a zabalit je do ZIP archivu pomocí C# a Aspose.HTML. +### [Vytvořte PNG z HTML v C# – krok za krokem](./create-png-from-html-in-c-step-by-step-guide/) +Naučte se, jak v C# převést HTML na PNG pomocí Aspose.HTML v podrobném průvodci krok za krokem. ## Závěr diff --git a/html/czech/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/czech/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..643895ef3 --- /dev/null +++ b/html/czech/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: Vytvořte PNG z HTML pomocí Aspose.HTML. Naučte se, jak renderovat HTML + do PNG, převést HTML na obrázek, exportovat HTML jako PNG a rychle vytvořit obrázek + HTML dokumentu. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: cs +og_description: Vytvořte PNG z HTML v C# pomocí Aspose.HTML. Tento průvodce vám ukáže, + jak renderovat HTML do PNG, převést HTML na obrázek a exportovat HTML jako PNG. +og_title: Vytvořte PNG z HTML v C# – Kompletní průvodce programováním +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Vytvořte PNG z HTML v C# – průvodce krok za krokem +url: /cs/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření PNG z HTML v C# – Kompletní programovací průvodce + +Už jste někdy potřebovali **create PNG from HTML**, ale nebyli jste si jisti, která knihovna vám poskytne ostrý výstup bez bolesti hlavy? Nejste v tom sami. Mnoho vývojářů narazí, když se snaží převést webovou stránku na bitmapu, zejména když potřebují anti‑aliasing nebo vlastní nápovědy pro písmo. + +V tomto tutoriálu projdeme praktické řešení pomocí **Aspose.HTML for .NET**. Na konci budete vědět, jak **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, a dokonce jak doladit renderovací pipeline pro dokonalé výsledky. Žádné zbytečnosti – jen funkční ukázkový kód, proč je každý řádek důležitý, a pár tipů, které byste si přáli vědět dříve. + +## Co budete potřebovat + +- .NET 6+ (nebo .NET Framework 4.6+). +- NuGet balíček `Aspose.HTML` (verze 23.9 nebo novější). +- Jednoduchý soubor `input.html`, který chcete převést na obrázek. +- IDE jako Visual Studio 2022 (nebo jakýkoli editor, který umí kompilovat C#). + +To je vše. Žádné další binární soubory, žádné externí služby a žádné nejasné konfigurační soubory. Připravení? Pojďme na to. + +## Create PNG from HTML – Core Steps + +Níže rozdělíme celý proces do čtyř logických částí. Každá část odpovídá konkrétnímu kódu a každému bloku je připojeno krátké vysvětlení „proč“. Postupujte v pořadí, zkopírujte kód a během několika vteřin budete mít PNG v `YOUR_DIRECTORY/output.png`. + +### Step 1: Load the HTML Document + +První věc, kterou musíme udělat, je předat Aspose.HTML objekt dokumentu, se kterým bude pracovat. Představte si to jako předání rendereru čerstvého plátna, které již obsahuje veškerý markup, CSS a obrázky odkazované v HTML souboru. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Why this matters:* `HTMLDocument` parsuje soubor, řeší relativní URL a vytváří DOM strom. Pokud soubor nelze najít, vyvolá se výjimka právě zde – takže chyby zachytíte brzy, ještě před zahájením renderování. + +### Step 2: Configure Image Rendering Options + +Dále řekneme Aspose, jak velký má být finální obrázek a zda chceme anti‑aliasing. Tyto možnosti přímo ovlivňují vizuální věrnost operace **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Why this matters:* Větší rozměry poskytují více detailů, ale zvyšují spotřebu paměti. `UseAntialiasing` je tajná ingredience pro profesionální vzhled **export html as png** – bez ní uvidíte schodovité artefakty kolem textu a vektorové grafiky. + +### Step 3: Fine‑Tune Text Rendering (Hinting & Font Style) + +Pokud vaše HTML používá vlastní fonty nebo potřebujete tučné/kurzívní stylování, budete chtít zapnout hinting a nastavit odpovídající `WebFontStyle`. Hinting zarovnává glyfy k pixelovým hranám, což je klíčové při **convert html to image** při pevné rozlišení. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Why this matters:* Hinting zabraňuje rozmazaným písmenům, zejména na obrazovkách s nízkým DPI. Kombinace `Bold` a `Italic` ukazuje, jak můžete vrstvit více stylů; samozřejmě můžete zvolit jen jeden nebo žádný, podle vašeho návrhu. + +### Step 4: Render the PNG File + +Nakonec vytvoříme instanci `ImageRenderer`, nasměrujeme ji na dokument, zadáme výstupní cestu a předáme dříve vytvořené možnosti. Volání `Render()` udělá veškerou těžkou práci. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Why this matters:* `ImageRenderer` respektuje každé nastavení, které jsme definovali dříve – velikost, anti‑aliasing, text hinting, font style. Když `Render()` skončí, máte plně kompatibilní PNG, které lze zobrazit v prohlížečích, nahrát do cloudového úložiště nebo vložit do reportů. + +> **Pro tip:** Pokud potřebujete jiný formát obrázku (JPEG, BMP, GIF), stačí změnit příponu souboru ve výstupní cestě. Aspose automaticky vybere správný enkodér. + +## Render HTML to PNG with Aspose.HTML – Full Example + +Sestavením všech částí získáte jediný, samostatný program. Zkopírujte blok níže do nové konzolové aplikace a spusťte ho; `output.png` se objeví vedle vašeho zdrojového HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Expected Result + +Po spuštění byste měli vidět soubor podobný ukázce níže (skutečný vzhled závisí na vašem HTML obsahu). + +![Vytvoření PNG z HTML příklad](/images/html-to-png-sample.png "Ukázkový výstup při vytváření PNG z HTML pomocí Aspose.HTML") + +PNG zachová rozložení, barvy a fonty přesně tak, jak by je zobrazil prohlížeč – díky **render html document image** enginu uvnitř Aspose. + +## Common Questions & Edge Cases + +### What if My HTML References External Images? + +Aspose.HTML následuje relativní URL na základě složky `input.html`. Pokud máte obrázky uložené jinde, můžete: + +1. Použít absolutní URL (např. `https://example.com/logo.png`). +2. Nastavit `htmlDocument.BaseUrl`, aby ukazoval na složku obsahující assety. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### How Do I Adjust DPI for High‑Resolution Output? + +Můžete měřítko renderovací velikosti zachovat poměr stran, nebo nastavit `renderingOptions.DPI` (výchozí je 96). Pro tiskové PNG je běžných 300 DPI: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Can I Render Multiple Pages from a Single HTML Document? + +Ano. Pokud HTML obsahuje CSS zalomení stránek (`@media print { page-break-after: always; }`), Aspose vygeneruje samostatné PNG soubory pro každou stránku při použití `MultiPageImageRenderer`. Jedná se o pokročilý scénář, ale stejný princip **convert html to image** platí. + +### What About Memory Consumption? + +Renderování obrovské stránky (několik tisíc pixelů na šířku) může spotřebovat stovky megabajtů. Pro snížení paměťové náročnosti: + +- Renderujte v nejmenších přijatelných rozměrech. +- Vypněte `UseAntialiasing`, pokud kvalita není kritická. +- Promptně uvolněte `HTMLDocument` a `ImageRenderer` pomocí `using` bloků (jak je ukázáno). + +## Render HTML Document Image – Next Steps + +Nyní, když ovládáte základy **render html to png**, zvažte tyto rozšíření: + +- **Batch conversion:** Procházejte složku s HTML soubory a generujte PNG najednou. +- **Watermarking:** Po renderování načtěte PNG pomocí `System.Drawing` nebo `ImageSharp` a překryjte logo. +- **PDF generation:** Použijte `PdfRenderer` (také součást Aspose.HTML) k vytvoření PDF ze stejného HTML zdroje. + +Každé z těchto rozšíření staví na stejných základních konceptech, které jste se právě naučili, takže se budete cítit jako doma. + +## Conclusion + +Provedli jsme vás od zadání problému – *jak vytvořit PNG z HTML* – k úplnému, spustitelnému řešení, které **renders HTML to PNG**, **converts HTML to image** a **exports HTML as PNG** s jemnou kontrolou nad velikostí, anti‑aliasingem a textovým hintingem. + +Vyzkoušejte to na své vlastní webové stránce, upravte rozměry a experimentujte s různými styly fontů. Kód je stručný, API je intuitivní a výsledky vypadají přesně jako snímek obrazovky pořízený v prohlížeči – jen rychleji a plně automatizovatelně. + +Pokud se vám tento průvodce líbil, podívejte se na naše další tutoriály o manipulaci s **render html document image**, jako je převod HTML do PDF nebo generování SVG snímků. Šťastné kódování a ať jsou vaše PNG vždy pixel‑perfektní! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/czech/net/html-extensions-and-conversions/_index.md index dc8f6f072..6db1e6699 100644 --- a/html/czech/net/html-extensions-and-conversions/_index.md +++ b/html/czech/net/html-extensions-and-conversions/_index.md @@ -65,6 +65,8 @@ Objevte, jak používat Aspose.HTML pro .NET k manipulaci a převodu HTML dokume Naučte se převádět HTML na TIFF pomocí Aspose.HTML pro .NET. Postupujte podle našeho podrobného průvodce pro efektivní optimalizaci webového obsahu. ### [Převeďte HTML na XPS v .NET pomocí Aspose.HTML](./convert-html-to-xps/) Objevte sílu Aspose.HTML pro .NET: Převeďte HTML na XPS bez námahy. Součástí jsou předpoklady, podrobný průvodce a často kladené otázky. +### [Jak zkomprimovat HTML z DOCX – Kompletní C# průvodce](./how-to-zip-html-from-docx-complete-c-guide/) +Naučte se, jak pomocí Aspose.HTML v C# zkomprimovat HTML soubor z DOCX do ZIP archivu v kompletním průvodci. ### [Jak zkomprimovat HTML v C# – Uložit HTML do ZIP](./how-to-zip-html-in-c-save-html-to-zip/) Naučte se, jak pomocí Aspose.HTML pro .NET zabalit HTML soubor do ZIP archivu v C#. ### [Vytvořte HTML dokument se stylovaným textem a exportujte do PDF – Kompletní průvodce](./create-html-document-with-styled-text-and-export-to-pdf-full/) @@ -73,6 +75,8 @@ Naučte se vytvořit HTML dokument se stylovaným textem a převést jej do PDF Naučte se, jak uložit HTML soubor jako ZIP archiv pomocí Aspose.HTML pro .NET v kompletním C# tutoriálu. ### [Uložte HTML do ZIP v C# – Kompletní příklad v paměti](./save-html-to-zip-in-c-complete-in-memory-example/) Naučte se, jak uložit HTML soubor do ZIP archivu v paměti pomocí Aspose.HTML pro .NET v C#. +### [Uložte HTML jako ZIP – Kompletní C# průvodce převodem HTML do ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Naučte se, jak pomocí Aspose.HTML pro .NET uložit HTML soubor do ZIP archivu v kompletním C# tutoriálu. ## Závěr diff --git a/html/czech/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/czech/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..578d20fee --- /dev/null +++ b/html/czech/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Naučte se, jak zabalit HTML výstup z DOCX souboru, převést docx na HTML, + nastavit velikost obrázku, exportovat Word do PNG a jak nastavit tučný font – krok + za krokem kód. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: cs +og_description: Naučte se, jak zkomprimovat výstup HTML z DOCX souboru, převést docx + na HTML, nastavit velikost obrázku, exportovat Word do PNG a jak nastavit tučný + font s přehlednými příklady v C#. +og_title: Jak zkomprimovat HTML z DOCX – kompletní průvodce C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Jak vytvořit zip HTML z DOCX – Kompletní průvodce C# +url: /cs/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak zkomprimovat HTML z DOCX – Kompletní průvodce v C# + +Už jste se někdy zamýšleli **jak zkomprimovat html**, které generujete z dokumentu Word? Možná potřebujete jeden archiv, který pošlete klientovi nebo uložíte do cloudu, a nechcete složku plnou volných souborů. V tomto tutoriálu projdeme převodem souboru .docx na HTML, zabalením výsledku do ZIP souboru a následným vykreslením stejného dokumentu do PNG obrázku s vlastní velikostí a tučným textem. Po cestě se také podíváme na *convert docx to html*, *set image size*, *export word to png* a *how to set bold font* — vše v jednom koherentním příkladu. + +Na konci tohoto průvodce budete mít připravený spustitelný C# program, který: + +* Načte DOCX ze disku. +* Uloží jej jako HTML a automaticky výstup zkomprimuje do ZIPu. +* Vykreslí PNG s přesnou šířkou, výškou, antialiasingem a tučným stylem písma. + +Žádné externí skripty, žádná ručně psaná zip logika — pouze Aspose.Words for .NET API (nebo jakákoli ekvivalentní knihovna), která udělá těžkou práci. + +--- + +## Požadavky — Co potřebujete před začátkem + +| Požadavek | Proč je důležitý | +|-------------|----------------| +| **.NET 6.0+** (nebo .NET Framework 4.7.2) | Poskytuje runtime pro syntaxi C# 10 použitou níže. | +| **Aspose.Words for .NET** (nebo podobná knihovna podporující `HtmlSaveOptions` a `ImageRenderer`) | Zajišťuje převod DOCX → HTML, archivaci i vykreslování obrázku. | +| **DOCX soubor** pojmenovaný `input.docx` ve složce, kterou ovládáte | Zdrojový dokument, který budeme transformovat. | +| **Oprávnění k zápisu** do výstupního adresáře (`YOUR_DIRECTORY`) | Potřebné k vytvoření `doc.zip` a `out.png`. | + +Pokud používáte NuGet, nainstalujte balíček pomocí: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** Bezplatná evaluační verze přidává vodoznak do vykresleného PNG. Pořiďte si licenci pro produkční použití. + +--- + +## Krok 1: Načtení zdrojového dokumentu + +Prvním krokem je načíst Word soubor do paměti. To je základ pro **convert docx to html** i pro následné vykreslení PNG. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Proč je to důležité:* +`Document` je centrální objekt; rozebere .docx balíček, vyřeší styly a připraví zdroje jak pro export do HTML, tak pro vykreslování obrázku. Pokud soubor nelze najít, vyvolá se výjimka — proto se ujistěte, že cesta je správná. + +--- + +## Krok 2: Nastavení možností uložení HTML – Jádro **Jak zkomprimovat HTML** + +Zde říkáme Aspose.Words, aby generoval HTML, uložil všechny související zdroje (obrázky, CSS) pomocí vlastního resource handleru a nakonec vše zabalil do jednoho archivu. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Co dělá `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Proč potřebujeme handler:* +Při převodu **convert docx to html** může knihovna vytvořit mnoho doplňkových souborů (např. `image001.png`). Handler zachytí každou operaci uložení a zajistí, že vše skončí uvnitř ZIPu místo volné složky. + +--- + +## Krok 3: Uložení dokumentu jako zkomprimované HTML + +Nyní se děje magie. HTML soubory a jejich zdroje jsou zapsány přímo do `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Výsledek:** +`YOUR_DIRECTORY/doc.zip` nyní obsahuje: + +* `document.html` – hlavní markup. +* `document_files/` – podsložku s obrázky, CSS a jakýmikoli vloženými médii. + +Můžete ZIP rozbalit a ověřit strukturu, nebo ZIP přímo servírovat z webového API. + +--- + +## Krok 4: Nastavení možností vykreslování obrázku – Řízení **Set Image Size** a **How to Set Bold Font** + +Pokud potřebujete vizuální snímek Word souboru, můžete jej vykreslit do PNG. Následující blok ukazuje, jak definovat přesné rozměry, povolit antialiasing a vynutit tučný styl pro celý text. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Proč jsou tyto příznaky důležité:* +- **Width/Height** vám umožní přizpůsobit PNG vašemu UI layoutu. +- **UseAntialiasing** vyhlazuje hrany a zabraňuje zubatým čarám. +- **FontStyle = Bold** přepíše jakýkoli inline styl v DOCX, takže PNG bude mít tučný vzhled bez ohledu na původní formátování. + +--- + +## Krok 5: Vykreslení dokumentu do PNG – Krok **Export Word to PNG** + +Nakonec vše spojíme a vytvoříme soubor obrázku. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Co uvidíte:** +Ostrý `out.png`, který odpovídá velikosti 800 × 600, se všemi texty tučnými a vektorovou grafikou antialiasovanou. + +--- + +## Kompletní funkční příklad – Zkopírujte, vložte, spusťte + +Níže je kompletní program, připravený k vložení do konzolové aplikace. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Očekávaný výstup + +| Soubor | Umístění | Popis | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | Zkomprimované HTML + zdroje (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, veškerý text tučný, antialiasovaný. | + +Můžete otevřít `doc.zip` libovolným archivním nástrojem, extrahovat `document.html` a zobrazit jej v prohlížeči. Obrázek se zobrazí přesně tak, jak byl vykreslen z původního Word souboru. + +--- + +## Časté otázky a okrajové případy + +### Co když potřebuji jiný formát obrázku? +Změňte příponu souboru v konstruktoru `ImageRenderer` (`out.jpg`, `out.tiff`) a upravte `ImageSavingOptions` odpovídajícím způsobem. API automaticky vybere správný enkodér. + +### Můžu ovládat úroveň komprese ZIPu? +`HtmlSaveOptions` poskytuje vlastnost `ZipCompressionLevel` (např. `CompressionLevel.BestCompression`). Nastavte ji před voláním `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Můj DOCX obsahuje velké obrázky ve vysokém rozlišení — bude PNG obrovské? +Ano, protože vynucujeme pevnou pixelovou velikost. Pro snížení velikosti souboru buď snižte `Width`/`Height`, nebo povolte `ImageResizeOptions` uvnitř `ImageRenderingOptions`. + +### Jak zachovat původní tloušťku písma místo vynucení tučného? +Jednoduše odstraňte řádek `FontStyle = WebFontStyle.Bold`, nebo jej nastavte podmíněně na základě příznaku, který uživateli zpřístupníte. + +### Funguje to na Linuxu/macOS? +Rozhodně. Aspose.Words je multiplatformní; stačí mít nainstalovaný příslušný .NET runtime. + +--- + +## Kontrolní seznam pro řešení problémů + +| Příznak | Pravděpodobná příčina | Oprava | +|---------|--------------|-----| +| `FileNotFoundException` na `input.docx` | Špatná cesta nebo chybějící soubor | Ověřte, že `YOUR_DIRECTORY/input.docx` existuje; pro testování použijte absolutní cesty. | +| `OutOfMemoryException` během PNG renderu | Velmi velký dokument nebo obrovské rozměry obrázku | Snižte `Width`/`Height` nebo renderujte stránky jednotlivě (`ImageRenderer.Render(pageIndex)`). | +| ZIP obsahuje prázdnou složku `document_files` | `MyResourceHandler` vrátil jiný název souboru nebo vyvolal výjimku | Ujistěte se, že `ResourceSaving` neodruší uložení (`args.Cancel = false`). | +| Text není tučný v PNG | ` | + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/czech/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..96586f72e --- /dev/null +++ b/html/czech/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Uložte HTML rychle jako ZIP pomocí Aspose.HTML. Naučte se, jak převést + HTML na ZIP pomocí vlastního manipulátoru zdrojů a jak vykreslit HTML do ZIP během + několika kroků. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: cs +og_description: Uložte HTML jako ZIP pomocí Aspose.HTML. Tento průvodce ukazuje, jak + převést HTML na ZIP pomocí vlastního manipulátoru zdrojů pro efektivní renderování + HTML do ZIP. +og_title: Uložte HTML jako ZIP – krok za krokem C# tutoriál +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Uložte HTML jako ZIP – Kompletní průvodce C# pro převod HTML na ZIP +url: /cs/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Uložení HTML jako ZIP – Kompletní průvodce C# pro konverzi HTML do ZIP + +Už jste někdy potřebovali **uložit HTML jako ZIP**, ale nebyli jste si jisti, které API volání řetězit? Nejste sami. Mnoho vývojářů narazí na problém, když chtějí zabalit HTML stránku spolu s jejími CSS, obrázky a fonty do jednoho archivu — zejména když chtějí, aby vše zůstalo v paměti, dokud se nerozhodnou, co s tím udělat. + +Dobrá zpráva? S Aspose.HTML můžete **převést HTML do ZIP** během několika řádků díky třídě `HtmlSaveOptions` a **vlastnímu resource handleru**, který vám dává plnou kontrolu nad tím, kam se každý zdroj uloží. V tomto tutoriálu projdeme přesné kroky k **renderování HTML do ZIP**, uložení všeho v paměti a volitelnému zápisu souborů na disk. Na konci budete mít znovupoužitelný úryvek, který můžete vložit do libovolného .NET projektu. + +## Co tento tutoriál pokrývá + +* Jak definovat řetězec se zdrojovým HTML (nebo jej načíst ze souboru). +* Jak vytvořit instanci `HTMLDocument` s Aspose.HTML. +* Jak vytvořit **vlastní resource handler**, který vrací `MemoryStream` pro každý zdroj. +* Jak nakonfigurovat `HtmlSaveOptions` pro generování **ZIP archivu** obsahujícího HTML a všechny jeho závislé soubory. +* Jak dokument uložit a případně zapsat data z paměti do složky na disku. + +Žádné externí nástroje, žádné ruční zipování — pouze čistý C# a Aspose.HTML. + +> **Tip:** Pokud už používáte Aspose.PDF nebo Aspose.Words, stejný vzor `ResourceHandler` funguje i tam, takže můžete tento kód znovu použít napříč různými typy dokumentů. + +--- + +## Krok 1: Uložení HTML jako ZIP – Definice zdrojového HTML + +Nejprve potřebujeme řetězec, který obsahuje HTML, jež chceme archivovat. V reálném projektu jej můžete načíst ze souboru, databáze nebo odpovědi API, ale pro přehlednost ho zakódujeme přímo. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Proč je to důležité:** Konstruktor `HTMLDocument` očekává buď cestu k souboru, nebo čisté HTML. Přímé předání řetězce udržuje celý proces v paměti, což je ideální, když později chcete ZIP streamovat přímo klientovi. + +--- + +## Krok 2: Převod HTML do ZIP – Načtení HTMLDocument + +Nyní předáme HTML řetězec Aspose.HTML. Druhý argument (`"."`) říká knihovně, kde má řešit relativní URL; použití aktuálního adresáře funguje pro většinu jednoduchých případů. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Co se děje:** `HTMLDocument` parsuje markup, vytvoří DOM a připraví všechny odkazované zdroje (CSS, obrázky, fonty) k renderování. Zabalení do `using` bloku zaručuje správné uvolnění nativních zdrojů. + +--- + +## Krok 3: Renderování HTML do ZIP – Vytvoření vlastního Resource Handleru + +Aspose.HTML vám umožňuje rozhodnout **kam** se každý zdroj zapíše. Děděním z `ResourceHandler` můžeme vrátit čerstvý `MemoryStream` pro každý soubor, který renderer potřebuje uložit. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Proč vlastní handler?** Výchozí chování zapisuje soubory do souborového systému. S handlerem můžete vše držet v RAM, poslat ZIP přímo jako webovou odpověď nebo dokonce během zápisu šifrovat streamy. + +--- + +## Krok 4: Převod HTML do ZIP – Konfigurace Save Options + +Tady je jádro operace. `HtmlSaveOptions` říká Aspose.HTML, aby vše zabalil do ZIP archivu (`SaveToArchive = true`) a aby pro ukládání použil náš `resourceHandler`. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Klíčová poznámka:** `ArchiveFileName` je název, který se objeví uvnitř ZIP, nikoli cesta na disku. Protože používáme handler založený na paměti, ZIP existuje kompletně v RAM, dokud se nerozhodnete, co s ním uděláte. + +--- + +## Krok 5: Uložení HTML jako ZIP – Uložení archivu + +Nakonec požádáme dokument, aby se uložil s předchozími možnostmi. Tento volání spustí renderovací pipeline, zavolá náš handler pro každý zdroj a zapíše finální ZIP do poskytnutých memory streamů. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Výsledek:** V tomto okamžiku `resourceHandler` obsahuje `MemoryStream` pro hlavní HTML soubor plus další streamy pro jakékoli CSS, obrázky nebo fonty, které byly referencovány. ZIP soubor je kompletně sestaven uvnitř těchto streamů. + +--- + +## Krok 6: Vlastní Resource Handler – Poskytnutí streamu pro každý zdroj + +Níže je implementace `MyResourceHandler`. Metoda `HandleResource` je volána jednou pro každý zdroj (HTML, CSS, obrázky, fonty, …). Jednoduše vrací nový `MemoryStream` pokaždé. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Proč čerstvý stream?** Každý zdroj potřebuje vlastní kontejner; opakované použití jednoho streamu by archiv zničilo. `MemoryStream` je levný a automaticky roste podle potřeby. + +--- + +## Krok 7: Volitelné – Zapsání uložených zdrojů na disk + +Pokud chcete prozkoumat vygenerované soubory nebo si je ponechat kopii na serveru, metoda `ResourceSaved` se zavolá po uzavření streamu. Zde zapíšeme obsah z paměti do složky, kterou určíte (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Poznámka o okrajových případech:** Pokud běžíte v prostředí bez oprávnění k zápisu (např. Azure Functions), jednoduše přeskočte implementaci `ResourceSaved` nebo ji nahraďte nahráním do cloudového úložiště. + +--- + +## Kompletní spustitelný příklad (38 řádků) + +Níže je kompletní kód připravený vložit do konzolové aplikace. Dodržuje limit 15‑40 řádků, používá popisné názvy proměnných a obsahuje místa, která můžete upravit. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Očekávaný výstup + +* Soubor `result.zip` se objeví uvnitř paměťového archivu (můžete jej získat z `resourceHandler`, pokud přidáte vlastnost pro vystavení streamu). +* Pokud jste ponechali implementaci `ResourceSaved`, stejné soubory jsou také zapsány do `YOUR_DIRECTORY/Output` na disku, což odráží vnitřní strukturu ZIP. + +--- + +## Často kladené otázky (FAQ) + +**Q: Funguje to i s velkými HTML stránkami?** +A: Rozhodně. `MemoryStream` se rozšiřuje podle potřeby, ale pro stránky o velikosti několika megabajtů můžete raději streamovat přímo do `FileStream`, abyste se vyhnuli vysokému zatížení paměti. Stačí změnit `HandleResource`, aby vracel `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Můžu ZIP zašifrovat?** +A: Aspose.HTML neposkytuje vestavěné šifrování, ale po získání `MemoryStream` jej můžete předat `System.IO.Compression.ZipArchive` s heslem, nebo použít knihovnu třetí strany jako SharpZipLib. + +**Q: Co s relativními URL v HTML?** +A: Druhý argument pro `HTMLDocument` (`"."`) říká Aspose.HTML, aby relativní cesty řešil vůči aktuálnímu adresáři. Pokud jsou vaše zdroje jinde, předávejte odpovídající základní cestu nebo vlastní `UriResolver`. + +--- + +## Závěr + +Ukázali jsme, jak **uložit HTML jako ZIP** pomocí Aspose.HTML, **vlastního resource handleru** a několika jednoduchých konfiguračních kroků. Přístup vám umožní **převést HTML do ZIP** kompletně v paměti, což poskytuje flexibilitu streamovat výsledek klientovi, uložit jej do databáze nebo zapsat na disk pro pozdější použití. + +Nebojte se experimentovat: vyměňte `MemoryStream` za stream do cloudového úložiště, přidejte ochranu heslem nebo zpracovávejte desítky stránek paralelně. Jádrový vzor — načíst, obsloužit, nakonfigurovat, uložit — zůstává stejný, což z něj činí znovupoužitelný stavební blok pro jakékoli .NET řešení, které potřebuje **renderovat HTML do ZIP** nebo **vytvořit ZIP z HTML**. + +Máte další otázky ohledně vlastního resource handlingu nebo jiných funkcí Aspose.HTML? Zanechte komentář níže a šťastné kódování! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/dutch/net/generate-jpg-and-png-images/_index.md index e05f0c0a7..f57fdff23 100644 --- a/html/dutch/net/generate-jpg-and-png-images/_index.md +++ b/html/dutch/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Leer hoe u Aspose.HTML voor .NET kunt gebruiken om HTML-documenten te bewerken, Leer hoe u antialiasing inschakelt bij het omzetten van DOCX-bestanden naar PNG- of JPG-afbeeldingen met Aspose.HTML. ### [docx naar png converteren – zip-archief maken C#-tutorial](./convert-docx-to-png-create-zip-archive-c-tutorial/) Leer hoe u een DOCX-bestand naar PNG converteert en de resultaten in een zip-archief opslaat met C# en Aspose.HTML. +### [PNG maken vanuit HTML in C# – Stapsgewijze gids](./create-png-from-html-in-c-step-by-step-guide/) +Leer hoe u met Aspose.HTML voor .NET PNG-afbeeldingen genereert vanuit HTML met een gedetailleerde stap‑voor‑stap C#‑handleiding. ## Conclusie diff --git a/html/dutch/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/dutch/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..8daa15d27 --- /dev/null +++ b/html/dutch/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Maak PNG van HTML met Aspose.HTML. Leer hoe je HTML naar PNG rendert, + HTML naar afbeelding converteert, HTML exporteert als PNG, en een HTML-documentafbeelding + snel rendert. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: nl +og_description: Maak PNG van HTML in C# met Aspose.HTML. Deze gids laat zien hoe je + HTML rendert naar PNG, HTML converteert naar een afbeelding en HTML exporteert als + PNG. +og_title: Maak PNG van HTML in C# – Complete programmeergids +tags: +- Aspose.HTML +- C# +- Image Rendering +title: PNG maken van HTML in C# – Stapsgewijze gids +url: /nl/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PNG maken vanuit HTML in C# – Complete Programmeergids + +Heb je ooit **PNG uit HTML moeten maken** maar wist je niet welke bibliotheek je een scherp resultaat geeft zonder gedoe? Je bent niet de enige. Veel ontwikkelaars lopen tegen problemen aan wanneer ze een webpagina naar een bitmap willen omzetten, vooral als ze anti‑aliasing of aangepaste lettertype‑hints nodig hebben. + +In deze tutorial lopen we stap voor stap een praktische oplossing door met **Aspose.HTML for .NET**. Aan het einde weet je hoe je **HTML rendert naar PNG**, **HTML converteert naar afbeelding**, **HTML exporteert als PNG**, en zelfs de render‑pipeline kunt afstemmen voor perfecte resultaten. Geen poespas—alleen een werkend code‑voorbeeld, waarom elke regel belangrijk is, en een paar pro‑tips die je graag eerder had geweten. + +## Wat je nodig hebt + +- .NET 6+ (of .NET Framework 4.6+). +- Het `Aspose.HTML` NuGet‑pakket (versie 23.9 of nieuwer). +- Een simpel `input.html`‑bestand dat je wilt omzetten naar een afbeelding. +- Een IDE zoals Visual Studio 2022 (elke editor die C# kan compileren volstaat). + +Dat is alles. Geen extra binaries, geen externe services en geen obscure configuratie‑bestanden. Klaar? Laten we beginnen. + +## PNG maken vanuit HTML – Kernstappen + +Hieronder splitsen we het hele proces in vier logische delen. Elk deel correspondeert met een concreet code‑blok, en elk blok wordt begeleid door een korte “waarom”‑uitleg. Volg de volgorde, kopieer de code, en je hebt binnen enkele seconden een PNG in `YOUR_DIRECTORY/output.png`. + +### Stap 1: Laad het HTML‑document + +Het eerste wat we moeten doen is Aspose.HTML een documentobject geven om mee te werken. Beschouw het als het overhandigen van een fris canvas aan de renderer dat al de markup, CSS en afbeeldingen bevat waarnaar het HTML‑bestand verwijst. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Waarom dit belangrijk is:* `HTMLDocument` parseert het bestand, lost relatieve URL’s op en bouwt een DOM‑boom. Als het bestand niet gevonden wordt, wordt hier een uitzondering gegooid—zodat je problemen vroegtijdig opvangt voordat er renderwerk begint. + +### Stap 2: Configureer afbeeldings‑renderopties + +Vervolgens vertellen we Aspose hoe groot de uiteindelijke afbeelding moet zijn en of we anti‑aliasing willen. Deze opties beïnvloeden direct de visuele getrouwheid van de **render html to png**‑operatie. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Waarom dit belangrijk is:* Grotere afmetingen geven meer detail maar verhogen het geheugenverbruik. `UseAntialiasing` is de geheime saus voor een professioneel uitziende **export html as png**—zonder dit zie je trap‑stap‑artefacten rond tekst en vector‑graphics. + +### Stap 3: Fijn afstellen van tekst‑rendering (Hinting & Lettertype‑stijl) + +Als je HTML aangepaste lettertypen gebruikt of vet/italic‑stijlen nodig hebt, wil je hinting inschakelen en de juiste `WebFontStyle` instellen. Hinting legt glyphs op pixelgrenzen, wat cruciaal is wanneer je **convert html to image** op een vaste resolutie uitvoert. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Waarom dit belangrijk is:* Hinting voorkomt onscherpe letters, vooral op low‑DPI‑schermen. Het combineren van `Bold` en `Italic` laat zien hoe je meerdere stijlen kunt stapelen; je kunt uiteraard ook slechts één of geen kiezen, afhankelijk van je ontwerp. + +### Stap 4: Render het PNG‑bestand + +Tot slot instantieren we `ImageRenderer`, wijzen we het document toe, geven we het uitvoerpad op en leveren we de opties die we hebben opgebouwd. De `Render()`‑aanroep doet al het zware werk. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Waarom dit belangrijk is:* `ImageRenderer` respecteert elke instelling die we eerder hebben gedefinieerd—grootte, anti‑aliasing, tekst‑hinting, lettertype‑stijl. Wanneer `Render()` voltooid is, heb je een volledig conforme PNG die in browsers kan worden weergegeven, kan worden geüpload naar cloud‑opslag, of kan worden ingebed in rapporten. + +> **Pro tip:** Als je een ander afbeeldingsformaat nodig hebt (JPEG, BMP, GIF), wijzig dan simpelweg de bestandsextensie in het uitvoerpad. Aspose selecteert automatisch de juiste encoder. + +## Render HTML naar PNG met Aspose.HTML – Volledig voorbeeld + +Alle stukjes bij elkaar vormen een enkel, zelf‑voorzienend programma. Kopieer het blok hieronder naar een nieuwe console‑applicatie en voer het uit; je zult `output.png` naast je bron‑HTML zien verschijnen. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Verwacht resultaat + +Na uitvoering zie je een bestand dat lijkt op de mock‑up hieronder (het daadwerkelijke uiterlijk hangt af van je HTML‑inhoud). + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +De PNG behoudt layout, kleuren en lettertypen precies zoals de browser de pagina zou weergeven—dankzij de **render html document image**‑engine binnen Aspose. + +## Veelgestelde vragen & randgevallen + +### Wat als mijn HTML externe afbeeldingen verwijst? + +Aspose.HTML volgt relatieve URL’s op basis van de map van `input.html`. Als je afbeeldingen elders hebt opgeslagen, kun je: + +1. Absolute URL’s gebruiken (bijv. `https://example.com/logo.png`). +2. `htmlDocument.BaseUrl` instellen op de map die de assets bevat. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Hoe pas ik de DPI aan voor hoge‑resolutie‑output? + +Je kunt de render‑grootte schalen terwijl je dezelfde beeldverhouding behoudt, of je kunt `renderingOptions.DPI` instellen (standaard is 96). Voor print‑klare PNG’s is 300 DPI gebruikelijk: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Kan ik meerdere pagina’s renderen vanuit één HTML‑document? + +Ja. Als de HTML CSS‑pagina‑breuken bevat (`@media print { page-break-after: always; }`), genereert Aspose afzonderlijke PNG‑bestanden per pagina wanneer je `MultiPageImageRenderer` gebruikt. Dit is een geavanceerd scenario, maar hetzelfde **convert html to image**‑principe geldt. + +### Hoe zit het met geheugenverbruik? + +Het renderen van een enorme pagina (enkele duizenden pixels breed) kan honderden megabytes verbruiken. Om het geheugenverbruik laag te houden: + +- Render op de kleinste acceptabele afmetingen. +- Schakel `UseAntialiasing` uit als kwaliteit niet cruciaal is. +- Dispose `HTMLDocument` en `ImageRenderer` direct met `using`‑statements (zoals getoond). + +## Render HTML‑document afbeelding – Volgende stappen + +Nu je de basis van **render html to png** onder de knie hebt, overweeg deze uitbreidingen: + +- **Batchconversie:** Loop door een map met HTML‑bestanden en genereer PNG’s in één keer. +- **Watermerken:** Na het renderen, laad de PNG met `System.Drawing` of `ImageSharp` en overlay een logo. +- **PDF‑generatie:** Gebruik `PdfRenderer` (ook onderdeel van Aspose.HTML) om PDF’s te maken vanuit dezelfde HTML‑bron. + +Elk van deze uitbreidingen bouwt voort op dezelfde kernconcepten die je net geleerd hebt, dus je voelt je meteen thuis. + +## Conclusie + +We hebben je meegenomen van de probleemstelling—*hoe maak je PNG uit HTML*—naar een complete, uitvoerbare oplossing die **HTML rendert naar PNG**, **HTML converteert naar afbeelding**, en **HTML exporteert als PNG** met fijnmazige controle over grootte, anti‑aliasing en tekst‑hinting. + +Probeer het met je eigen webpagina, pas de afmetingen aan, en experimenteer met verschillende lettertype‑stijlen. De code is kort, de API intuïtief, en het resultaat ziet er precies uit als een screenshot genomen in een browser—alleen sneller en volledig automatiseerbaar. + +Als je deze gids leuk vond, bekijk dan onze andere tutorials over **render html document image**‑manipulatie, zoals het converteren van HTML naar PDF of het genereren van SVG‑snapshots. Veel programmeerplezier, en moge je PNG’s altijd pixel‑perfect zijn! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/dutch/net/html-extensions-and-conversions/_index.md index fd924a78c..c41ec498b 100644 --- a/html/dutch/net/html-extensions-and-conversions/_index.md +++ b/html/dutch/net/html-extensions-and-conversions/_index.md @@ -72,6 +72,10 @@ Leer hoe u met Aspose.HTML voor .NET PDF's genereert vanuit HTML met een duideli ### [HTML opslaan als ZIP – Complete C#-tutorial](./save-html-as-zip-complete-c-tutorial/) ### [HTML opslaan naar ZIP in C# – Volledig In‑Memory voorbeeld](./save-html-to-zip-in-c-complete-in-memory-example/) Leer hoe u HTML-inhoud in het geheugen comprimeert en opslaat als ZIP-bestand met Aspose.HTML voor .NET in C#. +### [HTML opslaan als ZIP – Complete C#-gids om HTML naar ZIP te converteren](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Leer hoe u HTML-bestanden comprimeert en opslaat als ZIP-bestand met een volledige C#‑stapsgewijze handleiding. +### [HTML zippen vanuit DOCX – Complete C#‑gids](./how-to-zip-html-from-docx-complete-c-guide/) +Leer hoe u HTML-bestanden uit een DOCX-pakket comprimeert en opslaat als ZIP met een volledige C#‑stapsgewijze handleiding. ## Conclusie diff --git a/html/dutch/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/dutch/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..5bccde32d --- /dev/null +++ b/html/dutch/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Leer hoe je HTML‑output van een DOCX‑bestand zipt, docx naar HTML converteert, + de afbeeldingsgrootte instelt, Word naar PNG exporteert en hoe je vette tekst instelt + – stap‑voor‑stap code. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: nl +og_description: Beheers hoe je HTML-output van een DOCX-bestand zipt, docx naar HTML + converteert, de afbeeldingsgrootte instelt, Word exporteert naar PNG en hoe je vetgedrukte + tekst instelt, met duidelijke C#‑voorbeelden. +og_title: Hoe HTML uit een DOCX te zippen – Complete C#‑gids +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Hoe HTML uit DOCX zippen – Complete C#-gids +url: /nl/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe HTML van DOCX te zippen – Complete C# gids + +Heb je je ooit afgevraagd **how to zip html** die je genereert vanuit een Word‑document? Misschien heb je één archief nodig om naar een klant te sturen of om in de cloud op te slaan, en wil je geen map vol losse bestanden. In deze tutorial lopen we door het converteren van een .docx‑bestand naar HTML, het bundelen van het resultaat in een ZIP‑bestand, en vervolgens het renderen van hetzelfde document naar een PNG‑afbeelding met een aangepaste grootte en vette tekst. Onderweg behandelen we ook *convert docx to html*, *set image size*, *export word to png* en *how to set bold font* — allemaal in één samenhangend voorbeeld. + +Aan het einde van deze gids heb je een kant‑en‑klaar C#‑programma dat: + +* Een DOCX van schijf laadt. +* Het opslaat als HTML terwijl de output automatisch wordt gezipt. +* Een PNG rendert met een precieze breedte, hoogte, anti‑aliasing en vette lettertype‑styling. + +Geen externe scripts, geen handmatig zip‑logica — alleen de Aspose.Words for .NET API (of een gelijkwaardige bibliotheek) die het zware werk doet. + +--- + +## Vereisten — Wat je nodig hebt voordat je begint + +| Vereiste | Waarom het belangrijk is | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Biedt de runtime voor de C# 10‑syntaxis die hieronder wordt gebruikt. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | Verwerkt de DOCX → HTML-conversie, archivering en afbeeldingrendering. | +| **A DOCX file** named `input.docx` in a folder you control | Het bron‑document dat we gaan transformeren. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Nodig om `doc.zip` en `out.png` aan te maken. | + +Als je NuGet gebruikt, installeer dan het pakket met: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** De gratis evaluatieversie voegt een watermerk toe aan de gerenderde PNG. Schaf een licentie aan voor productiegebruik. + +--- + +## Stap 1: Laad het bron‑document + +Het eerste wat we doen is het Word‑bestand in het geheugen lezen. Dit is de basis voor **convert docx to html** en voor het later renderen van de PNG. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Waarom dit belangrijk is:* +`Document` is het centrale object; het parseert het .docx‑pakket, lost stijlen op en bereidt bronnen voor zowel HTML‑export als afbeeldingrendering voor. Als het bestand niet gevonden kan worden, wordt er een uitzondering gegooid — zorg dus dat het pad correct is. + +--- + +## Stap 2: Configureer HTML‑opslaan‑opties – De kern van **How to Zip HTML** + +Hier vertellen we Aspose.Words om HTML te genereren, alle gerelateerde assets (afbeeldingen, CSS) op te slaan via een aangepaste resource‑handler, en tenslotte alles te zippen in één enkel archief. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Wat `MyResourceHandler` doet + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Waarom we een handler nodig hebben:* +Bij het converteren van **convert docx to html** kan de bibliotheek veel bijkomende bestanden genereren (bijv. `image001.png`). De handler onderschept elke opslaan‑operatie en zorgt ervoor dat alles in de ZIP terechtkomt in plaats van in een losse map. + +--- + +## Stap 3: Sla het document op als gezipte HTML + +Nu gebeurt de magie. De HTML‑bestanden en hun bronnen worden rechtstreeks naar `doc.zip` geschreven. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Resultaat:** +`YOUR_DIRECTORY/doc.zip` bevat nu: + +* `document.html` – de hoofd‑markup. +* `document_files/` – een submap met afbeeldingen, CSS en eventuele ingesloten media. + +Je kunt het uitpakken om de structuur te verifiëren, of de ZIP direct vanuit een web‑API serveren. + +--- + +## Stap 4: Stel afbeeldings‑renderopties in – Beheers **Set Image Size** en **How to Set Bold Font** + +Als je een visueel momentopname van het Word‑bestand nodig hebt, kun je het renderen naar PNG. Het volgende blok laat zien hoe je de exacte afmetingen definieert, anti‑aliasing inschakelt en vette styling voor alle tekst afdwingt. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Waarom deze vlaggen belangrijk zijn:* +- **Width/Height** laten je de PNG aanpassen aan je UI‑lay‑out. +- **UseAntialiasing** maakt randen glad, waardoor gekartelde lijnen worden voorkomen. +- **FontStyle = Bold** overschrijft elke inline‑stijl in de DOCX, waardoor de PNG een vette weergave heeft ongeacht de oorspronkelijke opmaak. + +--- + +## Stap 5: Render het document naar PNG – De **Export Word to PNG** stap + +Tot slot verbinden we alles en produceren we het afbeeldingsbestand. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Wat je zult zien:** +Een scherpe `out.png` die overeenkomt met de grootte 800 × 600, met alle tekst in vet weergegeven, en eventuele vector‑graphics anti‑aliased. + +--- + +## Volledig werkend voorbeeld – Kopiëren, plakken, uitvoeren + +Hieronder staat het volledige programma, klaar om in een console‑app te plaatsen. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Verwachte output + +| Bestand | Locatie | Beschrijving | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | Gezipped HTML + resources (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, alle tekst vet, anti‑aliased. | + +Je kunt `doc.zip` openen met elk archief‑hulpmiddel, `document.html` extraheren en in een browser bekijken. De afbeelding zal precies verschijnen zoals gerenderd vanuit het originele Word‑bestand. + +--- + +## Veelgestelde vragen & randgevallen + +### Wat als ik een ander afbeeldingsformaat nodig heb? +Vervang de bestandsextensie in de `ImageRenderer`‑constructor (`out.jpg`, `out.tiff`) en pas `ImageSavingOptions` dienovereenkomstig aan. De API kiest automatisch de juiste encoder. + +### Kan ik het compressieniveau van de ZIP regelen? +`HtmlSaveOptions` biedt een `ZipCompressionLevel`‑eigenschap (bijv. `CompressionLevel.BestCompression`). Stel deze in vóór het aanroepen van `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Mijn DOCX bevat grote hoge‑resolutie‑afbeeldingen — wordt de PNG dan enorm? +Ja, omdat we een vaste pixelgrootte afdwingen. Om de bestandsgrootte laag te houden, verlaag je `Width`/`Height` of schakel je `ImageResizeOptions` in binnen `ImageRenderingOptions`. + +### Hoe behoud ik het oorspronkelijke lettertypegewicht in plaats van vet af te dwingen? +Verwijder simpelweg de regel `FontStyle = WebFontStyle.Bold`, of stel deze conditioneel in op basis van een vlag die je aan de gebruiker toont. + +### Werkt dit op Linux/macOS? +Absoluut. Aspose.Words is cross‑platform; zorg er alleen voor dat je de juiste .NET‑runtime geïnstalleerd hebt. + +--- + +## Probleemoplossings‑checklist + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Wrong path or missing file | Verify `YOUR_DIRECTORY/input.docx` exists; use absolute paths for testing. | +| `OutOfMemoryException` during PNG render | Very large document or huge image dimensions | Reduce `Width`/`Height` or render pages individually (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returned a different file name or threw | Ensure `ResourceSaving` does not cancel the save (`args.Cancel = false`). | +| Tekst niet vet in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/dutch/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..f27bb24e1 --- /dev/null +++ b/html/dutch/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-04-26 +description: Sla HTML snel op als ZIP met Aspose.HTML. Leer hoe je HTML naar ZIP kunt + converteren met een aangepaste resourcehandler en HTML naar ZIP kunt renderen in + slechts een paar stappen. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: nl +og_description: Sla HTML op als ZIP met Aspose.HTML. Deze gids laat zien hoe je HTML + naar ZIP kunt converteren, met behulp van een aangepaste resourcehandler om HTML + efficiënt naar ZIP te renderen. +og_title: HTML opslaan als ZIP – Stap‑voor‑stap C#‑tutorial +tags: +- Aspose.HTML +- C# +- HTML rendering +title: HTML opslaan als ZIP – Complete C#‑gids voor het converteren van HTML naar + ZIP +url: /nl/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML opslaan als ZIP – Complete C#-gids om HTML naar ZIP te converteren + +Heb je ooit **HTML als ZIP moeten opslaan** maar wist je niet welke API‑aanroepen je moet combineren? Je bent niet de enige. Veel ontwikkelaars lopen tegen een muur aan wanneer ze een HTML‑pagina willen bundelen met de bijbehorende CSS, afbeeldingen en lettertypen in één archief—vooral wanneer ze het hele geheel in het geheugen willen houden totdat ze beslissen wat ze ermee willen doen. + +Het goede nieuws? Met Aspose.HTML kun je **HTML naar ZIP converteren** in een handvol regels, dankzij de `HtmlSaveOptions`‑klasse en een **aangepaste resource‑handler** die je volledige controle geeft over waar elke bron terechtkomt. In deze tutorial lopen we de exacte stappen door om **HTML naar ZIP te renderen**, alles in het geheugen op te slaan en optioneel de bestanden naar schijf te schrijven. Aan het einde heb je een herbruikbare code‑fragment dat je in elk .NET‑project kunt gebruiken. + +## Wat deze tutorial behandelt + +* Hoe je de HTML‑bronstring definieert (of laadt vanuit een bestand). +* Hoe je een `HTMLDocument` instantiateert met Aspose.HTML. +* Hoe je een **aangepaste resource‑handler** maakt die een `MemoryStream` retourneert voor elke bron. +* Hoe je `HtmlSaveOptions` configureert om een **ZIP‑archief** te genereren dat de HTML en al zijn afhankelijke bestanden bevat. +* Hoe je het document opslaat en, indien gewenst, de in‑geheugen‑data naar een map op schijf schrijft. + +Geen externe tools, geen handmatig zippen—alleen pure C# en Aspose.HTML. + +> **Pro tip:** Als je al Aspose.PDF of Aspose.Words gebruikt, werkt hetzelfde `ResourceHandler`‑patroon daar ook, zodat je deze code kunt hergebruiken voor meerdere documenttypen. + +--- + +## Stap 1: HTML opslaan als ZIP – Definieer de HTML‑bron + +Eerst hebben we een string nodig die de HTML bevat die we willen archiveren. In een echt project lees je dit misschien uit een bestand, een database of een API‑respons, maar voor de duidelijkheid coderen we een klein voorbeeld hard‑gecodeerd. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Waarom dit belangrijk is:** De `HTMLDocument`‑constructor verwacht of een bestandspad of ruwe HTML. Het direct leveren van de string houdt het hele proces in het geheugen, wat perfect is wanneer je later de ZIP rechtstreeks naar een client wilt streamen. + +--- + +## Stap 2: HTML naar ZIP converteren – Laad het HTMLDocument + +Nu geven we de HTML‑string aan Aspose.HTML. Het tweede argument (`"."`) vertelt de bibliotheek waar relatieve URL's moeten worden opgelost; het gebruik van de huidige map werkt voor de meeste eenvoudige gevallen. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Wat er gebeurt:** `HTMLDocument` parseert de markup, bouwt een DOM en bereidt alle gekoppelde bronnen (CSS, afbeeldingen, lettertypen) voor op rendering. Het omhullen met een `using`‑blok garandeert een correcte vrijgave van native resources. + +--- + +## Stap 3: HTML naar ZIP renderen – Maak een aangepaste resource‑handler + +Aspose.HTML laat je bepalen **waar** elke bron wordt weggeschreven. Door `ResourceHandler` te subklassen kunnen we een nieuwe `MemoryStream` teruggeven voor elk bestand dat de renderer moet opslaan. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Waarom een aangepaste handler?** Het standaardgedrag schrijft bestanden naar het bestandssysteem. Met een handler kun je alles in RAM houden, de ZIP direct naar een web‑respons sturen, of zelfs de streams on‑the‑fly versleutelen. + +--- + +## Stap 4: HTML naar ZIP converteren – Configureer opslaan‑opties + +Hier is het hart van de operatie. `HtmlSaveOptions` vertelt Aspose.HTML om alles te bundelen in een ZIP‑archief (`SaveToArchive = true`) en om onze `resourceHandler` te gebruiken voor opslag. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Belangrijk inzicht:** `ArchiveFileName` is de naam die in het ZIP‑archief verschijnt, niet een pad op schijf. Omdat we een geheugen‑gebaseerde handler gebruiken, leeft de ZIP volledig in RAM totdat we beslissen wat we ermee doen. + +--- + +## Stap 5: HTML opslaan als ZIP – Bewaar het archief + +Tenslotte vragen we het document zichzelf op te slaan met de opties die we zojuist hebben opgebouwd. Deze aanroep start de render‑pipeline, roept onze handler aan voor elke bron, en schrijft de uiteindelijke ZIP naar de geheugen‑streams die we hebben opgegeven. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Resultaat:** Op dit moment bevat `resourceHandler` een `MemoryStream` voor het hoofd‑HTML‑bestand, plus extra streams voor eventuele CSS, afbeeldingen of lettertypen die werden gerefereerd. Het ZIP‑bestand is volledig samengesteld binnen die streams. + +--- + +## Stap 6: Aangepaste resource‑handler – Bied een stream voor elke bron + +Hieronder staat de implementatie van `MyResourceHandler`. De `HandleResource`‑methode wordt eenmaal per bron (HTML, CSS, afbeeldingen, lettertypen, …) aangeroepen. We geven simpelweg elke keer een nieuwe `MemoryStream` terug. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Waarom een nieuwe stream?** Elke bron heeft zijn eigen container nodig; het hergebruiken van één enkele stream zou het archief corrupt maken. `MemoryStream` is goedkoop en groeit automatisch naar behoefte. + +--- + +## Stap 7: Optioneel – Schrijf opgeslagen bronnen naar schijf + +Als je de gegenereerde bestanden wilt inspecteren of een kopie op de server wilt bewaren, wordt `ResourceSaved` aangeroepen nadat een stream is gesloten. Hier schrijven we de in‑geheugen‑inhoud naar een map die je opgeeft (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Opmerking voor randgevallen:** Als je draait in een omgeving zonder schrijfrechten (bijv. Azure Functions), sla dan simpelweg de `ResourceSaved`‑implementatie over of vervang deze door een upload naar cloud‑opslag. + +--- + +## Volledig, uitvoerbaar voorbeeld (38 regels) + +Hieronder staat de volledige code die klaar is om in een console‑app te plakken. Hij houdt zich aan de limiet van 15‑40 regels, gebruikt beschrijvende variabelnamen, en bevat placeholders die je kunt aanpassen. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Verwachte output + +* Een `result.zip`‑bestand verschijnt binnen het in‑geheugen‑archief (je kunt het ophalen uit `resourceHandler` als je een eigenschap toevoegt om de stream bloot te stellen). +* Als je de `ResourceSaved`‑implementatie hebt behouden, worden dezelfde bestanden ook naar `YOUR_DIRECTORY/Output` op schijf geschreven, waarbij de interne structuur van het ZIP‑archief wordt gespiegeld. + +--- + +## Veelgestelde vragen (FAQ) + +**Q: Werkt dit met grote HTML‑pagina's?** +A: Absoluut. `MemoryStream` groeit naar behoefte, maar voor pagina's van meerdere megabytes wil je misschien direct naar een `FileStream` streamen om hoge geheugendruk te vermijden. Verander gewoon `HandleResource` zodat het `File.Create(Path.Combine("temp", info.FileName))` retourneert. + +**Q: Kan ik het ZIP‑archief versleutelen?** +A: Aspose.HTML biedt geen ingebouwde versleuteling, maar nadat je de `MemoryStream` hebt opgehaald kun je deze doorgeven aan `System.IO.Compression.ZipArchive` met een wachtwoord, of een externe bibliotheek zoals SharpZipLib gebruiken. + +**Q: Hoe zit het met relatieve URL's in de HTML?** +A: Het tweede argument van `HTMLDocument` (`"."`) vertelt Aspose.HTML om relatieve paden te resolven ten opzichte van de huidige map. Als je bronnen zich elders bevinden, geef dan het juiste basispad of een aangepaste `UriResolver` door. + +--- + +## Conclusie + +We hebben zojuist laten zien hoe je **HTML als ZIP kunt opslaan** met Aspose.HTML, een **aangepaste resource‑handler**, en een paar eenvoudige configuratiestappen. De aanpak stelt je in staat **HTML naar ZIP te converteren** volledig in het geheugen, waardoor je de flexibiliteit hebt om het resultaat naar een web‑client te streamen, op te slaan in een database, of naar schijf te schrijven voor later gebruik. + +Voel je vrij om te experimenteren: vervang `MemoryStream` door een cloud‑opslag‑stream, voeg wachtwoordbeveiliging toe, of verwerk tientallen pagina's in batch parallel. Het kernpatroon—laden, afhandelen, configureren, opslaan—blijft hetzelfde, waardoor dit een herbruikbaar bouwblok is voor elke .NET‑oplossing die **HTML naar ZIP moet renderen** of **ZIP van HTML moet maken**. + +Heb je meer vragen over aangepaste resource‑afhandeling of andere Aspose.HTML‑functies? Laat een reactie achter hieronder, en happy coding! + +![Diagram dat de stroom van HTML‑bron naar in‑geheugen‑ZIP‑archief toont](placeholder.png "voorbeeld html opslaan als zip") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/english/net/generate-jpg-and-png-images/_index.md index 3cc4b6acd..5724ef584 100644 --- a/html/english/net/generate-jpg-and-png-images/_index.md +++ b/html/english/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Learn to use Aspose.HTML for .NET to manipulate HTML documents, convert HTML to Learn how to enable antialiasing for sharper PNG/JPG output when converting DOCX files using Aspose.HTML for .NET. ### [convert docx to png – create zip archive c# tutorial](./convert-docx-to-png-create-zip-archive-c-tutorial/) Learn how to convert DOCX files to PNG images and package them into a ZIP archive using C# and Aspose.HTML. +### [Create PNG from HTML in C# – Step‑by‑Step Guide](./create-png-from-html-in-c-step-by-step-guide/) +Step-by-step guide to generate PNG images from HTML using C# and Aspose.HTML for .NET. ## Conclusion diff --git a/html/english/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/english/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..1496ca26c --- /dev/null +++ b/html/english/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-26 +description: Create PNG from HTML using Aspose.HTML. Learn how to render HTML to PNG, + convert HTML to image, export HTML as PNG, and render HTML document image quickly. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: en +og_description: Create PNG from HTML in C# with Aspose.HTML. This guide shows you + how to render HTML to PNG, convert HTML to image, and export HTML as PNG. +og_title: Create PNG from HTML in C# – Complete Programming Guide +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Create PNG from HTML in C# – Step‑by‑Step Guide +url: /net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create PNG from HTML in C# – Complete Programming Guide + +Ever needed to **create PNG from HTML** but weren’t sure which library would give you crisp output without a headache? You’re not alone. Many developers stumble when they try to turn a web‑page into a bitmap, especially when they need anti‑aliasing or custom font hints. + +In this tutorial we’ll walk through a hands‑on solution using **Aspose.HTML for .NET**. By the end you’ll know how to **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, and even tweak the rendering pipeline for perfect results. No fluff—just a working code example, why each line matters, and a few pro tips you’ll wish you’d known earlier. + +## What You’ll Need + +- .NET 6+ (or .NET Framework 4.6+). +- The `Aspose.HTML` NuGet package (version 23.9 or newer). +- A simple `input.html` file you want to turn into a picture. +- An IDE such as Visual Studio 2022 (any editor that can compile C# will do). + +That’s it. No extra binaries, no external services, and no obscure configuration files. Ready? Let’s dive in. + +## Create PNG from HTML – Core Steps + +Below we break the whole process into four logical chunks. Each chunk maps to a concrete code block, and each block is accompanied by a short “why” explanation. Follow the order, copy the code, and you’ll have a PNG sitting in `YOUR_DIRECTORY/output.png` in seconds. + +### Step 1: Load the HTML Document + +The first thing we have to do is give Aspose.HTML a document object to work with. Think of it as handing the renderer a fresh canvas that already contains all the markup, CSS, and images referenced by the HTML file. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Why this matters:* `HTMLDocument` parses the file, resolves relative URLs, and builds a DOM tree. If the file can’t be found, an exception is thrown right here—so you catch problems early before any rendering work begins. + +### Step 2: Configure Image Rendering Options + +Next we tell Aspose how big the final picture should be and whether we want anti‑aliasing. These options directly affect the visual fidelity of the **render html to png** operation. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Why this matters:* Larger dimensions give you more detail but increase memory usage. `UseAntialiasing` is the secret sauce for a professional‑looking **export html as png**—without it you’ll see stair‑step artifacts around text and vector graphics. + +### Step 3: Fine‑Tune Text Rendering (Hinting & Font Style) + +If your HTML uses custom fonts or you need bold/italic styling, you’ll want to enable hinting and set the appropriate `WebFontStyle`. Hinting aligns glyphs to pixel boundaries, which is crucial when you **convert html to image** at a fixed resolution. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Why this matters:* Hinting prevents blurry letters, especially on low‑DPI screens. Combining `Bold` and `Italic` demonstrates how you can layer multiple styles; you can of course pick just one or none, depending on your design. + +### Step 4: Render the PNG File + +Finally we instantiate `ImageRenderer`, point it at the document, give it the output path, and hand over the options we built. The `Render()` call does all the heavy lifting. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Why this matters:* `ImageRenderer` respects every setting we defined earlier—size, anti‑aliasing, text hinting, font style. When `Render()` finishes, you have a fully‑compliant PNG that can be displayed in browsers, uploaded to cloud storage, or embedded in reports. + +> **Pro tip:** If you need a different image format (JPEG, BMP, GIF), just change the file extension in the output path. Aspose automatically selects the correct encoder. + +## Render HTML to PNG with Aspose.HTML – Full Example + +Putting all the pieces together gives you a single, self‑contained program. Copy the block below into a new console app and run it; you’ll see `output.png` appear next to your source HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Expected Result + +After execution you should see a file similar to the mock‑up below (the actual look depends on your HTML content). + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +The PNG will preserve layout, colors, and fonts exactly as the browser would display the page—thanks to the **render html document image** engine inside Aspose. + +## Common Questions & Edge Cases + +### What if My HTML References External Images? + +Aspose.HTML follows relative URLs based on the folder of `input.html`. If you have images stored elsewhere, either: + +1. Use absolute URLs (e.g., `https://example.com/logo.png`). +2. Set `htmlDocument.BaseUrl` to point to the folder containing the assets. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### How Do I Adjust DPI for High‑Resolution Output? + +You can scale the rendering size while keeping the same aspect ratio, or you can set `renderingOptions.DPI` (default is 96). For print‑ready PNGs, 300 DPI is common: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Can I Render Multiple Pages from a Single HTML Document? + +Yes. If the HTML contains CSS page breaks (`@media print { page-break-after: always; }`), Aspose will generate separate PNG files per page when you use `MultiPageImageRenderer`. This is an advanced scenario, but the same **convert html to image** principle applies. + +### What About Memory Consumption? + +Rendering a massive page (several thousand pixels wide) can consume hundreds of megabytes. To keep memory usage low: + +- Render at the smallest acceptable dimensions. +- Turn off `UseAntialiasing` if quality isn’t critical. +- Dispose of `HTMLDocument` and `ImageRenderer` promptly using `using` statements (as shown). + +## Render HTML Document Image – Next Steps + +Now that you’ve mastered the basics of **render html to png**, consider these extensions: + +- **Batch conversion:** Loop through a folder of HTML files and generate PNGs in one go. +- **Watermarking:** After rendering, load the PNG with `System.Drawing` or `ImageSharp` and overlay a logo. +- **PDF generation:** Use `PdfRenderer` (also part of Aspose.HTML) to create PDFs from the same HTML source. + +Each of these builds on the same core concepts you just learned, so you’ll feel right at home. + +## Conclusion + +We’ve taken you from the problem statement—*how to create PNG from HTML*—to a complete, runnable solution that **renders HTML to PNG**, **converts HTML to image**, and **exports HTML as PNG** with fine‑grained control over size, anti‑aliasing, and text hinting. + +Give it a try with your own web page, tweak the dimensions, and experiment with different font styles. The code is short, the API is intuitive, and the results look exactly like a screenshot taken in a browser—only faster and fully automatable. + +If you enjoyed this guide, check out our other tutorials on **render html document image** manipulation, such as converting HTML to PDF or generating SVG snapshots. Happy coding, and may your PNGs always be pixel‑perfect! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/english/net/html-extensions-and-conversions/_index.md index a50bc9ccb..5a7178ff6 100644 --- a/html/english/net/html-extensions-and-conversions/_index.md +++ b/html/english/net/html-extensions-and-conversions/_index.md @@ -18,7 +18,7 @@ Are you eager to enhance your web development skills and unlock the power of HTM ## What Is Aspose.HTML for .NET? -Before we dive into the tutorials, let's take a moment to understand what Aspose.HTML for .NET is. Aspose.HTML is a powerful library that empowers developers to work with HTML documents in a variety of ways, including conversion, extraction, and manipulation. Whether you are building a website, working on a web application, or dealing with data extraction, Aspose.HTML for .NET can be your go-to tool. +Before we dive into the tutorials, let's take a moment to understand what Aspose.HTML for .NET is. Aspose.HTML is a powerful library that empowers developers to work with HTML documents in a variety of ways, including conversion, extraction, and manipulation. Whether you are building a website, working on a web application, or dealing with data extraction, Aspose.HTML for .NET can be your go‑to tool. ## HTML Extensions Demystified @@ -30,55 +30,59 @@ Web development often involves converting HTML documents into different formats. ## Get Started with Aspose.HTML -Are you ready to get started? Aspose.HTML for .NET tutorials cater to both beginners and experienced developers. Whether you are new to HTML extensions and conversions or seeking advanced tips, our step-by-step guides are designed to suit your needs. +Are you ready to get started? Aspose.HTML for .NET tutorials cater to both beginners and experienced developers. Whether you are new to HTML extensions and conversions or seeking advanced tips, our step‑by‑step guides are designed to suit your needs. ## Why Aspose.HTML for .NET? -Aspose.HTML for .NET is not just a library; it's a game-changer in the world of web development. It offers an extensive range of features and tools that streamline your HTML-related tasks. By the end of these tutorials, you'll be equipped with the knowledge and skills to maximize the potential of Aspose.HTML for .NET. +Aspose.HTML for .NET is not just a library; it's a game‑changer in the world of web development. It offers an extensive range of features and tools that streamline your HTML‑related tasks. By the end of these tutorials, you'll be equipped with the knowledge and skills to maximize the potential of Aspose.HTML for .NET. ## HTML Extensions and Conversions Tutorials ### [Convert HTML to PDF in .NET with Aspose.HTML](./convert-html-to-pdf/) -Convert HTML to PDF effortlessly with Aspose.HTML for .NET. Follow our step-by-step guide and unleash the power of HTML-to-PDF conversion. +Convert HTML to PDF effortlessly with Aspose.HTML for .NET. Follow our step‑by‑step guide and unleash the power of HTML‑to‑PDF conversion. ### [Create PDF from HTML – C# Step‑by‑Step Guide](./create-pdf-from-html-c-step-by-step-guide/) Learn how to generate PDF files from HTML using Aspose.HTML for .NET with a detailed C# step‑by‑step guide. ### [Convert EPUB to Image in .NET with Aspose.HTML](./convert-epub-to-image/) -Learn how to convert EPUB to images using Aspose.HTML for .NET. Step-by-step tutorial with code examples and customizable options. +Learn how to convert EPUB to images using Aspose.HTML for .NET. Step‑by‑step tutorial with code examples and customizable options. ### [Convert EPUB to PDF in .NET with Aspose.HTML](./convert-epub-to-pdf/) -Learn how to convert EPUB to PDF using Aspose.HTML for .NET. This step-by-step guide covers customization options, FAQs, and more for seamless document conversion. +Learn how to convert EPUB to PDF using Aspose.HTML for .NET. This step‑by‑step guide covers customization options, FAQs, and more for seamless document conversion. ### [Convert EPUB to XPS in .NET with Aspose.HTML](./convert-epub-to-xps/) -Learn how to convert EPUB to XPS in .NET using Aspose.HTML for .NET. Follow our step-by-step guide for effortless conversions. +Learn how to convert EPUB to XPS in .NET using Aspose.HTML for .NET. Follow our step‑by‑step guide for effortless conversions. ### [Convert HTML to BMP in .NET with Aspose.HTML](./convert-html-to-bmp/) Learn how to convert HTML to BMP in .NET using Aspose.HTML for .NET. Comprehensive guide for web developers for Leveraging Aspose.HTML for .NET. ### [Convert HTML to DOC and DOCX in .NET with Aspose.HTML](./convert-html-to-doc-docx/) -Learn how to harness the power of Aspose.HTML for .NET in this step-by-step guide. Convert HTML to DOCX effortlessly and level up your .NET projects. Get started today! +Learn how to harness the power of Aspose.HTML for .NET in this step‑by‑step guide. Convert HTML to DOCX effortlessly and level up your .NET projects. Get started today! ### [Convert HTML to GIF in .NET with Aspose.HTML](./convert-html-to-gif/) -Discover the power of Aspose.HTML for .NET: A step-by-step guide to converting HTML to GIF. Prerequisites, code examples, FAQs, and more! Optimize your HTML manipulation with Aspose.HTML. +Discover the power of Aspose.HTML for .NET: A step‑by‑step guide to converting HTML to GIF. Prerequisites, code examples, FAQs, and more! Optimize your HTML manipulation with Aspose.HTML. ### [Convert HTML to JPEG in .NET with Aspose.HTML](./convert-html-to-jpeg/) -Learn how to convert HTML to JPEG in .NET with Aspose.HTML for .NET. A step-by-step guide to harnessing the power of Aspose.HTML for .NET. Optimize your web development tasks effortlessly. +Learn how to convert HTML to JPEG in .NET with Aspose.HTML for .NET. A step‑by‑step guide to harnessing the power of Aspose.HTML for .NET. Optimize your web development tasks effortlessly. ### [Convert HTML to Markdown in .NET with Aspose.HTML](./convert-html-to-markdown/) -Learn how to convert HTML to Markdown in .NET using Aspose.HTML for efficient content manipulation. Get step-by-step guidance for a seamless conversion process. +Learn how to convert HTML to Markdown in .NET using Aspose.HTML for efficient content manipulation. Get step‑by‑step guidance for a seamless conversion process. ### [Convert HTML to MHTML in .NET with Aspose.HTML](./convert-html-to-mhtml/) -Convert HTML to MHTML in .NET with Aspose.HTML - A step-by-step guide for efficient web content archiving. Learn how to use Aspose.HTML for .NET to create MHTML archives. +Convert HTML to MHTML in .NET with Aspose.HTML - A step‑by‑step guide for efficient web content archiving. Learn how to use Aspose.HTML for .NET to create MHTML archives. ### [Convert HTML to PNG in .NET with Aspose.HTML](./convert-html-to-png/) -Discover how to use Aspose.HTML for .NET to manipulate and convert HTML documents. Step-by-step guide for effective .NET development. +Discover how to use Aspose.HTML for .NET to manipulate and convert HTML documents. Step‑by‑step guide for effective .NET development. ### [Convert HTML to TIFF in .NET with Aspose.HTML](./convert-html-to-tiff/) -Learn how to convert HTML to TIFF with Aspose.HTML for .NET. Follow our step-by-step guide for efficient web content optimization. +Learn how to convert HTML to TIFF with Aspose.HTML for .NET. Follow our step‑by‑step guide for efficient web content optimization. ### [Convert HTML to XPS in .NET with Aspose.HTML](./convert-html-to-xps/) -Discover the power of Aspose.HTML for .NET: Convert HTML to XPS effortlessly. Prerequisites, step-by-step guide, and FAQs included. +Discover the power of Aspose.HTML for .NET: Convert HTML to XPS effortlessly. Prerequisites, step‑by‑step guide, and FAQs included. ### [How to Zip HTML in C# – Save HTML to Zip](./how-to-zip-html-in-c-save-html-to-zip/) -Learn how to zip HTML files in C# using Aspose.HTML, saving HTML content to a ZIP archive with step-by-step guidance. +Learn how to zip HTML files in C# using Aspose.HTML, saving HTML content to a ZIP archive with step‑by‑step guidance. +### [How to Zip HTML from DOCX – Complete C# Guide](./how-to-zip-html-from-docx-complete-c-guide/) +Learn how to extract HTML from a DOCX file and zip it using C# and Aspose.HTML in a complete step‑by‑step guide. ### [Create HTML Document with Styled Text and Export to PDF – Full Guide](./create-html-document-with-styled-text-and-export-to-pdf-full/) Learn how to create an HTML document with styled text and export it to PDF using Aspose.HTML for .NET in this comprehensive guide. ### [Save HTML as ZIP – Complete C# Tutorial](./save-html-as-zip-complete-c-tutorial/) Learn how to save HTML files as a ZIP archive using Aspose.HTML for .NET with a complete C# example. +### [Save HTML as ZIP – Complete C# Guide to Convert HTML to ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Learn how to save HTML as a ZIP archive using Aspose.HTML for .NET with a comprehensive C# guide. ### [Convert EPUB to Image in .NET with Aspose.HTML](./convert-epub-to-image/) -Learn how to convert EPUB to images using Aspose.HTML for .NET. Step-by-step tutorial with code examples and customizable options. +Learn how to convert EPUB to images using Aspose.HTML for .NET. Step‑by‑step tutorial with code examples and customizable options. ### [Convert EPUB to PDF in .NET with Aspose.HTML](./convert-epub-to-pdf/) -Learn how to convert EPUB to PDF using Aspose.HTML for .NET. This step-by-step guide covers customization options, FAQs, and more for seamless document conversion. +Learn how to convert EPUB to PDF using Aspose.HTML for .NET. This step‑by‑step guide covers customization options, FAQs, and more for seamless document conversion. ### [Convert EPUB to XPS in .NET with Aspose.HTML](./convert-epub-to-xps/) -Learn how to convert EPUB to XPS in .NET using Aspose.HTML for .NET. Follow our step-by-step guide for effortless conversions. +Learn how to convert EPUB to XPS in .NET using Aspose.HTML for .NET. Follow our step‑by‑step guide for effortless conversions. ### [Save HTML to ZIP in C# – Complete In‑Memory Example](./save-html-to-zip-in-c-complete-in-memory-example/) -Learn how to save HTML content into a ZIP archive in memory using C# and Aspose.HTML for .NET in this step-by-step tutorial. +Learn how to save HTML content into a ZIP archive in memory using C# and Aspose.HTML for .NET in this step‑by‑step tutorial. ## Conclusion diff --git a/html/english/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/english/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..4f989a8fd --- /dev/null +++ b/html/english/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,294 @@ +--- +category: general +date: 2026-04-26 +description: Learn how to zip HTML output from a DOCX file, convert docx to HTML, + set image size, export word to PNG and how to set bold font – step‑by‑step code. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: en +og_description: Master how to zip HTML output from a DOCX file, convert docx to HTML, + set image size, export word to PNG and how to set bold font with clear C# examples. +og_title: How to Zip HTML from DOCX – Complete C# Guide +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: How to Zip HTML from DOCX – Complete C# Guide +url: /net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Zip HTML from DOCX – Complete C# Guide + +Ever wondered **how to zip html** that you generate from a Word document? Maybe you need a single archive to ship to a client or to store in the cloud, and you don’t want a folder full of loose files. In this tutorial we’ll walk through converting a .docx file to HTML, bundling the result into a ZIP file, and then rendering the same document to a PNG image with a custom size and bold text. Along the way we’ll also cover *convert docx to html*, *set image size*, *export word to png*, and *how to set bold font*—all in one cohesive example. + +By the end of this guide you’ll have a ready‑to‑run C# program that: + +* Loads a DOCX from disk. +* Saves it as HTML while automatically zipping the output. +* Renders a PNG with a precise width, height, antialiasing, and bold font styling. + +No external scripts, no hand‑rolled zip logic—just the Aspose.Words for .NET API (or any equivalent library) doing the heavy lifting. + +--- + +## Prerequisites — What You Need Before You Start + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Provides the runtime for C# 10 syntax used below. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | Handles the DOCX → HTML conversion, archiving, and image rendering. | +| **A DOCX file** named `input.docx` in a folder you control | The source document we’ll transform. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Needed to create `doc.zip` and `out.png`. | + +If you’re using NuGet, install the package with: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** The free evaluation version adds a watermark to the rendered PNG. Grab a license for production use. + +--- + +## Step 1: Load the Source Document + +The first thing we do is read the Word file into memory. This is the foundation for **convert docx to html** and for rendering the PNG later on. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Why this matters:* +`Document` is the central object; it parses the .docx package, resolves styles, and prepares resources for both HTML export and image rendering. If the file can’t be found, an exception is thrown—so make sure the path is correct. + +--- + +## Step 2: Configure HTML Save Options – The Core of **How to Zip HTML** + +Here we tell Aspose.Words to generate HTML, store all related assets (images, CSS) via a custom resource handler, and finally zip everything into a single archive. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### What `MyResourceHandler` Does + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Why we need a handler:* +When converting **convert docx to html**, the library may emit many ancillary files (e.g., `image001.png`). The handler intercepts each save operation, ensuring everything ends up inside the ZIP instead of a loose folder. + +--- + +## Step 3: Save the Document as Zipped HTML + +Now the magic happens. The HTML files and their resources are written straight into `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Result:** +`YOUR_DIRECTORY/doc.zip` now contains: + +* `document.html` – the main markup. +* `document_files/` – a subfolder with images, CSS, and any embedded media. + +You can unzip it to verify the structure, or serve the ZIP directly from a web API. + +--- + +## Step 4: Set Up Image Rendering Options – Controlling **Set Image Size** and **How to Set Bold Font** + +If you need a visual snapshot of the Word file, you can render it to PNG. The following block shows how to define the exact dimensions, enable antialiasing, and force bold styling for all text. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Why these flags matter:* +- **Width/Height** let you tailor the PNG to your UI layout. +- **UseAntialiasing** smooths edges, preventing jagged lines. +- **FontStyle = Bold** overrides any inline style in the DOCX, ensuring the PNG reflects a bold look regardless of the original formatting. + +--- + +## Step 5: Render the Document to PNG – The **Export Word to PNG** Step + +Finally, we tie everything together and produce the image file. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**What you’ll see:** +A crisp `out.png` that matches the 800 × 600 size, with all text rendered in bold, and any vector graphics antialiased. + +--- + +## Full Working Example – Copy, Paste, Run + +Below is the complete program, ready for you to drop into a console app. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Expected Output + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | Zipped HTML + resources (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, all text bold, antialiased. | + +You can open `doc.zip` with any archive tool, extract `document.html`, and view it in a browser. The image will appear exactly as rendered from the original Word file. + +--- + +## Common Questions & Edge Cases + +### What if I need a different image format? +Swap the file extension in the `ImageRenderer` constructor (`out.jpg`, `out.tiff`) and adjust `ImageSavingOptions` accordingly. The API automatically picks the correct encoder. + +### Can I control the compression level of the ZIP? +`HtmlSaveOptions` exposes a `ZipCompressionLevel` property (e.g., `CompressionLevel.BestCompression`). Set it before calling `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### My DOCX contains large high‑resolution pictures—will the PNG be huge? +Yes, because we force a fixed pixel size. To keep the file size low, either lower `Width`/`Height` or enable `ImageResizeOptions` inside `ImageRenderingOptions`. + +### How do I keep the original font weight instead of forcing bold? +Simply remove the `FontStyle = WebFontStyle.Bold` line, or set it conditionally based on a flag you expose to the user. + +### Does this work on Linux/macOS? +Absolutely. Aspose.Words is cross‑platform; just ensure you have the appropriate .NET runtime installed. + +--- + +## Troubleshooting Checklist + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Wrong path or missing file | Verify `YOUR_DIRECTORY/input.docx` exists; use absolute paths for testing. | +| `OutOfMemoryException` during PNG render | Very large document or huge image dimensions | Reduce `Width`/`Height` or render pages individually (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returned a different file name or threw | Ensure `ResourceSaving` does not cancel the save (`args.Cancel = false`). | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/english/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..cd8986dc4 --- /dev/null +++ b/html/english/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-04-26 +description: Save HTML as ZIP quickly with Aspose.HTML. Learn how to convert HTML + to ZIP using a custom resource handler and render HTML to ZIP in just a few steps. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: en +og_description: Save HTML as ZIP with Aspose.HTML. This guide shows how to convert + HTML to ZIP, using a custom resource handler to render HTML to ZIP efficiently. +og_title: Save HTML as ZIP – Step‑by‑Step C# Tutorial +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Save HTML as ZIP – Complete C# Guide to Convert HTML to ZIP +url: /net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save HTML as ZIP – Complete C# Guide to Convert HTML to ZIP + +Ever needed to **save HTML as ZIP** but weren’t sure which API calls to chain together? You’re not alone. Many developers hit a wall when they want to bundle an HTML page together with its CSS, images, and fonts into a single archive—especially when they want the whole thing to stay in memory until they decide what to do with it. + +The good news? With Aspose.HTML you can **convert HTML to ZIP** in a handful of lines, thanks to the `HtmlSaveOptions` class and a **custom resource handler** that gives you total control over where each resource ends up. In this tutorial we’ll walk through the exact steps to **render HTML to ZIP**, store everything in memory, and optionally write the files out to disk. By the end you’ll have a reusable snippet you can drop into any .NET project. + +## What This Tutorial Covers + +* How to define the HTML source string (or load it from a file). +* How to instantiate an `HTMLDocument` with Aspose.HTML. +* How to create a **custom resource handler** that returns a `MemoryStream` for each resource. +* How to configure `HtmlSaveOptions` to generate a **ZIP archive** containing the HTML and all its dependent files. +* How to save the document and, if you like, write the in‑memory data to a folder on disk. + +No external tools, no manual zipping—just pure C# and Aspose.HTML. + +> **Pro tip:** If you’re already using Aspose.PDF or Aspose.Words, the same `ResourceHandler` pattern works there too, so you can reuse this code across multiple document types. + +--- + +## Step 1: Save HTML as ZIP – Define the HTML Source + +First we need a string that holds the HTML we want to archive. In a real project you might read this from a file, a database, or an API response, but for clarity we’ll hard‑code a tiny example. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Why this matters:** The `HTMLDocument` constructor expects either a file path or raw HTML. Supplying the string directly keeps the whole process in memory, which is perfect when you later want to stream the ZIP directly to a client. + +--- + +## Step 2: Convert HTML to ZIP – Load the HTMLDocument + +Now we hand the HTML string to Aspose.HTML. The second argument (`"."`) tells the library where to resolve relative URLs; using the current directory works for most simple cases. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **What’s happening:** `HTMLDocument` parses the markup, builds a DOM, and prepares all linked resources (CSS, images, fonts) for rendering. Wrapping it in a `using` block guarantees proper disposal of native resources. + +--- + +## Step 3: Render HTML to ZIP – Create a Custom Resource Handler + +Aspose.HTML lets you decide **where** each resource is written. By subclassing `ResourceHandler` we can hand back a fresh `MemoryStream` for every file that the renderer needs to save. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Why a custom handler?** The default behavior writes files to the file system. With a handler you can keep everything in RAM, push the ZIP straight to a web response, or even encrypt the streams on the fly. + +--- + +## Step 4: Convert HTML to ZIP – Configure Save Options + +Here’s the heart of the operation. `HtmlSaveOptions` tells Aspose.HTML to bundle everything into a ZIP archive (`SaveToArchive = true`) and to use our `resourceHandler` for storage. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Key insight:** `ArchiveFileName` is the name that will appear inside the ZIP, not a path on disk. Because we’re using a memory‑based handler, the ZIP lives entirely in RAM until we decide what to do with it. + +--- + +## Step 5: Save HTML as ZIP – Persist the Archive + +Finally, we ask the document to save itself using the options we just built. This call triggers the rendering pipeline, calls our handler for each resource, and writes the final ZIP to the memory streams we provided. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Result:** At this point `resourceHandler` holds a `MemoryStream` for the main HTML file, plus additional streams for any CSS, images, or fonts that were referenced. The ZIP file is fully assembled inside those streams. + +--- + +## Step 6: Custom Resource Handler – Provide a Stream for Each Resource + +Below is the implementation of `MyResourceHandler`. The `HandleResource` method is called once per resource (HTML, CSS, images, fonts, …). We simply hand back a new `MemoryStream` each time. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Why a fresh stream?** Each resource needs its own container; reusing a single stream would corrupt the archive. `MemoryStream` is cheap and automatically grows as needed. + +--- + +## Step 7: Optional – Write Saved Resources to Disk + +If you’d like to inspect the generated files or keep a copy on the server, `ResourceSaved` is called after a stream is closed. Here we write the in‑memory content to a folder you specify (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Edge case note:** If you’re running in an environment without write permissions (e.g., Azure Functions), simply skip the `ResourceSaved` implementation or replace it with a cloud‑storage upload. + +--- + +## Full, Runnable Example (38 Lines) + +Below is the complete code ready to paste into a console app. It respects the 15‑40 line limit, uses descriptive variable names, and includes placeholders you can adjust. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Expected Output + +* A `result.zip` file appears inside the in‑memory archive (you can retrieve it from `resourceHandler` if you add a property to expose the stream). +* If you kept the `ResourceSaved` implementation, the same files are also written to `YOUR_DIRECTORY/Output` on disk, mirroring the ZIP’s internal structure. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with large HTML pages?** +A: Absolutely. `MemoryStream` expands as needed, but for multi‑megabyte pages you might want to stream directly to a `FileStream` to avoid high memory pressure. Just change `HandleResource` to return `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Can I encrypt the ZIP?** +A: Aspose.HTML doesn’t provide built‑in encryption, but after you retrieve the `MemoryStream` you can feed it to `System.IO.Compression.ZipArchive` with a password, or use a third‑party library like SharpZipLib. + +**Q: What about relative URLs inside the HTML?** +A: The second argument to `HTMLDocument` (`"."`) tells Aspose.HTML to resolve relative paths against the current directory. If your resources live elsewhere, pass the appropriate base path or a custom `UriResolver`. + +--- + +## Conclusion + +We’ve just shown how to **save HTML as ZIP** using Aspose.HTML, a **custom resource handler**, and a few straightforward configuration steps. The approach lets you **convert HTML to ZIP** entirely in memory, giving you the flexibility to stream the result to a web client, store it in a database, or write it to disk for later use. + +Feel free to experiment: swap `MemoryStream` for a cloud storage stream, add password protection, or batch‑process dozens of pages in parallel. The core pattern—load, handle, configure, save—remains the same, making this a reusable building block for any .NET solution that needs to **render HTML to ZIP** or **create ZIP from HTML**. + +Got more questions about custom resource handling or other Aspose.HTML features? Drop a comment below, and happy coding! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/french/net/generate-jpg-and-png-images/_index.md b/html/french/net/generate-jpg-and-png-images/_index.md index 59ca2dad1..b3c5a4565 100644 --- a/html/french/net/generate-jpg-and-png-images/_index.md +++ b/html/french/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Apprenez à utiliser Aspose.HTML pour .NET pour manipuler des documents HTML, co Apprenez à activer l'anticrénelage pour améliorer la qualité des images PNG/JPG générées à partir de documents DOCX avec Aspose.HTML. ### [Convertir docx en png – créer une archive zip tutoriel C#](./convert-docx-to-png-create-zip-archive-c-tutorial/) Apprenez à convertir des fichiers DOCX en images PNG et à les compresser dans une archive ZIP avec C#. +### [Créer un PNG à partir de HTML en C# – Guide étape par étape](./create-png-from-html-in-c-step-by-step-guide/) +Apprenez à générer des images PNG à partir de code HTML en C# grâce à un guide complet et illustré. ## Conclusion diff --git a/html/french/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/french/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..d9f06f7f0 --- /dev/null +++ b/html/french/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Créez un PNG à partir de HTML avec Aspose.HTML. Apprenez comment rendre + le HTML en PNG, convertir le HTML en image, exporter le HTML en PNG et générer rapidement + l'image d’un document HTML. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: fr +og_description: Créez un PNG à partir de HTML en C# avec Aspose.HTML. Ce guide vous + montre comment rendre le HTML en PNG, convertir le HTML en image et exporter le + HTML au format PNG. +og_title: Créer un PNG à partir de HTML en C# – Guide complet de programmation +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Créer un PNG à partir de HTML en C# – Guide étape par étape +url: /fr/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un PNG à partir de HTML en C# – Guide de programmation complet + +Vous avez déjà eu besoin de **créer un PNG à partir de HTML** mais vous ne saviez pas quelle bibliothèque vous offrirait un rendu net sans prise de tête ? Vous n'êtes pas seul. De nombreux développeurs rencontrent des difficultés lorsqu'ils essaient de transformer une page web en bitmap, surtout lorsqu'ils ont besoin d'anti‑aliasing ou d'indices de police personnalisés. + +Dans ce tutoriel, nous parcourrons une solution pratique en utilisant **Aspose.HTML for .NET**. À la fin, vous saurez comment **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, et même ajuster le pipeline de rendu pour des résultats parfaits. Pas de superflu—juste un exemple de code fonctionnel, pourquoi chaque ligne est importante, et quelques astuces de pro que vous auriez aimé connaître plus tôt. + +## Ce dont vous avez besoin + +- .NET 6+ (ou .NET Framework 4.6+). +- Le package NuGet `Aspose.HTML` (version 23.9 ou plus récent). +- Un fichier simple `input.html` que vous souhaitez transformer en image. +- Un IDE tel que Visual Studio 2022 (tout éditeur capable de compiler du C# convient). + +C’est tout. Aucun binaire supplémentaire, aucun service externe, et aucun fichier de configuration obscur. Prêt ? Plongeons‑y. + +## Créer un PNG à partir de HTML – Étapes principales + +Ci-dessous, nous décomposons le processus complet en quatre parties logiques. Chaque partie correspond à un bloc de code concret, et chaque bloc est accompagné d’une courte explication « pourquoi ». Suivez l’ordre, copiez le code, et vous aurez un PNG placé dans `YOUR_DIRECTORY/output.png` en quelques secondes. + +### Étape 1 : Charger le document HTML + +La première chose à faire est de fournir à Aspose.HTML un objet document avec lequel travailler. Considérez cela comme remettre au moteur de rendu une toile vierge contenant déjà tout le balisage, le CSS et les images référencés par le fichier HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Pourquoi c’est important :* `HTMLDocument` analyse le fichier, résout les URL relatives et construit un arbre DOM. Si le fichier est introuvable, une exception est levée à ce moment‑là—vous détectez ainsi les problèmes tôt, avant que tout rendu ne commence. + +### Étape 2 : Configurer les options de rendu d’image + +Ensuite, nous indiquons à Aspose la taille souhaitée de l’image finale et si nous voulons de l’anti‑aliasing. Ces options influencent directement la fidélité visuelle de l’opération **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Pourquoi c’est important :* Des dimensions plus grandes offrent plus de détails mais augmentent l’utilisation de mémoire. `UseAntialiasing` est la sauce secrète pour un **export html as png** au rendu professionnel —sans elle, vous verrez des artefacts en escalier autour du texte et des graphiques vectoriels. + +### Étape 3 : Affiner le rendu du texte (Hinting & style de police) + +Si votre HTML utilise des polices personnalisées ou si vous avez besoin d’un style gras/italique, vous voudrez activer le hinting et définir le `WebFontStyle` approprié. Le hinting aligne les glyphes sur les limites de pixel, ce qui est crucial lorsque vous **convert html to image** à une résolution fixe. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Pourquoi c’est important :* Le hinting empêche les lettres floues, surtout sur les écrans à faible DPI. Combiner `Bold` et `Italic` montre comment vous pouvez superposer plusieurs styles ; vous pouvez bien sûr n’en choisir qu’un ou aucun, selon votre conception. + +### Étape 4 : Rendre le fichier PNG + +Enfin, nous instancions `ImageRenderer`, le pointons vers le document, lui indiquons le chemin de sortie, et lui transmettons les options que nous avons créées. L’appel `Render()` effectue tout le travail lourd. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Pourquoi c’est important :* `ImageRenderer` respecte chaque paramètre que nous avons défini précédemment—taille, anti‑aliasing, hinting du texte, style de police. Lorsque `Render()` se termine, vous avez un PNG pleinement conforme qui peut être affiché dans les navigateurs, téléchargé vers le stockage cloud, ou intégré dans des rapports. + +> **Astuce pro :** Si vous avez besoin d’un autre format d’image (JPEG, BMP, GIF), il suffit de changer l’extension du fichier dans le chemin de sortie. Aspose sélectionne automatiquement l’encodeur approprié. + +## Rendre du HTML en PNG avec Aspose.HTML – Exemple complet + +Assembler toutes les pièces vous donne un programme unique et autonome. Copiez le bloc ci‑dessous dans une nouvelle application console et exécutez‑le ; vous verrez `output.png` apparaître à côté de votre HTML source. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Résultat attendu + +Après l’exécution, vous devriez voir un fichier similaire à la maquette ci‑dessous (l’apparence réelle dépend de votre contenu HTML). + +![Exemple de création de PNG à partir de HTML](/images/html-to-png-sample.png "Exemple de sortie lors de la création d’un PNG à partir de HTML avec Aspose.HTML") + +Le PNG conservera la mise en page, les couleurs et les polices exactement comme le navigateur afficherait la page—grâce au moteur **render html document image** intégré à Aspose. + +## Questions fréquentes et cas particuliers + +### Et si mon HTML référence des images externes ? + +Aspose.HTML suit les URL relatives en fonction du dossier de `input.html`. Si vous avez des images stockées ailleurs, vous pouvez : + +1. Utiliser des URL absolues (par ex., `https://example.com/logo.png`). +2. Définir `htmlDocument.BaseUrl` pour pointer vers le dossier contenant les ressources. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Comment ajuster le DPI pour une sortie haute résolution ? + +Vous pouvez mettre à l’échelle la taille de rendu tout en conservant le même ratio d’aspect, ou vous pouvez définir `renderingOptions.DPI` (la valeur par défaut est 96). Pour des PNG prêts à l’impression, 300 DPI est courant : + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Puis‑je rendre plusieurs pages à partir d’un seul document HTML ? + +Oui. Si le HTML contient des sauts de page CSS (`@media print { page-break-after: always; }`), Aspose générera des fichiers PNG séparés par page lorsque vous utilisez `MultiPageImageRenderer`. C’est un scénario avancé, mais le même principe **convert html to image** s’applique. + +### Qu’en est‑il de la consommation de mémoire ? + +Rendre une page massive (plusieurs milliers de pixels de large) peut consommer des centaines de mégaoctets. Pour garder la consommation de mémoire basse : + +- Rendre aux dimensions les plus petites acceptables. +- Désactiver `UseAntialiasing` si la qualité n’est pas critique. +- Libérer rapidement `HTMLDocument` et `ImageRenderer` en utilisant des instructions `using` (comme montré). + +## Rendu d’image de document HTML – Prochaines étapes + +Maintenant que vous avez maîtrisé les bases du **render html to png**, envisagez ces extensions : + +- **Conversion par lots :** Parcourir un dossier de fichiers HTML et générer des PNG en une seule passe. +- **Filigrane :** Après le rendu, charger le PNG avec `System.Drawing` ou `ImageSharp` et superposer un logo. +- **Génération de PDF :** Utiliser `PdfRenderer` (également partie d’Aspose.HTML) pour créer des PDF à partir de la même source HTML. + +Chacune de ces options repose sur les mêmes concepts de base que vous venez d’apprendre, vous vous sentirez donc immédiatement à l’aise. + +## Conclusion + +Nous vous avons guidé depuis l’énoncé du problème—*comment créer un PNG à partir de HTML*—jusqu’à une solution complète et exécutable qui **renders HTML to PNG**, **converts HTML to image**, et **exports HTML as PNG** avec un contrôle fin de la taille, de l’anti‑aliasing et du hinting du texte. + +Essayez-le avec votre propre page web, ajustez les dimensions et expérimentez différents styles de police. Le code est concis, l’API est intuitive, et les résultats ressemblent exactement à une capture d’écran prise dans un navigateur—mais plus rapide et entièrement automatisable. + +Si vous avez apprécié ce guide, consultez nos autres tutoriels sur la manipulation **render html document image**, comme la conversion de HTML en PDF ou la génération d’instantanés SVG. Bon codage, et que vos PNG soient toujours pixel‑parfait ! + +{{< /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/french/net/html-extensions-and-conversions/_index.md b/html/french/net/html-extensions-and-conversions/_index.md index f4e02735c..746029e47 100644 --- a/html/french/net/html-extensions-and-conversions/_index.md +++ b/html/french/net/html-extensions-and-conversions/_index.md @@ -74,6 +74,10 @@ Apprenez à compresser du HTML en un fichier zip avec C# grâce à notre guide d Apprenez à enregistrer un document HTML dans un fichier ZIP en C# avec Aspose.HTML pour .NET. Guide complet étape par étape. ### [Enregistrer HTML en ZIP en C# – Exemple complet en mémoire](./save-html-to-zip-in-c-complete-in-memory-example/) Enregistrez du HTML dans un fichier ZIP en mémoire avec Aspose.HTML pour .NET. +### [Enregistrer le HTML en ZIP – Guide complet C# pour convertir le HTML en ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Apprenez à enregistrer un document HTML dans un fichier ZIP en C# avec Aspose.HTML, guide complet étape par étape. +### [Comment zipper du HTML depuis DOCX – Guide complet C#](./how-to-zip-html-from-docx-complete-c-guide/) +Apprenez à extraire du HTML d'un fichier DOCX puis à le compresser dans un fichier ZIP avec C# et Aspose.HTML. ## Conclusion diff --git a/html/french/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/french/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..c349d358d --- /dev/null +++ b/html/french/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,298 @@ +--- +category: general +date: 2026-04-26 +description: Apprenez à zipper la sortie HTML d’un fichier DOCX, à convertir le DOCX + en HTML, à définir la taille des images, à exporter Word en PNG et à mettre le texte + en gras – code étape par étape. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: fr +og_description: Maîtrisez comment compresser la sortie HTML d’un fichier DOCX, convertir + le DOCX en HTML, définir la taille des images, exporter Word en PNG et appliquer + du texte en gras avec des exemples C# clairs. +og_title: Comment compresser le HTML depuis un DOCX – Guide complet C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Comment zipper le HTML à partir d’un DOCX – Guide complet C# +url: /fr/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment zipper du HTML depuis un DOCX – Guide complet C# + +Vous vous êtes déjà demandé **comment zipper du HTML** que vous générez à partir d’un document Word ? Peut‑être avez‑vous besoin d’une archive unique à livrer à un client ou à stocker dans le cloud, et vous ne voulez pas d’un dossier rempli de fichiers isolés. Dans ce tutoriel, nous allons parcourir la conversion d’un fichier .docx en HTML, empaqueter le résultat dans un fichier ZIP, puis rendre le même document en image PNG avec une taille personnalisée et du texte en gras. En chemin, nous couvrirons également *convert docx to html*, *set image size*, *export word to png* et *how to set bold font* — le tout dans un exemple cohérent. + +À la fin de ce guide, vous disposerez d’un programme C# prêt à l’emploi qui : + +* Charge un DOCX depuis le disque. +* Le sauvegarde en HTML tout en zippant automatiquement la sortie. +* Rend un PNG avec une largeur, une hauteur précises, de l’anti‑aliasing et un style de police en gras. + +Aucun script externe, aucune logique de zip maison — uniquement l’API Aspose.Words for .NET (ou toute bibliothèque équivalente) qui fait le gros du travail. + +--- + +## Prérequis — Ce dont vous avez besoin avant de commencer + +| Exigence | Pourquoi c’est important | +|----------|---------------------------| +| **.NET 6.0+** (ou .NET Framework 4.7.2) | Fournit le runtime pour la syntaxe C# 10 utilisée ci‑dessous. | +| **Aspose.Words for .NET** (ou une bibliothèque similaire qui supporte `HtmlSaveOptions` et `ImageRenderer`) | Gère la conversion DOCX → HTML, l’archivage et le rendu d’image. | +| **Un fichier DOCX** nommé `input.docx` dans un dossier que vous contrôlez | Le document source que nous allons transformer. | +| **Permission d’écriture** sur le répertoire de sortie (`YOUR_DIRECTORY`) | Nécessaire pour créer `doc.zip` et `out.png`. | + +Si vous utilisez NuGet, installez le package avec : + +```bash +dotnet add package Aspose.Words +``` + +> **Astuce pro :** La version d’évaluation gratuite ajoute un filigrane au PNG rendu. Procurez‑vous une licence pour la production. + +--- + +## Étape 1 : Charger le document source + +La première chose que nous faisons est de lire le fichier Word en mémoire. C’est la base pour **convert docx to html** et pour le rendu du PNG ultérieur. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Pourquoi c’est important :* +`Document` est l’objet central ; il analyse le package .docx, résout les styles et prépare les ressources tant pour l’export HTML que pour le rendu d’image. Si le fichier est introuvable, une exception est levée — assurez‑vous donc que le chemin est correct. + +--- + +## Étape 2 : Configurer les options d’enregistrement HTML – Le cœur du **How to Zip HTML** + +Ici, nous indiquons à Aspose.Words de générer du HTML, de stocker toutes les ressources associées (images, CSS) via un gestionnaire de ressources personnalisé, puis de zipper le tout dans une archive unique. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Ce que fait `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Pourquoi nous avons besoin d’un gestionnaire :* +Lors de la conversion **convert docx to html**, la bibliothèque peut produire de nombreux fichiers annexes (par ex. `image001.png`). Le gestionnaire intercepte chaque opération d’enregistrement, garantissant que tout se retrouve à l’intérieur du ZIP au lieu d’un dossier dispersé. + +--- + +## Étape 3 : Enregistrer le document en HTML zippé + +Maintenant, la magie opère. Les fichiers HTML et leurs ressources sont écrits directement dans `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Résultat :** +`YOUR_DIRECTORY/doc.zip` contient maintenant : + +* `document.html` – le balisage principal. +* `document_files/` – un sous‑dossier avec les images, le CSS et tout média embarqué. + +Vous pouvez le dézipper pour vérifier la structure, ou servir le ZIP directement depuis une API web. + +--- + +## Étape 4 : Configurer les options de rendu d’image – Contrôler **Set Image Size** et **How to Set Bold Font** + +Si vous avez besoin d’une capture visuelle du fichier Word, vous pouvez le rendre en PNG. Le bloc suivant montre comment définir les dimensions exactes, activer l’anti‑aliasing et forcer le style gras pour tout le texte. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Pourquoi ces drapeaux sont importants :* +- **Width/Height** vous permettent d’adapter le PNG à la mise en page de votre UI. +- **UseAntialiasing** lisse les bords, évitant les lignes dentelées. +- **FontStyle = Bold** surcharge tout style en‑ligne du DOCX, garantissant que le PNG affiche du texte en gras quel que soit le formatage d’origine. + +--- + +## Étape 5 : Rendre le document en PNG – L’étape **Export Word to PNG** + +Enfin, nous rassemblons le tout et produisons le fichier image. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Ce que vous verrez :** +Un PNG net `out.png` qui correspond à la taille 800 × 600, avec tout le texte en gras et les graphiques vectoriels anti‑aliasés. + +--- + +## Exemple complet – Copiez, collez, exécutez + +Voici le programme complet, prêt à être placé dans une application console. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Sortie attendue + +| Fichier | Emplacement | Description | +|---------|-------------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML zippé + ressources (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, tout le texte en gras, anti‑aliasé. | + +Vous pouvez ouvrir `doc.zip` avec n’importe quel outil d’archivage, extraire `document.html` et le visualiser dans un navigateur. L’image apparaîtra exactement comme rendue depuis le fichier Word original. + +--- + +## Questions fréquentes & cas particuliers + +### Et si j’ai besoin d’un format d’image différent ? +Remplacez l’extension de fichier dans le constructeur `ImageRenderer` (`out.jpg`, `out.tiff`) et ajustez `ImageSavingOptions` en conséquence. L’API sélectionne automatiquement l’encodeur approprié. + +### Puis‑je contrôler le niveau de compression du ZIP ? +`HtmlSaveOptions` expose une propriété `ZipCompressionLevel` (par ex. `CompressionLevel.BestCompression`). Définissez‑la avant d’appeler `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Mon DOCX contient de grandes images haute résolution — le PNG sera‑t‑il volumineux ? +Oui, car nous imposons une taille pixel fixe. Pour réduire la taille du fichier, diminuez `Width`/`Height` ou activez `ImageResizeOptions` dans `ImageRenderingOptions`. + +### Comment conserver le poids de police d’origine au lieu de forcer le gras ? +Supprimez simplement la ligne `FontStyle = WebFontStyle.Bold`, ou appliquez‑la conditionnellement selon un drapeau que vous exposez à l’utilisateur. + +### Cela fonctionne‑t‑il sous Linux/macOS ? +Absolument. Aspose.Words est multiplateforme ; assurez‑vous simplement d’avoir le runtime .NET approprié installé. + +--- + +## Checklist de dépannage + +| Symptom | Cause probable | Solution | +|---------|----------------|----------| +| `FileNotFoundException` sur `input.docx` | Chemin incorrect ou fichier manquant | Vérifiez que `YOUR_DIRECTORY/input.docx` existe ; utilisez des chemins absolus pour les tests. | +| `OutOfMemoryException` lors du rendu PNG | Document très volumineux ou dimensions d’image énormes | Réduisez `Width`/`Height` ou rendez les pages individuellement (`ImageRenderer.Render(pageIndex)`). | +| Le ZIP contient un dossier `document_files` vide | `MyResourceHandler` a renvoyé un nom de fichier différent ou a levé une exception | Assurez‑vous que `ResourceSaving` ne cancelle pas l’enregistrement (`args.Cancel = false`). | +| Texte non gras dans le PNG | ` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} + +Fournissez UNIQUEMENT le contenu traduit, sans explications. \ No newline at end of file diff --git a/html/french/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/french/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..6281f54fd --- /dev/null +++ b/html/french/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Enregistrez rapidement du HTML au format ZIP avec Aspose.HTML. Découvrez + comment convertir du HTML en ZIP à l'aide d'un gestionnaire de ressources personnalisé + et générer du HTML en ZIP en quelques étapes seulement. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: fr +og_description: Enregistrez le HTML au format ZIP avec Aspose.HTML. Ce guide montre + comment convertir du HTML en ZIP, en utilisant un gestionnaire de ressources personnalisé + pour rendre le HTML en ZIP de manière efficace. +og_title: Enregistrer le HTML en ZIP – Tutoriel C# étape par étape +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Enregistrer le HTML en ZIP – Guide complet C# pour convertir le HTML en ZIP +url: /fr/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Enregistrer le HTML en ZIP – Guide complet C# pour convertir le HTML en ZIP + +Vous avez déjà eu besoin de **enregistrer le HTML en ZIP** mais vous n'étiez pas sûr des appels d'API à chaîner ensemble ? Vous n'êtes pas seul. De nombreux développeurs se heurtent à un mur lorsqu'ils veulent regrouper une page HTML avec son CSS, ses images et ses polices dans une seule archive — surtout lorsqu'ils souhaitent que le tout reste en mémoire jusqu'à ce qu'ils décident quoi en faire. + +Bonne nouvelle ? Avec Aspose.HTML vous pouvez **convertir le HTML en ZIP** en quelques lignes, grâce à la classe `HtmlSaveOptions` et à un **custom resource handler** qui vous donne un contrôle total sur l'emplacement de chaque ressource. Dans ce tutoriel, nous parcourrons les étapes exactes pour **rendre le HTML en ZIP**, stocker le tout en mémoire, et éventuellement écrire les fichiers sur le disque. À la fin, vous disposerez d’un extrait réutilisable que vous pourrez intégrer à n’importe quel projet .NET. + +## Ce que couvre ce tutoriel + +* Comment définir la chaîne source HTML (ou la charger depuis un fichier). +* Comment instancier un `HTMLDocument` avec Aspose.HTML. +* Comment créer un **custom resource handler** qui renvoie un `MemoryStream` pour chaque ressource. +* Comment configurer `HtmlSaveOptions` pour générer une **archive ZIP** contenant le HTML et tous ses fichiers dépendants. +* Comment enregistrer le document et, si vous le souhaitez, écrire les données en mémoire dans un dossier sur le disque. + +Aucun outil externe, aucune compression manuelle — uniquement du C# pur et Aspose.HTML. + +> **Pro tip :** Si vous utilisez déjà Aspose.PDF ou Aspose.Words, le même modèle `ResourceHandler` fonctionne également, vous permettant de réutiliser ce code pour plusieurs types de documents. + +--- + +## Étape 1 : Enregistrer le HTML en ZIP – Définir la source HTML + +Tout d’abord, nous avons besoin d’une chaîne contenant le HTML que nous voulons archiver. Dans un projet réel, vous pourriez lire cela depuis un fichier, une base de données ou une réponse d’API, mais pour plus de clarté nous allons coder en dur un petit exemple. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Pourquoi c’est important :** Le constructeur `HTMLDocument` accepte soit un chemin de fichier, soit du HTML brut. Fournir directement la chaîne maintient tout le processus en mémoire, ce qui est idéal lorsqu’on veut ensuite diffuser le ZIP directement à un client. + +--- + +## Étape 2 : Convertir le HTML en ZIP – Charger le HTMLDocument + +Nous transmettons maintenant la chaîne HTML à Aspose.HTML. Le deuxième argument (`"."`) indique à la bibliothèque où résoudre les URL relatives ; utiliser le répertoire courant fonctionne dans la plupart des cas simples. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Ce qui se passe :** `HTMLDocument` analyse le balisage, construit un DOM et prépare toutes les ressources liées (CSS, images, polices) pour le rendu. L’envelopper dans un bloc `using` garantit la libération correcte des ressources natives. + +--- + +## Étape 3 : Rendre le HTML en ZIP – Créer un Custom Resource Handler + +Aspose.HTML vous laisse choisir **où** chaque ressource est écrite. En sous‑classant `ResourceHandler`, nous pouvons renvoyer un nouveau `MemoryStream` pour chaque fichier que le moteur de rendu doit sauvegarder. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Pourquoi un gestionnaire personnalisé ?** Le comportement par défaut écrit les fichiers sur le système de fichiers. Avec un gestionnaire, vous pouvez tout garder en RAM, pousser le ZIP directement vers une réponse web, ou même chiffrer les flux à la volée. + +--- + +## Étape 4 : Convertir le HTML en ZIP – Configurer les options d’enregistrement + +Voici le cœur de l’opération. `HtmlSaveOptions` indique à Aspose.HTML de regrouper tout dans une archive ZIP (`SaveToArchive = true`) et d’utiliser notre `resourceHandler` pour le stockage. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Point clé :** `ArchiveFileName` est le nom qui apparaîtra à l’intérieur du ZIP, pas un chemin sur le disque. Comme nous utilisons un gestionnaire basé sur la mémoire, le ZIP vit entièrement en RAM jusqu’à ce que nous décidions quoi en faire. + +--- + +## Étape 5 : Enregistrer le HTML en ZIP – Persister l’archive + +Enfin, nous demandons au document de s’enregistrer en utilisant les options que nous venons de créer. Cet appel déclenche le pipeline de rendu, invoque notre gestionnaire pour chaque ressource, et écrit le ZIP final dans les flux mémoire que nous avons fournis. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Résultat :** À ce stade, `resourceHandler` possède un `MemoryStream` pour le fichier HTML principal, ainsi que des flux supplémentaires pour chaque CSS, image ou police référencés. Le fichier ZIP est entièrement assemblé à l’intérieur de ces flux. + +--- + +## Étape 6 : Custom Resource Handler – Fournir un flux pour chaque ressource + +Ci‑dessous se trouve l’implémentation de `MyResourceHandler`. La méthode `HandleResource` est appelée une fois par ressource (HTML, CSS, images, polices, …). Nous renvoyons simplement un nouveau `MemoryStream` à chaque appel. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Pourquoi un flux neuf ?** Chaque ressource a besoin de son propre conteneur ; réutiliser un même flux corromprait l’archive. `MemoryStream` est léger et s’agrandit automatiquement selon les besoins. + +--- + +## Étape 7 : Optionnel – Écrire les ressources enregistrées sur le disque + +Si vous souhaitez inspecter les fichiers générés ou en garder une copie sur le serveur, `ResourceSaved` est appelé après la fermeture d’un flux. Ici nous écrivons le contenu en mémoire dans un dossier que vous spécifiez (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Note de cas limite :** Si vous exécutez dans un environnement sans droits d’écriture (par ex. Azure Functions), il suffit d’ignorer l’implémentation de `ResourceSaved` ou de la remplacer par un téléchargement vers un stockage cloud. + +--- + +## Exemple complet, exécutable (38 lignes) + +Voici le code complet prêt à être collé dans une application console. Il respecte la limite de 15‑40 lignes, utilise des noms de variables explicites, et inclut des espaces réservés que vous pouvez ajuster. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Résultat attendu + +* Un fichier `result.zip` apparaît à l’intérieur de l’archive en mémoire (vous pouvez le récupérer depuis `resourceHandler` en ajoutant une propriété pour exposer le flux). +* Si vous avez conservé l’implémentation `ResourceSaved`, les mêmes fichiers sont également écrits dans `YOUR_DIRECTORY/Output` sur le disque, reproduisant la structure interne du ZIP. + +--- + +## Questions fréquentes (FAQ) + +**Q : Cela fonctionne‑t‑il avec de grandes pages HTML ?** +R : Absolument. `MemoryStream` s’étend selon les besoins, mais pour des pages de plusieurs mégaoctets vous pourriez préférer diffuser directement vers un `FileStream` afin d’éviter une forte pression mémoire. Il suffit de modifier `HandleResource` pour qu’il renvoie `File.Create(Path.Combine("temp", info.FileName))`. + +**Q : Puis‑je chiffrer le ZIP ?** +R : Aspose.HTML ne propose pas de chiffrement intégré, mais une fois que vous avez récupéré le `MemoryStream`, vous pouvez le passer à `System.IO.Compression.ZipArchive` avec un mot de passe, ou utiliser une bibliothèque tierce comme SharpZipLib. + +**Q : Qu’en est‑il des URL relatives dans le HTML ?** +R : Le deuxième argument du `HTMLDocument` (`"."`) indique à Aspose.HTML de résoudre les chemins relatifs par rapport au répertoire courant. Si vos ressources se trouvent ailleurs, passez le chemin de base approprié ou un `UriResolver` personnalisé. + +--- + +## Conclusion + +Nous venons de montrer comment **enregistrer le HTML en ZIP** à l’aide d’Aspose.HTML, d’un **custom resource handler**, et de quelques configurations simples. Cette approche vous permet de **convertir le HTML en ZIP** entièrement en mémoire, offrant la flexibilité de diffuser le résultat à un client web, de le stocker dans une base de données, ou de l’écrire sur disque pour une utilisation ultérieure. + +N’hésitez pas à expérimenter : remplacez `MemoryStream` par un flux de stockage cloud, ajoutez une protection par mot de passe, ou traitez des dizaines de pages en parallèle. Le schéma de base — charger, gérer, configurer, enregistrer — reste le même, ce qui en fait un bloc de construction réutilisable pour toute solution .NET nécessitant de **rendre le HTML en ZIP** ou de **créer un ZIP à partir du HTML**. + +Vous avez d’autres questions sur la gestion personnalisée des ressources ou sur d’autres fonctionnalités d’Aspose.HTML ? Laissez un commentaire ci‑dessous, et bon codage ! + +![Diagramme montrant le flux de la source HTML vers l'archive ZIP en mémoire](placeholder.png "exemple d'enregistrement du HTML en zip") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/german/net/generate-jpg-and-png-images/_index.md index 8c24c4537..7a2c299cd 100644 --- a/html/german/net/generate-jpg-and-png-images/_index.md +++ b/html/german/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Erfahren Sie, wie Sie mit Aspose.HTML für .NET HTML-Dokumente bearbeiten, HTML Erfahren Sie, wie Sie beim Konvertieren von DOCX-Dokumenten in PNG oder JPG Antialiasing aktivieren, um hochwertige Bilder zu erhalten. ### [DOCX in PNG konvertieren – ZIP-Archiv erstellen C#‑Tutorial](./convert-docx-to-png-create-zip-archive-c-tutorial/) Erfahren Sie, wie Sie DOCX‑Dateien in PNG‑Bilder umwandeln und diese in ein ZIP‑Archiv packen – Schritt‑für‑Schritt‑Anleitung in C#. +### [PNG aus HTML in C# – Schritt‑für‑Schritt‑Anleitung](./create-png-from-html-in-c-step-by-step-guide/) +Erfahren Sie, wie Sie mit Aspose.HTML für .NET HTML in hochwertige PNG‑Bilder konvertieren – detaillierte Schritt‑für‑Schritt‑Anleitung. ## Abschluss diff --git a/html/german/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/german/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..fe813c4dc --- /dev/null +++ b/html/german/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Erstellen Sie PNG aus HTML mit Aspose.HTML. Erfahren Sie, wie Sie HTML + in PNG rendern, HTML in ein Bild konvertieren, HTML als PNG exportieren und das + HTML‑Dokument schnell als Bild rendern. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: de +og_description: Erstellen Sie PNG aus HTML in C# mit Aspose.HTML. Dieser Leitfaden + zeigt Ihnen, wie Sie HTML in PNG rendern, HTML in ein Bild konvertieren und HTML + als PNG exportieren. +og_title: PNG aus HTML in C# erstellen – Vollständiger Programmierleitfaden +tags: +- Aspose.HTML +- C# +- Image Rendering +title: PNG aus HTML in C# erstellen – Schritt‑für‑Schritt‑Anleitung +url: /de/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PNG aus HTML in C# erstellen – Vollständiger Programmierleitfaden + +Haben Sie schon einmal **PNG aus HTML erstellen** müssen, waren sich aber nicht sicher, welche Bibliothek ein scharfes Ergebnis ohne Kopfschmerzen liefert? Sie sind nicht allein. Viele Entwickler stolpern, wenn sie versuchen, eine Webseite in ein Bitmap zu verwandeln, besonders wenn Anti‑Aliasing oder benutzerdefinierte Font‑Hints benötigt werden. + +In diesem Tutorial führen wir Sie Schritt für Schritt durch eine praktische Lösung mit **Aspose.HTML for .NET**. Am Ende wissen Sie, wie Sie **HTML zu PNG rendern**, **HTML in Bild konvertieren**, **HTML als PNG exportieren** und sogar die Rendering‑Pipeline für perfekte Ergebnisse anpassen können. Kein Schnickschnack – nur ein funktionierendes Code‑Beispiel, warum jede Zeile wichtig ist, und ein paar Profi‑Tipps, die Sie gerne früher gekannt hätten. + +## Was Sie benötigen + +- .NET 6+ (oder .NET Framework 4.6+). +- Das NuGet‑Paket `Aspose.HTML` (Version 23.9 oder neuer). +- Eine einfache `input.html`‑Datei, die Sie in ein Bild umwandeln möchten. +- Eine IDE wie Visual Studio 2022 (jeder Editor, der C# kompilieren kann, reicht). + +Das war’s. Keine zusätzlichen Binärdateien, keine externen Dienste und keine obskuren Konfigurationsdateien. Bereit? Dann legen wir los. + +## PNG aus HTML erstellen – Kernschritte + +Im Folgenden teilen wir den gesamten Prozess in vier logische Abschnitte. Jeder Abschnitt entspricht einem konkreten Code‑Block, und zu jedem Block gibt es eine kurze „Warum“-Erklärung. Folgen Sie der Reihenfolge, kopieren Sie den Code, und Sie haben in Sekunden ein PNG in `YOUR_DIRECTORY/output.png`. + +### Schritt 1: Das HTML‑Dokument laden + +Zuerst müssen wir Aspose.HTML ein Dokument‑Objekt geben, mit dem es arbeiten kann. Stellen Sie sich das vor wie das Übergeben einer frischen Leinwand an den Renderer, die bereits das Markup, CSS und die in der HTML‑Datei referenzierten Bilder enthält. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Warum das wichtig ist:* `HTMLDocument` parsed die Datei, löst relative URLs auf und baut einen DOM‑Baum auf. Wenn die Datei nicht gefunden wird, wird hier sofort eine Ausnahme geworfen – Sie fangen Probleme frühzeitig ab, bevor irgendeine Rendering‑Arbeit beginnt. + +### Schritt 2: Bild‑Render‑Optionen konfigurieren + +Als Nächstes teilen wir Aspose mit, wie groß das endgültige Bild sein soll und ob wir Anti‑Aliasing wollen. Diese Optionen beeinflussen direkt die visuelle Treue des **render html to png**‑Vorgangs. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Warum das wichtig ist:* Größere Abmessungen liefern mehr Details, erhöhen aber den Speicherverbrauch. `UseAntialiasing` ist das Geheimrezept für ein professionell aussehendes **export html as png** – ohne dieses sehen Sie Treppeneffekte bei Text und Vektorgrafiken. + +### Schritt 3: Text‑Rendering feinjustieren (Hinting & Font‑Style) + +Verwendet Ihr HTML benutzerdefinierte Schriften oder benötigen Sie fette/kursive Formatierung, sollten Sie Hinting aktivieren und den passenden `WebFontStyle` setzen. Hinting richtet Glyphen an Pixelgrenzen aus, was entscheidend ist, wenn Sie **convert html to image** bei einer festen Auflösung durchführen. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Warum das wichtig ist:* Hinting verhindert unscharfe Buchstaben, besonders auf Bildschirmen mit niedriger DPI. Die Kombination aus `Bold` und `Italic` zeigt, wie Sie mehrere Stile schichten können; Sie können natürlich auch nur einen oder keinen auswählen, je nach Design. + +### Schritt 4: Das PNG‑Datei rendern + +Zum Schluss instanziieren wir `ImageRenderer`, übergeben ihm das Dokument, den Ausgabepfad und die zuvor erstellten Optionen. Der Aufruf von `Render()` erledigt die eigentliche Schwerstarbeit. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Warum das wichtig ist:* `ImageRenderer` respektiert jede Einstellung, die wir vorher definiert haben – Größe, Anti‑Aliasing, Text‑Hinting, Font‑Style. Wenn `Render()` fertig ist, haben Sie ein vollständig konformes PNG, das in Browsern angezeigt, in Cloud‑Speicher hochgeladen oder in Berichten eingebettet werden kann. + +> **Pro‑Tipp:** Wenn Sie ein anderes Bildformat benötigen (JPEG, BMP, GIF), ändern Sie einfach die Dateierweiterung im Ausgabepfad. Aspose wählt automatisch den passenden Encoder. + +## HTML zu PNG rendern mit Aspose.HTML – Vollständiges Beispiel + +Alle Teile zusammen ergeben ein einzelnes, eigenständiges Programm. Kopieren Sie den Block unten in eine neue Konsolen‑App und führen Sie sie aus; Sie werden `output.png` neben Ihrer Quell‑HTML sehen. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Erwartetes Ergebnis + +Nach der Ausführung sollten Sie eine Datei ähnlich dem Mock‑up unten sehen (das genaue Aussehen hängt von Ihrem HTML‑Inhalt ab). + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +Das PNG bewahrt Layout, Farben und Schriften exakt so, wie der Browser die Seite darstellen würde – dank der **render html document image**‑Engine in Aspose. + +## Häufige Fragen & Sonderfälle + +### Was, wenn mein HTML externe Bilder referenziert? + +Aspose.HTML folgt relativen URLs basierend auf dem Ordner von `input.html`. Wenn Sie Bilder an anderer Stelle gespeichert haben, können Sie entweder: + +1. Absolute URLs verwenden (z. B. `https://example.com/logo.png`). +2. `htmlDocument.BaseUrl` auf den Ordner setzen, der die Assets enthält. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Wie stelle ich die DPI für hochauflösende Ausgaben ein? + +Sie können die Render‑Größe skalieren und dabei das Seitenverhältnis beibehalten, oder Sie setzen `renderingOptions.DPI` (Standard ist 96). Für druckfertige PNGs sind 300 DPI üblich: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Kann ich mehrere Seiten aus einem einzigen HTML‑Dokument rendern? + +Ja. Enthält das HTML CSS‑Seitenumbrüche (`@media print { page-break-after: always; }`), erzeugt Aspose separate PNG‑Dateien pro Seite, wenn Sie `MultiPageImageRenderer` verwenden. Das ist ein fortgeschrittener Anwendungsfall, aber das gleiche **convert html to image**‑Prinzip gilt. + +### Was ist mit dem Speicherverbrauch? + +Das Rendern einer riesigen Seite (mehrere tausend Pixel breit) kann Hunderte Megabyte beanspruchen. Um den Speicherverbrauch gering zu halten: + +- Auf die kleinste akzeptable Größe rendern. +- `UseAntialiasing` deaktivieren, wenn die Qualität nicht kritisch ist. +- `HTMLDocument` und `ImageRenderer` sofort mit `using`‑Blöcken freigeben (wie gezeigt). + +## Render HTML Document Image – Nächste Schritte + +Jetzt, wo Sie die Grundlagen des **render html to png** beherrschen, können Sie folgende Erweiterungen in Betracht ziehen: + +- **Batch‑Konvertierung:** Durchlaufen Sie einen Ordner mit HTML‑Dateien und erzeugen Sie PNGs in einem Durchgang. +- **Wasserzeichen:** Nach dem Rendern das PNG mit `System.Drawing` oder `ImageSharp` laden und ein Logo darüberlegen. +- **PDF‑Erstellung:** Verwenden Sie `PdfRenderer` (ebenfalls Teil von Aspose.HTML), um PDFs aus derselben HTML‑Quelle zu erzeugen. + +All diese bauen auf den gleichen Kernkonzepten auf, die Sie gerade gelernt haben, sodass Sie sich schnell zurechtfinden. + +## Fazit + +Wir haben Sie von der Problemstellung – *wie man PNG aus HTML erstellt* – zu einer vollständigen, ausführbaren Lösung geführt, die **HTML zu PNG rendert**, **HTML in Bild konvertiert** und **HTML als PNG exportiert** mit feiner Kontrolle über Größe, Anti‑Aliasing und Text‑Hinting. + +Probieren Sie es mit Ihrer eigenen Webseite aus, passen Sie die Abmessungen an und experimentieren Sie mit verschiedenen Schriftstilen. Der Code ist kurz, die API intuitiv und das Ergebnis sieht exakt aus wie ein Screenshot im Browser – nur schneller und vollständig automatisierbar. + +Wenn Ihnen dieser Leitfaden gefallen hat, schauen Sie sich unsere anderen Tutorials zur **render html document image**‑Manipulation an, etwa zum Konvertieren von HTML zu PDF oder zum Erzeugen von SVG‑Snapshots. Viel Spaß beim Coden, und mögen Ihre PNGs immer pixelperfekt sein! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/german/net/html-extensions-and-conversions/_index.md index 607896d28..7dcd413e6 100644 --- a/html/german/net/html-extensions-and-conversions/_index.md +++ b/html/german/net/html-extensions-and-conversions/_index.md @@ -22,57 +22,63 @@ Bevor wir uns in die Tutorials vertiefen, sollten wir uns kurz ansehen, was Aspo ## HTML-Erweiterungen entmystifiziert -HTML-Erweiterungen sind eine wertvolle Ressource für Entwickler. Sie ermöglichen es Ihnen, die Funktionalität Ihrer Webanwendungen durch Hinzufügen benutzerdefinierter Elemente und Attribute zu erweitern. In dieser Tutorial-Reihe werden wir die verschiedenen HTML-Erweiterungen erkunden, die Aspose.HTML für .NET bietet. Sie erfahren, wie Sie diese Erweiterungen nahtlos in Ihre Projekte integrieren und Ihre Webanwendungen dynamischer und interaktiver gestalten können. +HTML-Erweiterungen sind eine wertvolle Ressource für Entwickler. Sie ermöglichen es Ihnen, die Funktionalität Ihrer Webanwendungen durch Hinzufügen benutzerdefinierter Elemente und Attribute zu erweitern. In dieser Tutorial‑Reihe werden wir die verschiedenen HTML-Erweiterungen erkunden, die Aspose.HTML für .NET bietet. Sie erfahren, wie Sie diese Erweiterungen nahtlos in Ihre Projekte integrieren und Ihre Webanwendungen dynamischer und interaktiver gestalten können. -## Umbau-Tutorials für alle Fälle +## Umbau‑Tutorials für alle Fälle -Bei der Webentwicklung müssen HTML-Dokumente häufig in verschiedene Formate konvertiert werden. Aspose.HTML für .NET vereinfacht diesen Prozess. Unsere Tutorials führen Sie durch die Schritte zur Konvertierung von HTML in PDF, Bildformate und mehr. Egal, ob Sie Berichte erstellen, Inhalte freigeben oder einfach die Benutzererfahrung verbessern möchten, diese Konvertierungs-Tutorials helfen Ihnen dabei. +Bei der Webentwicklung müssen HTML‑Dokumente häufig in verschiedene Formate konvertiert werden. Aspose.HTML für .NET vereinfacht diesen Prozess. Unsere Tutorials führen Sie durch die Schritte zur Konvertierung von HTML in PDF, Bildformate und mehr. Egal, ob Sie Berichte erstellen, Inhalte freigeben oder einfach die Benutzererfahrung verbessern möchten, diese Konvertierungs‑Tutorials helfen Ihnen dabei. ## Erste Schritte mit Aspose.HTML -Sind Sie bereit, loszulegen? Die Tutorials von Aspose.HTML für .NET richten sich sowohl an Anfänger als auch an erfahrene Entwickler. Egal, ob Sie neu bei HTML-Erweiterungen und -Konvertierungen sind oder fortgeschrittene Tipps suchen, unsere Schritt-für-Schritt-Anleitungen sind auf Ihre Bedürfnisse zugeschnitten. +Sind Sie bereit, loszulegen? Die Tutorials von Aspose.HTML für .NET richten sich sowohl an Anfänger als auch an erfahrene Entwickler. Egal, ob Sie neu bei HTML‑Erweiterungen und -Konvertierungen sind oder fortgeschrittene Tipps suchen, unsere Schritt‑für‑Schritt‑Anleitungen sind auf Ihre Bedürfnisse zugeschnitten. ## Warum Aspose.HTML für .NET? -Aspose.HTML für .NET ist nicht nur eine Bibliothek; es verändert die Welt der Webentwicklung grundlegend. Es bietet eine umfassende Palette an Funktionen und Tools, die Ihre HTML-bezogenen Aufgaben rationalisieren. Am Ende dieser Tutorials verfügen Sie über das Wissen und die Fähigkeiten, um das Potenzial von Aspose.HTML für .NET optimal zu nutzen. +Aspose.HTML für .NET ist nicht nur eine Bibliothek; es verändert die Welt der Webentwicklung grundlegend. Es bietet eine umfassende Palette an Funktionen und Tools, die Ihre HTML‑bezogenen Aufgaben rationalisieren. Am Ende dieser Tutorials verfügen Sie über das Wissen und die Fähigkeiten, um das Potenzial von Aspose.HTML für .NET optimal zu nutzen. ## Tutorials zu HTML-Erweiterungen und -Konvertierungen ### [Konvertieren Sie HTML in .NET in PDF mit Aspose.HTML](./convert-html-to-pdf/) -Konvertieren Sie HTML mühelos in PDF mit Aspose.HTML für .NET. Folgen Sie unserer Schritt-für-Schritt-Anleitung und entfesseln Sie die Leistungsfähigkeit der HTML-zu-PDF-Konvertierung. +Konvertieren Sie HTML mühelos in PDF mit Aspose.HTML für .NET. Folgen Sie unserer Schritt‑für‑Schritt‑Anleitung und entfesseln Sie die Leistungsfähigkeit der HTML‑zu‑PDF‑Konvertierung. ### [Konvertieren Sie EPUB in .NET mit Aspose.HTML in ein Bild](./convert-epub-to-image/) -Erfahren Sie, wie Sie mit Aspose.HTML für .NET EPUB in Bilder konvertieren. Schritt-für-Schritt-Anleitung mit Codebeispielen und anpassbaren Optionen. +Erfahren Sie, wie Sie mit Aspose.HTML für .NET EPUB in Bilder konvertieren. Schritt‑für‑Schritt‑Anleitung mit Codebeispielen und anpassbaren Optionen. ### [Konvertieren Sie EPUB in .NET mit Aspose.HTML in PDF](./convert-epub-to-pdf/) -Erfahren Sie, wie Sie mit Aspose.HTML für .NET EPUB in PDF konvertieren. Diese Schritt-für-Schritt-Anleitung umfasst Anpassungsoptionen, FAQs und mehr für eine nahtlose Dokumentkonvertierung. +Erfahren Sie, wie Sie mit Aspose.HTML für .NET EPUB in PDF konvertieren. Diese Schritt‑für‑Schritt‑Anleitung umfasst Anpassungsoptionen, FAQs und mehr für eine nahtlose Dokumentkonvertierung. ### [Konvertieren Sie EPUB in XPS in .NET mit Aspose.HTML](./convert-epub-to-xps/) -Erfahren Sie, wie Sie mit Aspose.HTML für .NET EPUB in XPS in .NET konvertieren. Folgen Sie unserer Schritt-für-Schritt-Anleitung für mühelose Konvertierungen. +Erfahren Sie, wie Sie mit Aspose.HTML für .NET EPUB in XPS in .NET konvertieren. Folgen Sie unserer Schritt‑für‑Schritt‑Anleitung für mühelose Konvertierungen. ### [Konvertieren Sie HTML in BMP in .NET mit Aspose.HTML](./convert-html-to-bmp/) Erfahren Sie, wie Sie mit Aspose.HTML für .NET HTML in BMP in .NET konvertieren. Umfassender Leitfaden für Webentwickler zur Nutzung von Aspose.HTML für .NET. ### [Konvertieren Sie HTML in .NET in DOC und DOCX mit Aspose.HTML](./convert-html-to-doc-docx/) -Erfahren Sie in dieser Schritt-für-Schritt-Anleitung, wie Sie die Leistung von Aspose.HTML für .NET nutzen. Konvertieren Sie HTML mühelos in DOCX und verbessern Sie Ihre .NET-Projekte. Legen Sie noch heute los! +Erfahren Sie in dieser Schritt‑für‑Schritt‑Anleitung, wie Sie die Leistung von Aspose.HTML für .NET nutzen. Konvertieren Sie HTML mühelos in DOCX und verbessern Sie Ihre .NET‑Projekte. Legen Sie noch heute los! ### [Konvertieren Sie HTML in GIF in .NET mit Aspose.HTML](./convert-html-to-gif/) -Entdecken Sie die Leistungsfähigkeit von Aspose.HTML für .NET: Eine Schritt-für-Schritt-Anleitung zur Konvertierung von HTML in GIF. Voraussetzungen, Codebeispiele, FAQs und mehr! Optimieren Sie Ihre HTML-Manipulation mit Aspose.HTML. +Entdecken Sie die Leistungsfähigkeit von Aspose.HTML für .NET: Eine Schritt‑für‑Schritt‑Anleitung zur Konvertierung von HTML in GIF. Voraussetzungen, Codebeispiele, FAQs und mehr! Optimieren Sie Ihre HTML‑Manipulation mit Aspose.HTML. ### [Konvertieren Sie HTML in JPEG in .NET mit Aspose.HTML](./convert-html-to-jpeg/) -Erfahren Sie, wie Sie mit Aspose.HTML für .NET HTML in JPEG in .NET konvertieren. Eine Schritt-für-Schritt-Anleitung zur Nutzung der Leistungsfähigkeit von Aspose.HTML für .NET. Optimieren Sie Ihre Webentwicklungsaufgaben mühelos. +Erfahren Sie, wie Sie mit Aspose.HTML für .NET HTML in JPEG in .NET konvertieren. Eine Schritt‑für‑Schritt‑Anleitung zur Nutzung der Leistungsfähigkeit von Aspose.HTML für .NET. Optimieren Sie Ihre Webentwicklungsaufgaben mühelos. ### [Konvertieren Sie HTML in .NET in Markdown mit Aspose.HTML](./convert-html-to-markdown/) -Erfahren Sie, wie Sie HTML in .NET mit Aspose.HTML in Markdown konvertieren, um Inhalte effizient zu bearbeiten. Erhalten Sie eine Schritt-für-Schritt-Anleitung für einen nahtlosen Konvertierungsprozess. +Erfahren Sie, wie Sie HTML in .NET mit Aspose.HTML in Markdown konvertieren, um Inhalte effizient zu bearbeiten. Erhalten Sie eine Schritt‑für‑Schritt‑Anleitung für einen nahtlosen Konvertierungsprozess. ### [Konvertieren Sie HTML in MHTML in .NET mit Aspose.HTML](./convert-html-to-mhtml/) -Konvertieren Sie HTML in .NET in MHTML mit Aspose.HTML – Eine Schritt-für-Schritt-Anleitung zum effizienten Archivieren von Webinhalten. Erfahren Sie, wie Sie mit Aspose.HTML für .NET MHTML-Archive erstellen. +Konvertieren Sie HTML in .NET in MHTML mit Aspose.HTML – Eine Schritt‑für‑Schritt‑Anleitung zum effizienten Archivieren von Webinhalten. Erfahren Sie, wie Sie mit Aspose.HTML für .NET MHTML‑Archive erstellen. ### [Konvertieren Sie HTML in PNG in .NET mit Aspose.HTML](./convert-html-to-png/) -Entdecken Sie, wie Sie mit Aspose.HTML für .NET HTML-Dokumente bearbeiten und konvertieren. Schritt-für-Schritt-Anleitung für effektive .NET-Entwicklung. +Entdecken Sie, wie Sie mit Aspose.HTML für .NET HTML‑Dokumente bearbeiten und konvertieren. Schritt‑für‑Schritt‑Anleitung für effektive .NET‑Entwicklung. ### [Konvertieren Sie HTML in TIFF in .NET mit Aspose.HTML](./convert-html-to-tiff/) -Erfahren Sie, wie Sie mit Aspose.HTML für .NET HTML in TIFF konvertieren. Folgen Sie unserer Schritt-für-Schritt-Anleitung zur effizienten Optimierung von Webinhalten. +Erfahren Sie, wie Sie mit Aspose.HTML für .NET HTML in TIFF konvertieren. Folgen Sie unserer Schritt‑für‑Schritt‑Anleitung zur effizienten Optimierung von Webinhalten. ### [Konvertieren Sie HTML in XPS in .NET mit Aspose.HTML](./convert-html-to-xps/) -Entdecken Sie die Leistungsfähigkeit von Aspose.HTML für .NET: Konvertieren Sie HTML mühelos in XPS. Voraussetzungen, Schritt-für-Schritt-Anleitung und FAQs inklusive. +Entdecken Sie die Leistungsfähigkeit von Aspose.HTML für .NET: Konvertieren Sie HTML mühelos in XPS. Voraussetzungen, Schritt‑für‑Schritt‑Anleitung und FAQs inklusive. ### [HTML in C# zippen – HTML in Zip speichern](./how-to-zip-html-in-c-save-html-to-zip/) -Erfahren Sie, wie Sie HTML-Inhalte mit Aspose.HTML für .NET in eine ZIP-Datei komprimieren und speichern. -### [HTML-Dokument mit formatiertem Text erstellen und in PDF exportieren – Vollständige Anleitung](./create-html-document-with-styled-text-and-export-to-pdf-full/) -Erfahren Sie, wie Sie ein HTML-Dokument mit formatiertem Text erstellen und es mit Aspose.HTML für .NET in ein PDF exportieren. +Erfahren Sie, wie Sie HTML‑Inhalte mit Aspose.HTML für .NET in eine ZIP‑Datei komprimieren und speichern. +### [HTML‑Dokument mit formatiertem Text erstellen und in PDF exportieren – Vollständige Anleitung](./create-html-document-with-styled-text-and-export-to-pdf-full/) +Erfahren Sie, wie Sie ein HTML‑Dokument mit formatiertem Text erstellen und es mit Aspose.HTML für .NET in ein PDF exportieren. ### [PDF aus HTML erstellen – C# Schritt‑für‑Schritt‑Anleitung](./create-pdf-from-html-c-step-by-step-guide/) Erstellen Sie PDF aus HTML mit C# – eine detaillierte Schritt‑für‑Schritt‑Anleitung mit Aspose.HTML für .NET. ### [HTML als ZIP speichern – Komplettes C#‑Tutorial](./save-html-as-zip-complete-c-tutorial/) -Erfahren Sie, wie Sie HTML‑Inhalte mit Aspose.HTML für .NET in ein ZIP‑Archiv speichern – vollständige Schritt‑für‑Schritt‑Anleitung in C#. +Erfahren Sie, wie Sie HTML‑Inhalte mit Aspose.HTML für .NET in eine ZIP‑Datei komprimieren und speichern. +### [HTML‑Dokument mit formatiertem Text erstellen und in PDF exportieren – Vollständige Anleitung](./create-html-document-with-styled-text-and-export-to-pdf-full/) +Erfahren Sie, wie Sie ein HTML‑Dokument mit formatiertem Text erstellen und es mit Aspose.HTML für .NET in ein PDF exportieren. ### [HTML in ZIP speichern in C# – Komplettes In‑Memory‑Beispiel](./save-html-to-zip-in-c-complete-in-memory-example/) -Speichern Sie HTML-Inhalte in ein ZIP-Archiv komplett im Speicher mit Aspose.HTML für .NET. Schritt‑für‑Schritt‑Anleitung. +Speichern Sie HTML‑Inhalte in ein ZIP‑Archiv komplett im Speicher mit Aspose.HTML für .NET. Schritt‑für‑Schritt‑Anleitung. +### [HTML als ZIP speichern – Komplettes C#‑Guide zur Konvertierung von HTML in ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Erfahren Sie, wie Sie HTML‑Inhalte mit Aspose.HTML für .NET in ein ZIP‑Archiv konvertieren – vollständige Schritt‑für‑Schritt‑Anleitung in C#. +### [HTML aus DOCX zippen – Vollständiger C#‑Leitfaden](./how-to-zip-html-from-docx-complete-c-guide/) +Erfahren Sie, wie Sie HTML‑Inhalte aus einer DOCX‑Datei extrahieren und in ein ZIP‑Archiv komprimieren – vollständige C#‑Anleitung. ## Abschluss diff --git a/html/german/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/german/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..b6f3fb219 --- /dev/null +++ b/html/german/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-04-26 +description: Erfahren Sie, wie Sie die HTML‑Ausgabe aus einer DOCX‑Datei zippen, DOCX + in HTML konvertieren, die Bildgröße festlegen, Word nach PNG exportieren und fette + Schrift einstellen – Schritt‑für‑Schritt‑Code. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: de +og_description: Meistern Sie, wie man HTML-Ausgabe aus einer DOCX-Datei zippt, DOCX + in HTML konvertiert, Bildgrößen festlegt, Word nach PNG exportiert und fette Schrift + setzt – alles mit klaren C#‑Beispielen. +og_title: Wie man HTML aus DOCX zippt – Vollständiger C#‑Leitfaden +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Wie man HTML aus DOCX zippt – Vollständiger C#‑Leitfaden +url: /de/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man HTML aus DOCX zippt – Vollständiger C# Leitfaden + +Haben Sie sich jemals gefragt, **wie man HTML zippt**, das Sie aus einem Word‑Dokument erzeugen? Vielleicht benötigen Sie ein einzelnes Archiv, um es an einen Kunden zu senden oder in der Cloud zu speichern, und Sie möchten keinen Ordner voller loser Dateien. In diesem Tutorial führen wir Sie durch die Konvertierung einer .docx‑Datei zu HTML, das Bündeln des Ergebnisses in eine ZIP‑Datei und anschließend das Rendern desselben Dokuments zu einem PNG‑Bild mit benutzerdefinierter Größe und fettem Text. Unterwegs behandeln wir außerdem *convert docx to html*, *set image size*, *export word to png* und *how to set bold font* – alles in einem zusammenhängenden Beispiel. + +Bis zum Ende dieses Leitfadens haben Sie ein sofort ausführbares C#‑Programm, das: + +* Eine DOCX von der Festplatte lädt. +* Sie als HTML speichert und dabei automatisch die Ausgabe zippt. +* Ein PNG mit präziser Breite, Höhe, Antialiasing und fetter Schriftstil rendert. + +Keine externen Skripte, keine selbstgeschriebene Zip‑Logik – nur die Aspose.Words for .NET API (oder eine gleichwertige Bibliothek), die die schwere Arbeit übernimmt. + +--- + +## Voraussetzungen — Was Sie vor dem Start benötigen + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (oder .NET Framework 4.7.2) | Stellt die Laufzeit für die unten verwendete C#‑10‑Syntax bereit. | +| **Aspose.Words for .NET** (oder einer ähnlichen Bibliothek, die `HtmlSaveOptions` und `ImageRenderer` unterstützt) | Verarbeitet die DOCX → HTML‑Konvertierung, Archivierung und Bildrendering. | +| **A DOCX file** named `input.docx` in a folder you control | Eine DOCX‑Datei namens `input.docx` in einem von Ihnen kontrollierten Ordner. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Schreibberechtigung für das Ausgabeverzeichnis (`YOUR_DIRECTORY`). | + +Wenn Sie NuGet verwenden, installieren Sie das Paket mit: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro Tipp:** Die kostenlose Evaluierungsversion fügt dem gerenderten PNG ein Wasserzeichen hinzu. Holen Sie sich eine Lizenz für den Produktionseinsatz. + +## Schritt 1: Laden des Quelldokuments + +Das Erste, was wir tun, ist die Word‑Datei in den Speicher zu lesen. Dies ist die Grundlage für **convert docx to html** und für das spätere Rendern des PNG. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Warum das wichtig ist:* +`Document` ist das zentrale Objekt; es analysiert das .docx‑Paket, löst Stile auf und bereitet Ressourcen sowohl für den HTML‑Export als auch für das Bildrendern vor. Wenn die Datei nicht gefunden wird, wird eine Ausnahme ausgelöst – stellen Sie also sicher, dass der Pfad korrekt ist. + +## Schritt 2: Konfigurieren der HTML‑Speicheroptionen – Der Kern von **How to Zip HTML** + +Hier teilen wir Aspose.Words mit, HTML zu erzeugen, alle zugehörigen Assets (Bilder, CSS) über einen benutzerdefinierten Ressourcen‑Handler zu speichern und schließlich alles in ein einzelnes Archiv zu zippen. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Was `MyResourceHandler` macht + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Warum wir einen Handler benötigen:* +Beim Konvertieren von **convert docx to html** kann die Bibliothek viele Hilfsdateien erzeugen (z. B. `image001.png`). Der Handler fängt jeden Speicher‑Vorgang ab und sorgt dafür, dass alles im ZIP‑Archiv landet statt in einem losen Ordner. + +## Schritt 3: Speichern des Dokuments als gezipptes HTML + +Jetzt passiert die Magie. Die HTML‑Dateien und ihre Ressourcen werden direkt in `doc.zip` geschrieben. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Ergebnis:** +`YOUR_DIRECTORY/doc.zip` enthält jetzt: + +* `document.html` – das Haupt‑Markup. +* `document_files/` – ein Unterordner mit Bildern, CSS und allen eingebetteten Medien. + +Sie können das Archiv entzippen, um die Struktur zu prüfen, oder das ZIP‑Archiv direkt über eine Web‑API bereitstellen. + +## Schritt 4: Einrichten der Bildrender‑Optionen – Steuerung von **Set Image Size** und **How to Set Bold Font** + +Wenn Sie einen visuellen Schnappschuss der Word‑Datei benötigen, können Sie sie zu PNG rendern. Der folgende Block zeigt, wie Sie die genauen Abmessungen festlegen, Antialiasing aktivieren und für gesamten Text fettes Styling erzwingen. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Warum diese Flags wichtig sind:* +- **Width/Height** ermöglichen es Ihnen, das PNG an Ihr UI‑Layout anzupassen. +- **UseAntialiasing** glättet Kanten und verhindert gezackte Linien. +- **FontStyle = Bold** überschreibt jeden Inline‑Stil im DOCX und sorgt dafür, dass das PNG unabhängig von der ursprünglichen Formatierung fett dargestellt wird. + +## Schritt 5: Rendern des Dokuments zu PNG – Der **Export Word to PNG**‑Schritt + +Schließlich fügen wir alles zusammen und erzeugen die Bilddatei. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Was Sie sehen werden:** +Ein klares `out.png`, das die Größe 800 × 600 Pixel hat, mit komplett fett gerendertem Text und antialiasierten Vektorgrafiken. + +## Vollständiges funktionierendes Beispiel – Kopieren, Einfügen, Ausführen + +Unten finden Sie das komplette Programm, bereit, in eine Konsolen‑App eingefügt zu werden. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Erwartete Ausgabe + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | Gezippte HTML‑Datei + Ressourcen (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, aller Text fett, antialiasiert. | + +Sie können `doc.zip` mit jedem Archiv‑Tool öffnen, `document.html` extrahieren und im Browser anzeigen. Das Bild erscheint exakt so, wie es aus der ursprünglichen Word‑Datei gerendert wurde. + +## Häufige Fragen & Sonderfälle + +### Was tun, wenn ich ein anderes Bildformat benötige? +Ändern Sie die Dateierweiterung im `ImageRenderer`‑Konstruktor (`out.jpg`, `out.tiff`) und passen Sie `ImageSavingOptions` entsprechend an. Die API wählt automatisch den richtigen Encoder. + +### Kann ich das Kompressionslevel des ZIPs steuern? +`HtmlSaveOptions` stellt die Eigenschaft `ZipCompressionLevel` bereit (z. B. `CompressionLevel.BestCompression`). Setzen Sie sie, bevor Sie `Save` aufrufen. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Mein DOCX enthält große hochauflösende Bilder – wird das PNG riesig? +Ja, weil wir eine feste Pixelgröße erzwingen. Um die Dateigröße gering zu halten, reduzieren Sie entweder `Width`/`Height` oder aktivieren Sie `ImageResizeOptions` innerhalb von `ImageRenderingOptions`. + +### Wie behalte ich die ursprüngliche Schriftstärke bei, anstatt fett zu erzwingen? +Entfernen Sie einfach die Zeile `FontStyle = WebFontStyle.Bold` oder setzen Sie sie bedingt anhand einer von Ihnen bereitgestellten Option. + +### Funktioniert das unter Linux/macOS? +Absolut. Aspose.Words ist plattformübergreifend; stellen Sie lediglich sicher, dass das passende .NET‑Runtime installiert ist. + +## Fehlersuch‑Checkliste + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Wrong path or missing file | Verify `YOUR_DIRECTORY/input.docx` exists; use absolute paths for testing. | +| `OutOfMemoryException` during PNG render | Very large document or huge image dimensions | Reduce `Width`/`Height` or render pages individually (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returned a different file name or threw | Ensure `ResourceSaving` does not cancel the save (`args.Cancel = false`). | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/german/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..6862fe945 --- /dev/null +++ b/html/german/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-04-26 +description: Speichern Sie HTML schnell als ZIP mit Aspose.HTML. Erfahren Sie, wie + Sie HTML mit einem benutzerdefinierten Ressourcen‑Handler in ZIP konvertieren und + HTML in nur wenigen Schritten zu ZIP rendern. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: de +og_description: Speichern Sie HTML als ZIP mit Aspose.HTML. Dieser Leitfaden zeigt, + wie Sie HTML in ZIP konvertieren, indem Sie einen benutzerdefinierten Ressourcen‑Handler + verwenden, um HTML effizient in ZIP zu rendern. +og_title: HTML als ZIP speichern – Schritt‑für‑Schritt C#‑Tutorial +tags: +- Aspose.HTML +- C# +- HTML rendering +title: HTML als ZIP speichern – Vollständiger C#‑Leitfaden zum Konvertieren von HTML + in ZIP +url: /de/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML als ZIP speichern – Vollständiger C# Leitfaden zum Konvertieren von HTML zu ZIP + +Haben Sie jemals **HTML als ZIP speichern** müssen, waren sich aber nicht sicher, welche API‑Aufrufe Sie verketten müssen? Sie sind nicht allein. Viele Entwickler stoßen an Grenzen, wenn sie eine HTML‑Seite zusammen mit ihrem CSS, Bildern und Schriften in ein einziges Archiv packen wollen – besonders wenn das Ganze im Speicher bleiben soll, bis entschieden wird, was damit geschehen soll. + +Die gute Nachricht? Mit Aspose.HTML können Sie **HTML zu ZIP konvertieren** in wenigen Zeilen, dank der `HtmlSaveOptions`‑Klasse und einem **benutzerdefinierten Resource‑Handler**, der Ihnen die volle Kontrolle darüber gibt, wohin jede Ressource gelangt. In diesem Tutorial führen wir Sie durch die genauen Schritte, um **HTML zu ZIP zu rendern**, alles im Speicher zu speichern und optional die Dateien auf die Festplatte zu schreiben. Am Ende haben Sie ein wiederverwendbares Snippet, das Sie in jedes .NET‑Projekt einbinden können. + +> **Pro‑Tipp:** Wenn Sie bereits Aspose.PDF oder Aspose.Words verwenden, funktioniert das gleiche `ResourceHandler`‑Muster dort ebenfalls, sodass Sie diesen Code für mehrere Dokumenttypen wiederverwenden können. + +--- + +## Was dieses Tutorial abdeckt + +* Wie man die HTML‑Quellzeichenkette definiert (oder aus einer Datei lädt). +* Wie man ein `HTMLDocument` mit Aspose.HTML instanziiert. +* Wie man einen **benutzerdefinierten Resource‑Handler** erstellt, der für jede Ressource einen `MemoryStream` zurückgibt. +* Wie man `HtmlSaveOptions` konfiguriert, um ein **ZIP‑Archiv** zu erzeugen, das das HTML und alle abhängigen Dateien enthält. +* Wie man das Dokument speichert und, falls gewünscht, die im Speicher befindlichen Daten in einen Ordner auf der Festplatte schreibt. + +Keine externen Werkzeuge, kein manuelles Zippen – nur reines C# und Aspose.HTML. + +> **Pro‑Tipp:** Wenn Sie bereits Aspose.PDF oder Aspose.Words verwenden, funktioniert das gleiche `ResourceHandler`‑Muster dort ebenfalls, sodass Sie diesen Code für mehrere Dokumenttypen wiederverwenden können. + +--- + +## Schritt 1: HTML als ZIP speichern – HTML‑Quelle definieren + +Zuerst benötigen wir einen String, der das HTML enthält, das wir archivieren wollen. In einem echten Projekt könnten Sie dies aus einer Datei, einer Datenbank oder einer API‑Antwort lesen, aber zur Übersicht werden wir ein kleines Beispiel hartkodieren. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Warum das wichtig ist:** Der `HTMLDocument`‑Konstruktor erwartet entweder einen Dateipfad oder rohes HTML. Die direkte Übergabe des Strings hält den gesamten Prozess im Speicher, was ideal ist, wenn Sie das ZIP später direkt an einen Client streamen möchten. + +--- + +## Schritt 2: HTML zu ZIP konvertieren – HTMLDocument laden + +Jetzt übergeben wir den HTML‑String an Aspose.HTML. Das zweite Argument (`"."`) teilt der Bibliothek mit, wo relative URLs aufgelöst werden sollen; die Verwendung des aktuellen Verzeichnisses funktioniert in den meisten einfachen Fällen. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Was passiert:** `HTMLDocument` analysiert das Markup, baut ein DOM auf und bereitet alle verknüpften Ressourcen (CSS, Bilder, Schriften) für das Rendering vor. Das Einbetten in einen `using`‑Block garantiert die ordnungsgemäße Freigabe nativer Ressourcen. + +--- + +## Schritt 3: HTML zu ZIP rendern – Benutzerdefinierten Resource‑Handler erstellen + +Aspose.HTML lässt Sie entscheiden, **wo** jede Ressource geschrieben wird. Durch das Subclassing von `ResourceHandler` können wir für jede Datei, die der Renderer speichern muss, einen neuen `MemoryStream` zurückgeben. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Warum ein benutzerdefinierter Handler?** Das Standardverhalten schreibt Dateien ins Dateisystem. Mit einem Handler können Sie alles im RAM behalten, das ZIP direkt an eine Web‑Antwort senden oder die Streams sogar on‑the‑fly verschlüsseln. + +--- + +## Schritt 4: HTML zu ZIP konvertieren – Save‑Optionen konfigurieren + +Hier ist das Herzstück der Operation. `HtmlSaveOptions` weist Aspose.HTML an, alles in ein ZIP‑Archiv zu bündeln (`SaveToArchive = true`) und unseren `resourceHandler` für die Speicherung zu verwenden. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Wichtige Erkenntnis:** `ArchiveFileName` ist der Name, der im ZIP erscheint, nicht ein Pfad auf der Festplatte. Da wir einen speicherbasierten Handler verwenden, befindet sich das ZIP vollständig im RAM, bis wir entscheiden, was damit geschehen soll. + +--- + +## Schritt 5: HTML als ZIP speichern – Archiv persistieren + +Schließlich lassen wir das Dokument sich selbst mit den gerade erstellten Optionen speichern. Dieser Aufruf startet die Rendering‑Pipeline, ruft unseren Handler für jede Ressource auf und schreibt das endgültige ZIP in die von uns bereitgestellten Memory‑Streams. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Ergebnis:** Zu diesem Zeitpunkt enthält `resourceHandler` einen `MemoryStream` für die Haupt‑HTML‑Datei sowie zusätzliche Streams für alle referenzierten CSS‑Dateien, Bilder oder Schriften. Die ZIP‑Datei ist vollständig in diesen Streams zusammengebaut. + +--- + +## Schritt 6: Benutzerdefinierter Resource‑Handler – Stream für jede Ressource bereitstellen + +Unten finden Sie die Implementierung von `MyResourceHandler`. Die Methode `HandleResource` wird einmal pro Ressource (HTML, CSS, Bilder, Schriften, …) aufgerufen. Wir geben jedes Mal einfach einen neuen `MemoryStream` zurück. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Warum ein neuer Stream?** Jede Ressource benötigt ihren eigenen Container; die Wiederverwendung eines einzelnen Streams würde das Archiv beschädigen. `MemoryStream` ist günstig und wächst bei Bedarf automatisch. + +--- + +## Schritt 7: Optional – Gespeicherte Ressourcen auf die Festplatte schreiben + +Wenn Sie die erzeugten Dateien prüfen oder eine Kopie auf dem Server behalten möchten, wird `ResourceSaved` nach dem Schließen eines Streams aufgerufen. Hier schreiben wir den im Speicher befindlichen Inhalt in einen von Ihnen angegebenen Ordner (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Hinweis zum Randfall:** Wenn Sie in einer Umgebung ohne Schreibrechte laufen (z. B. Azure Functions), überspringen Sie einfach die `ResourceSaved`‑Implementierung oder ersetzen Sie sie durch einen Upload in einen Cloud‑Speicher. + +--- + +## Vollständiges, ausführbares Beispiel (38 Zeilen) + +Unten finden Sie den vollständigen Code, bereit zum Einfügen in eine Konsolen‑App. Er hält die 15‑40‑Zeilen‑Grenze ein, verwendet beschreibende Variablennamen und enthält Platzhalter, die Sie anpassen können. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Erwartete Ausgabe + +* Eine `result.zip`‑Datei erscheint im In‑Memory‑Archiv (Sie können sie aus `resourceHandler` abrufen, wenn Sie eine Eigenschaft hinzufügen, um den Stream freizugeben). +* Wenn Sie die `ResourceSaved`‑Implementierung beibehalten haben, werden dieselben Dateien auch nach `YOUR_DIRECTORY/Output` auf der Festplatte geschrieben und spiegeln die interne Struktur des ZIPs wider. + +--- + +## Häufig gestellte Fragen (FAQ) + +**F: Funktioniert das mit großen HTML‑Seiten?** +A: Absolut. `MemoryStream` wächst bei Bedarf, aber bei Seiten im Multi‑Megabyte‑Bereich möchten Sie vielleicht direkt zu einem `FileStream` streamen, um hohen Speicherverbrauch zu vermeiden. Ändern Sie einfach `HandleResource`, sodass es `File.Create(Path.Combine("temp", info.FileName))` zurückgibt. + +**F: Kann ich das ZIP verschlüsseln?** +A: Aspose.HTML bietet keine integrierte Verschlüsselung, aber nachdem Sie den `MemoryStream` erhalten haben, können Sie ihn an `System.IO.Compression.ZipArchive` mit einem Passwort übergeben oder eine Drittanbieter‑Bibliothek wie SharpZipLib verwenden. + +**F: Was ist mit relativen URLs im HTML?** +A: Das zweite Argument von `HTMLDocument` (`"."`) weist Aspose.HTML an, relative Pfade relativ zum aktuellen Verzeichnis aufzulösen. Wenn Ihre Ressourcen woanders liegen, übergeben Sie den entsprechenden Basispfad oder einen benutzerdefinierten `UriResolver`. + +--- + +## Fazit + +Wir haben gerade gezeigt, wie man **HTML als ZIP speichert** mit Aspose.HTML, einem **benutzerdefinierten Resource‑Handler** und ein paar einfachen Konfigurationsschritten. Der Ansatz ermöglicht es Ihnen, **HTML zu ZIP zu konvertieren** vollständig im Speicher, wodurch Sie die Flexibilität erhalten, das Ergebnis an einen Web‑Client zu streamen, in einer Datenbank zu speichern oder später auf die Festplatte zu schreiben. + +Fühlen Sie sich frei zu experimentieren: Ersetzen Sie `MemoryStream` durch einen Cloud‑Storage‑Stream, fügen Sie Passwortschutz hinzu oder verarbeiten Sie Dutzende von Seiten parallel im Batch‑Modus. Das Kernmuster – laden, handhaben, konfigurieren, speichern – bleibt gleich und macht dies zu einem wiederverwendbaren Baustein für jede .NET‑Lösung, die **HTML zu ZIP rendern** oder **ZIP aus HTML erstellen** muss. + +Haben Sie weitere Fragen zur benutzerdefinierten Resource‑Handhabung oder zu anderen Aspose.HTML‑Funktionen? Hinterlassen Sie unten einen Kommentar und happy coding! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/greek/net/generate-jpg-and-png-images/_index.md index 5fd47cce3..6ee2c1ab3 100644 --- a/html/greek/net/generate-jpg-and-png-images/_index.md +++ b/html/greek/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ url: /el/net/generate-jpg-and-png-images/ Μάθετε πώς να βελτιώσετε την ποιότητα των εικόνων ενεργοποιώντας το antialiasing κατά τη μετατροπή αρχείων DOCX σε PNG ή JPG. ### [Μετατροπή docx σε png – δημιουργία αρχείου zip με C# σεμινάριο](./convert-docx-to-png-create-zip-archive-c-tutorial/) Μάθετε πώς να μετατρέψετε αρχεία DOCX σε PNG και να δημιουργήσετε αρχείο ZIP χρησιμοποιώντας C#. +### [Δημιουργία PNG από HTML σε C# – Οδηγός βήμα προς βήμα](./create-png-from-html-in-c-step-by-step-guide/) +Μάθετε πώς να μετατρέψετε HTML σε PNG χρησιμοποιώντας C# με έναν λεπτομερή οδηγό βήμα προς βήμα. ## Σύναψη diff --git a/html/greek/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/greek/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..e9ea2f075 --- /dev/null +++ b/html/greek/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Δημιουργήστε PNG από HTML χρησιμοποιώντας το Aspose.HTML. Μάθετε πώς + να αποδίδετε HTML σε PNG, να μετατρέπετε HTML σε εικόνα, να εξάγετε HTML ως PNG + και να αποδίδετε γρήγορα την εικόνα του εγγράφου HTML. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: el +og_description: Δημιουργήστε PNG από HTML σε C# με το Aspose.HTML. Αυτός ο οδηγός + σας δείχνει πώς να αποδώσετε HTML σε PNG, να μετατρέψετε HTML σε εικόνα και να εξάγετε + HTML ως PNG. +og_title: Δημιουργία PNG από HTML σε C# – Πλήρης Οδηγός Προγραμματισμού +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Δημιουργία PNG από HTML σε C# – Οδηγός βήμα‑προς‑βήμα +url: /el/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία PNG από HTML σε C# – Πλήρης Οδηγός Προγραμματισμού + +Έχετε χρειαστεί ποτέ να **δημιουργήσετε PNG από HTML** αλλά δεν ήξερες ποια βιβλιοθήκη θα σου δώσει καθαρό αποτέλεσμα χωρίς προβλήματα; Δεν είστε μόνοι. Πολλοί προγραμματιστές αντιμετωπίζουν δυσκολίες όταν προσπαθούν να μετατρέψουν μια ιστοσελίδα σε bitmap, ειδικά όταν χρειάζονται anti‑aliasing ή προσαρμοσμένες υποδείξεις γραμματοσειράς. + +Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από μια πρακτική λύση χρησιμοποιώντας **Aspose.HTML for .NET**. Στο τέλος θα ξέρετε πώς να **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, και ακόμη να ρυθμίσετε την αλυσίδα rendering για τέλεια αποτελέσματα. Χωρίς περιττά λόγια—μόνο ένα λειτουργικό παράδειγμα κώδικα, γιατί κάθε γραμμή είναι σημαντική, και μερικές επαγγελματικές συμβουλές που θα θέλατε να γνωρίζατε νωρίτερα. + +## Τι Θα Χρειαστείτε + +- .NET 6+ (ή .NET Framework 4.6+). +- Το πακέτο NuGet `Aspose.HTML` (έκδοση 23.9 ή νεότερη). +- Ένα απλό αρχείο `input.html` που θέλετε να μετατρέψετε σε εικόνα. +- Ένα IDE όπως το Visual Studio 2022 (οποιοσδήποτε επεξεργαστής που μπορεί να μεταγλωττίσει C# αρκεί). + +Αυτό είναι όλο. Χωρίς επιπλέον binaries, χωρίς εξωτερικές υπηρεσίες, και χωρίς περίπλοκα αρχεία ρυθμίσεων. Έτοιμοι; Ας ξεκινήσουμε. + +## Δημιουργία PNG από HTML – Κύρια Βήματα + +Παρακάτω χωρίζουμε όλη τη διαδικασία σε τέσσερα λογικά τμήματα. Κάθε τμήμα αντιστοιχεί σε ένα συγκεκριμένο μπλοκ κώδικα, και κάθε μπλοκ συνοδεύεται από μια σύντομη εξήγηση «γιατί». Ακολουθήστε τη σειρά, αντιγράψτε τον κώδικα, και θα έχετε ένα PNG στο `YOUR_DIRECTORY/output.png` σε δευτερόλεπτα. + +### Βήμα 1: Φόρτωση του HTML Εγγράφου + +Το πρώτο που πρέπει να κάνουμε είναι να δώσουμε στο Aspose.HTML ένα αντικείμενο εγγράφου για επεξεργασία. Σκεφτείτε το σαν να παραδίδετε στον renderer έναν φρέσκο καμβά που περιέχει ήδη όλο το markup, το CSS και τις εικόνες που αναφέρονται στο αρχείο HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Γιατί είναι σημαντικό:* Το `HTMLDocument` αναλύει το αρχείο, λύνει τις σχετικές URL και δημιουργεί ένα δέντρο DOM. Αν το αρχείο δεν βρεθεί, ρίχνεται εξαίρεση ακριβώς εδώ—οπότε εντοπίζετε τα προβλήματα νωρίς, πριν ξεκινήσει η διαδικασία rendering. + +### Βήμα 2: Διαμόρφωση Επιλογών Rendering Εικόνας + +Στη συνέχεια λέμε στο Aspose πόσο μεγάλο πρέπει να είναι το τελικό εικόνα και αν θέλουμε anti‑aliasing. Αυτές οι επιλογές επηρεάζουν άμεσα την οπτική πιστότητα της λειτουργίας **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Γιατί είναι σημαντικό:* Μεγαλύτερες διαστάσεις δίνουν περισσότερη λεπτομέρεια αλλά αυξάνουν τη χρήση μνήμης. Η `UseAntialiasing` είναι το μυστικό συστατικό για ένα επαγγελματικό **export html as png**—χωρίς αυτήν θα δείτε σκαλοπάτια γύρω από κείμενο και διανυσματικά γραφικά. + +### Βήμα 3: Λεπτομερής Ρύθμιση Rendering Κειμένου (Hinting & Font Style) + +Αν το HTML σας χρησιμοποιεί προσαρμοσμένες γραμματοσειρές ή χρειάζεστε έντονη/πλάγια στυλ, θα θέλετε να ενεργοποιήσετε το hinting και να ορίσετε το κατάλληλο `WebFontStyle`. Το hinting ευθυγραμμίζει τα γλυφά στα όρια των pixel, κάτι κρίσιμο όταν **convert html to image** σε σταθερή ανάλυση. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Γιατί είναι σημαντικό:* Το hinting αποτρέπει θολά γράμματα, ειδικά σε οθόνες χαμηλής ανάλυσης (DPI). Ο συνδυασμός `Bold` και `Italic` δείχνει πώς μπορείτε να εφαρμόσετε πολλαπλά στυλ· φυσικά μπορείτε να επιλέξετε μόνο ένα ή κανένα, ανάλογα με το σχέδιο σας. + +### Βήμα 4: Rendering του Αρχείου PNG + +Τέλος, δημιουργούμε ένα `ImageRenderer`, το συνδέουμε με το έγγραφο, ορίζουμε τη διαδρομή εξόδου και περνάμε τις επιλογές που χτίσαμε. Η κλήση `Render()` κάνει όλη τη βαριά δουλειά. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Γιατί είναι σημαντικό:* Το `ImageRenderer` σέβεται κάθε ρύθμιση που ορίσαμε νωρίτερα—μέγεθος, anti‑aliasing, hinting κειμένου, στυλ γραμματοσειράς. Όταν το `Render()` ολοκληρωθεί, έχετε ένα πλήρως συμβατό PNG που μπορεί να εμφανιστεί σε browsers, να ανεβεί σε cloud storage, ή να ενσωματωθεί σε αναφορές. + +> **Pro tip:** Αν χρειάζεστε διαφορετική μορφή εικόνας (JPEG, BMP, GIF), απλώς αλλάξτε την επέκταση αρχείου στη διαδρομή εξόδου. Το Aspose επιλέγει αυτόματα τον σωστό κωδικοποιητή. + +## Render HTML to PNG με Aspose.HTML – Πλήρες Παράδειγμα + +Συνδυάζοντας όλα τα κομμάτια παίρνουμε ένα ενιαίο, αυτόνομο πρόγραμμα. Αντιγράψτε το μπλοκ παρακάτω σε μια νέα console εφαρμογή και τρέξτε το· θα δείτε το `output.png` να εμφανίζεται δίπλα στο πηγαίο HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Αναμενόμενο Αποτέλεσμα + +Μετά την εκτέλεση θα πρέπει να δείτε ένα αρχείο παρόμοιο με το mock‑up παρακάτω (η ακριβής εμφάνιση εξαρτάται από το περιεχόμενο του HTML). + +![Create PNG from HTML example](/images/html-to-png-sample.png "Δείγμα εξόδου όταν δημιουργείτε PNG από HTML χρησιμοποιώντας Aspose.HTML") + +Το PNG θα διατηρεί τη διάταξη, τα χρώματα και τις γραμματοσειρές ακριβώς όπως θα τα έδειχνε ο browser—ευχαριστώντας τη μηχανή **render html document image** του Aspose. + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +### Τι γίνεται αν το HTML μου αναφέρει Εξωτερικές Εικόνες; + +Το Aspose.HTML ακολουθεί σχετικές URL βάσει του φακέλου του `input.html`. Αν έχετε εικόνες αποθηκευμένες αλλού, είτε: + +1. Χρησιμοποιήστε απόλυτες URL (π.χ., `https://example.com/logo.png`). +2. Ορίστε `htmlDocument.BaseUrl` ώστε να δείχνει στο φάκελο που περιέχει τα assets. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Πώς Ρυθμίζω το DPI για Υψηλής Ανάλυσης Έξοδο; + +Μπορείτε να κλιμακώσετε το μέγεθος rendering διατηρώντας την ίδια αναλογία, ή να ορίσετε `renderingOptions.DPI` (η προεπιλογή είναι 96). Για PNG έτοιμα για εκτύπωση, τα 300 DPI είναι κοινά: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Μπορώ να Render πολλαπλές Σελίδες από Ένα μόνο HTML Έγγραφο; + +Ναι. Αν το HTML περιέχει CSS page breaks (`@media print { page-break-after: always; }`), το Aspose θα δημιουργήσει ξεχωριστά PNG αρχεία ανά σελίδα όταν χρησιμοποιήσετε το `MultiPageImageRenderer`. Πρόκειται για πιο προχωρημένο σενάριο, αλλά η ίδια αρχή **convert html to image** ισχύει. + +### Τι γίνεται με την Κατανάλωση Μνήμης; + +Το rendering μιας τεράστιας σελίδας (π.χ., χιλιάδες pixel σε πλάτος) μπορεί να καταναλώσει εκατοντάδες megabytes. Για να κρατήσετε τη χρήση μνήμης χαμηλή: + +- Render σε όσο το δυνατόν μικρότερες αποδεκτές διαστάσεις. +- Απενεργοποιήστε το `UseAntialiasing` αν η ποιότητα δεν είναι κρίσιμη. +- Αποδεσμεύστε άμεσα τα `HTMLDocument` και `ImageRenderer` χρησιμοποιώντας δηλώσεις `using` (όπως φαίνεται). + +## Render HTML Document Image – Επόμενα Βήματα + +Τώρα που έχετε κατακτήσει τα βασικά του **render html to png**, σκεφτείτε τις παρακάτω επεκτάσεις: + +- **Batch conversion:** Επανάληψη σε φάκελο HTML αρχείων και δημιουργία PNG μαζικά. +- **Watermarking:** Μετά το rendering, φορτώστε το PNG με `System.Drawing` ή `ImageSharp` και προσθέστε λογότυπο. +- **PDF generation:** Χρησιμοποιήστε το `PdfRenderer` (επίσης μέρος του Aspose.HTML) για δημιουργία PDF από την ίδια πηγή HTML. + +Κάθε μία από αυτές βασίζεται στις ίδιες βασικές έννοιες που μόλις μάθατε, οπότε θα νιώσετε άνετα. + +## Συμπέρασμα + +Σας οδήγησαμε από το πρόβλημα—*πώς να δημιουργήσετε PNG από HTML*—μέχρι μια πλήρη, εκτελέσιμη λύση που **renders HTML to PNG**, **converts HTML to image**, και **exports HTML as PNG** με λεπτομερή έλεγχο μεγέθους, anti‑aliasing, και hinting κειμένου. + +Δοκιμάστε το με τη δική σας ιστοσελίδα, τροποποιήστε τις διαστάσεις, και πειραματιστείτε με διαφορετικά στυλ γραμματοσειράς. Ο κώδικας είναι σύντομος, το API διαισθητικό, και τα αποτελέσματα μοιάζουν ακριβώς με ένα screenshot από browser—μόνο πιο γρήγορα και πλήρως αυτοματοποιημένα. + +Αν σας άρεσε αυτός ο οδηγός, ρίξτε μια ματιά στα άλλα tutorials μας για **render html document image** χειρισμό, όπως η μετατροπή HTML σε PDF ή η δημιουργία στιγμιότυπων SVG. Καλό coding, και οι PNG σας να είναι πάντα pixel‑perfect! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/greek/net/html-extensions-and-conversions/_index.md index 013b0ec4b..9991f61da 100644 --- a/html/greek/net/html-extensions-and-conversions/_index.md +++ b/html/greek/net/html-extensions-and-conversions/_index.md @@ -73,6 +73,10 @@ url: /el/net/html-extensions-and-conversions/ Μάθετε πώς να αποθηκεύετε HTML σε αρχείο ZIP με C# και Aspose.HTML. ### [Αποθήκευση HTML σε ZIP σε C# – Πλήρες Παράδειγμα Εντός Μνήμης](./save-html-to-zip-in-c-complete-in-memory-example/) Μάθετε πώς να αποθηκεύετε HTML σε αρχείο ZIP με C# χρησιμοποιώντας πλήρες παράδειγμα εντός μνήμης. +### [Αποθήκευση HTML ως ZIP – Πλήρης Οδηγός C# για τη Μετατροπή HTML σε ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Μάθετε πώς να μετατρέπετε HTML σε αρχείο ZIP με C# χρησιμοποιώντας το Aspose.HTML για .NET. +### [Πώς να συμπιέσετε HTML από DOCX – Πλήρης οδηγός C#](./how-to-zip-html-from-docx-complete-c-guide/) +Μάθετε πώς να εξάγετε HTML από έγγραφα DOCX και να τα συμπιέσετε σε αρχείο ZIP χρησιμοποιώντας C# και Aspose.HTML. ## Σύναψη diff --git a/html/greek/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/greek/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..af7043059 --- /dev/null +++ b/html/greek/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Μάθετε πώς να συμπιέσετε την έξοδο HTML από ένα αρχείο DOCX, να μετατρέψετε + το docx σε HTML, να ορίσετε το μέγεθος της εικόνας, να εξάγετε το Word σε PNG και + πώς να ορίσετε έντονη γραμματοσειρά – βήμα‑βήμα κώδικας. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: el +og_description: Μάθετε πώς να συμπιέζετε την έξοδο HTML από ένα αρχείο DOCX, να μετατρέπετε + docx σε HTML, να ορίζετε το μέγεθος εικόνας, να εξάγετε το Word σε PNG και πώς να + ορίζετε έντονη γραμματοσειρά με σαφή παραδείγματα C#. +og_title: Πώς να συμπιέσετε HTML από DOCX – Πλήρης οδηγός C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Πώς να συμπιέσετε HTML από DOCX – Πλήρης οδηγός C# +url: /el/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Συμπιέσετε HTML από DOCX – Πλήρης Οδηγός C# + +Έχετε αναρωτηθεί ποτέ **πώς να συμπιέσετε html** που δημιουργείτε από ένα έγγραφο Word; Ίσως χρειάζεστε ένα ενιαίο αρχείο για αποστολή σε πελάτη ή αποθήκευση στο cloud, και δεν θέλετε έναν φάκελο γεμάτο ξεχωριστά αρχεία. Σε αυτό το tutorial θα περάσουμε από τη μετατροπή ενός .docx σε HTML, τη συσσωμάτωση του αποτελέσματος σε αρχείο ZIP, και στη συνέχεια τη δημιουργία μιας εικόνας PNG του ίδιου εγγράφου με προσαρμοσμένο μέγεθος και έντονο κείμενο. Καθ' όλη τη διάρκεια θα καλύψουμε επίσης *convert docx to html*, *set image size*, *export word to png* και *how to set bold font*—όλα σε ένα ενιαίο παράδειγμα. + +Στο τέλος αυτού του οδηγού θα έχετε ένα έτοιμο προς εκτέλεση πρόγραμμα C# που: + +* Φορτώνει ένα DOCX από το δίσκο. +* Το αποθηκεύει ως HTML ενώ αυτόματα συμπιέζει το αποτέλεσμα. +* Δημιουργεί ένα PNG με ακριβές πλάτος, ύψος, antialiasing και στυλ έντονης γραμματοσειράς. + +Χωρίς εξωτερικά scripts, χωρίς χειροκίνητη λογική zip—μόνο το Aspose.Words for .NET API (ή οποιαδήποτε ισοδύναμη βιβλιοθήκη) που κάνει το σκληρό έργο. + +--- + +## Προαπαιτούμενα — Τι Χρειάζεστε Πριν Ξεκινήσετε + +| Απαίτηση | Γιατί Είναι Σημαντική | +|----------|-----------------------| +| **.NET 6.0+** (ή .NET Framework 4.7.2) | Παρέχει το runtime για τη σύνταξη C# 10 που χρησιμοποιείται παρακάτω. | +| **Aspose.Words for .NET** (ή παρόμοια βιβλιοθήκη που υποστηρίζει `HtmlSaveOptions` και `ImageRenderer`) | Διαχειρίζεται τη μετατροπή DOCX → HTML, τη συμπίεση και τη δημιουργία εικόνας. | +| **Ένα αρχείο DOCX** με όνομα `input.docx` σε φάκελο που ελέγχετε | Το πηγαίο έγγραφο που θα μετασχηματίσουμε. | +| **Δικαίωμα εγγραφής** στον φάκελο εξόδου (`YOUR_DIRECTORY`) | Απαιτείται για τη δημιουργία του `doc.zip` και του `out.png`. | + +Αν χρησιμοποιείτε NuGet, εγκαταστήστε το πακέτο με: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** Η δωρεάν έκδοση αξιολόγησης προσθέτει υδατογράφημα στο PNG. Αποκτήστε άδεια για παραγωγική χρήση. + +--- + +## Βήμα 1: Φόρτωση του Πηγαίου Εγγράφου + +Το πρώτο που κάνουμε είναι να διαβάσουμε το αρχείο Word στη μνήμη. Αυτό είναι η βάση για **convert docx to html** και για τη δημιουργία του PNG αργότερα. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Γιατί είναι σημαντικό:* +`Document` είναι το κεντρικό αντικείμενο· αναλύει το πακέτο .docx, επιλύει τα στυλ και προετοιμάζει τους πόρους τόσο για εξαγωγή HTML όσο και για απόδοση εικόνας. Αν το αρχείο δεν βρεθεί, θα ριχτεί εξαίρεση—οπότε βεβαιωθείτε ότι η διαδρομή είναι σωστή. + +--- + +## Βήμα 2: Διαμόρφωση Επιλογών Αποθήκευσης HTML – Ο Πυρήνας του **How to Zip HTML** + +Εδώ λέμε στο Aspose.Words να δημιουργήσει HTML, να αποθηκεύσει όλα τα σχετικά assets (εικόνες, CSS) μέσω ενός προσαρμοσμένου διαχειριστή πόρων, και τελικά να συμπιέσει τα πάντα σε ένα ενιαίο αρχείο. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Τι Κάνει το `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Γιατί χρειαζόμαστε διαχειριστή:* +Κατά τη μετατροπή **convert docx to html**, η βιβλιοθήκη μπορεί να δημιουργήσει πολλά βοηθητικά αρχεία (π.χ. `image001.png`). Ο διαχειριστής παρεμβάλλεται σε κάθε αποθήκευση, διασφαλίζοντας ότι όλα καταλήγουν μέσα στο ZIP αντί για έναν χαλαρό φάκελο. + +--- + +## Βήμα 3: Αποθήκευση του Εγγράφου ως Συμπιεσμένο HTML + +Τώρα συμβαίνει η μαγεία. Τα αρχεία HTML και οι πόροι τους γράφονται κατευθείαν στο `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Αποτέλεσμα:** +`YOUR_DIRECTORY/doc.zip` περιέχει τώρα: + +* `document.html` – το κύριο markup. +* `document_files/` – υποφάκελο με εικόνες, CSS και οποιοδήποτε ενσωματωμένο μέσο. + +Μπορείτε να το αποσυμπιέσετε για να ελέγξετε τη δομή, ή να σερβίρετε το ZIP απευθείας από ένα web API. + +--- + +## Βήμα 4: Ρύθμιση Επιλογών Απόδοσης Εικόνας – Έλεγχος **Set Image Size** και **How to Set Bold Font** + +Αν χρειάζεστε μια οπτική λήψη του αρχείου Word, μπορείτε να το αποδώσετε σε PNG. Το παρακάτω τμήμα δείχνει πώς να ορίσετε τις ακριβείς διαστάσεις, να ενεργοποιήσετε antialiasing και να επιβάλετε έντονο στυλ σε όλο το κείμενο. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Γιατί είναι σημαντικές αυτές οι επιλογές:* +- **Width/Height** σας επιτρέπουν να προσαρμόσετε το PNG στη διάταξη UI. +- **UseAntialiasing** λειαίνει τις άκρες, αποτρέποντας σκαλιστές γραμμές. +- **FontStyle = Bold** παρακάμπτει οποιοδήποτε ενσωματωμένο στυλ στο DOCX, εξασφαλίζοντας ότι το PNG θα εμφανίζεται με έντονο κείμενο ανεξάρτητα από την αρχική μορφοποίηση. + +--- + +## Βήμα 5: Απόδοση του Εγγράφου σε PNG – Το **Export Word to PNG** Βήμα + +Τέλος, ενώνουμε όλα τα κομμάτια και παράγουμε το αρχείο εικόνας. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Τι θα δείτε:** +Ένα καθαρό `out.png` που ταιριάζει στο μέγεθος 800 × 600, με όλο το κείμενο έντονο και τυχόν διανυσματικά γραφικά antialiased. + +--- + +## Πλήρες Παράδειγμα – Αντιγράψτε, Επικολλήστε, Εκτελέστε + +Παρακάτω είναι το πλήρες πρόγραμμα, έτοιμο να το τοποθετήσετε σε μια εφαρμογή console. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Αναμενόμενη Έξοδος + +| Αρχείο | Τοποθεσία | Περιγραφή | +|--------|-----------|-----------| +| `doc.zip` | `YOUR_DIRECTORY` | Συμπιεσμένο HTML + πόροι (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, όλο το κείμενο έντονο, antialiased. | + +Μπορείτε να ανοίξετε το `doc.zip` με οποιοδήποτε εργαλείο συμπίεσης, να εξάγετε το `document.html` και να το δείτε σε φυλλομετρητή. Η εικόνα θα εμφανιστεί ακριβώς όπως αποδόθηκε από το αρχικό αρχείο Word. + +--- + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +### Τι αν χρειάζομαι διαφορετική μορφή εικόνας; +Αλλάξτε την επέκταση αρχείου στον κατασκευαστή `ImageRenderer` (`out.jpg`, `out.tiff`) και προσαρμόστε τις `ImageSavingOptions` ανάλογα. Το API επιλέγει αυτόματα τον σωστό κωδικοποιητή. + +### Μπορώ να ελέγξω το επίπεδο συμπίεσης του ZIP; +Το `HtmlSaveOptions` εκθέτει την ιδιότητα `ZipCompressionLevel` (π.χ. `CompressionLevel.BestCompression`). Ορίστε την πριν καλέσετε το `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Το DOCX μου περιέχει μεγάλες εικόνες υψηλής ανάλυσης—θα είναι τεράστιο το PNG; +Ναι, επειδή επιβάλλουμε σταθερό μέγεθος pixel. Για να μειώσετε το μέγεθος του αρχείου, είτε μειώστε το `Width`/`Height` είτε ενεργοποιήστε `ImageResizeOptions` μέσα στο `ImageRenderingOptions`. + +### Πώς να διατηρήσω το αρχικό βάρος γραμματοσειράς αντί να το κάνω έντονο; +Απλώς αφαιρέστε τη γραμμή `FontStyle = WebFontStyle.Bold`, ή ορίστε την υπό όρους με βάση μια σημαία που εκτίθεται στον χρήστη. + +### Λειτουργεί αυτό σε Linux/macOS; +Απόλυτα. Το Aspose.Words είναι cross‑platform· απλώς βεβαιωθείτε ότι έχετε εγκατεστημένο το κατάλληλο .NET runtime. + +--- + +## Λίστα Ελέγχου Επίλυσης Προβλημάτων + +| Συμπτωμα | Πιθανή Αιτία | Διόρθωση | +|----------|---------------|----------| +| `FileNotFoundException` στο `input.docx` | Λάθος διαδρομή ή λείπει το αρχείο | Επαληθεύστε ότι υπάρχει `YOUR_DIRECTORY/input.docx`; χρησιμοποιήστε απόλυτες διαδρομές για δοκιμή. | +| `OutOfMemoryException` κατά την απόδοση PNG | Πολύ μεγάλο έγγραφο ή τεράστιες διαστάσεις εικόνας | Μειώστε `Width`/`Height` ή αποδώστε τις σελίδες ξεχωριστά (`ImageRenderer.Render(pageIndex)`). | +| Το ZIP περιέχει κενό φάκελο `document_files` | Ο `MyResourceHandler` επέστρεψε διαφορετικό όνομα αρχείου ή έριξε εξαίρεση | Βεβαιωθείτε ότι το `ResourceSaving` δεν ακυρώνει την αποθήκευση (`args.Cancel = false`). | +| Το κείμενο δεν είναι έντονο στο PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/greek/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..505bb978c --- /dev/null +++ b/html/greek/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Αποθηκεύστε το HTML ως ZIP γρήγορα με το Aspose.HTML. Μάθετε πώς να μετατρέψετε + το HTML σε ZIP χρησιμοποιώντας έναν προσαρμοσμένο διαχειριστή πόρων και να αποδώσετε + το HTML σε ZIP σε λίγα μόνο βήματα. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: el +og_description: Αποθηκεύστε το HTML ως ZIP με το Aspose.HTML. Αυτός ο οδηγός δείχνει + πώς να μετατρέψετε το HTML σε ZIP, χρησιμοποιώντας έναν προσαρμοσμένο διαχειριστή + πόρων για αποδοτική απόδοση του HTML σε ZIP. +og_title: Αποθήκευση HTML ως ZIP – Βήμα‑βήμα οδηγός C# +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Αποθήκευση HTML ως ZIP – Πλήρης Οδηγός C# για τη Μετατροπή HTML σε ZIP +url: /el/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Αποθήκευση HTML ως ZIP – Πλήρης Οδηγός C# για Μετατροπή HTML σε ZIP + +Κάποτε χρειάστηκε να **αποθηκεύσετε HTML ως ZIP** αλλά δεν ήξερες ποια κλήση API να συνδυάσεις; Δεν είσαι μόνος. Πολλοί προγραμματιστές συναντούν πρόβλημα όταν θέλουν να συσσωρεύσουν μια σελίδα HTML μαζί με το CSS, τις εικόνες και τις γραμματοσειρές της σε ένα ενιαίο αρχείο—ιδιαίτερα όταν θέλουν όλο αυτό να παραμείνει στη μνήμη μέχρι να αποφασίσουν τι θα κάνουν με αυτό. + +Τα καλά νέα; Με το Aspose.HTML μπορείτε να **μετατρέψετε HTML σε ZIP** με λίγες γραμμές κώδικα, χάρη στην κλάση `HtmlSaveOptions` και έναν **προσαρμοσμένο διαχειριστή πόρων** που σας δίνει πλήρη έλεγχο πάνω στο πού καταλήγει κάθε πόρος. Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα τις ακριβείς ενέργειες για **απόδοση HTML σε ZIP**, αποθήκευση όλων στη μνήμη, και προαιρετικά εγγραφή των αρχείων στο δίσκο. Στο τέλος θα έχετε ένα επαναχρησιμοποιήσιμο snippet που μπορείτε να ενσωματώσετε σε οποιοδήποτε .NET project. + +## Τι Καλύπτει Αυτό το Tutorial + +* Πώς να ορίσετε τη συμβολοσειρά πηγής HTML (ή να τη φορτώσετε από αρχείο). +* Πώς να δημιουργήσετε ένα `HTMLDocument` με το Aspose.HTML. +* Πώς να δημιουργήσετε έναν **προσαρμοσμένο διαχειριστή πόρων** που επιστρέφει ένα `MemoryStream` για κάθε πόρο. +* Πώς να ρυθμίσετε το `HtmlSaveOptions` ώστε να δημιουργεί ένα **αρχείο ZIP** που περιέχει το HTML και όλα τα εξαρτημένα αρχεία του. +* Πώς να αποθηκεύσετε το έγγραφο και, αν θέλετε, να γράψετε τα δεδομένα στη μνήμη σε φάκελο στο δίσκο. + +Χωρίς εξωτερικά εργαλεία, χωρίς χειροκίνητη συμπίεση—μόνο καθαρό C# και Aspose.HTML. + +> **Pro tip:** Αν ήδη χρησιμοποιείτε Aspose.PDF ή Aspose.Words, το ίδιο μοτίβο `ResourceHandler` λειτουργεί και εκεί, ώστε να επαναχρησιμοποιήσετε αυτόν τον κώδικα σε πολλαπλούς τύπους εγγράφων. + +--- + +## Βήμα 1: Αποθήκευση HTML ως ZIP – Ορισμός της Πηγής HTML + +Πρώτα χρειάζεται μια συμβολοσειρά που να περιέχει το HTML που θέλουμε να αρχειοθετήσουμε. Σε ένα πραγματικό project μπορεί να διαβάσετε αυτό από αρχείο, βάση δεδομένων ή από απόκριση API, αλλά για σαφήνεια θα κωδικοποιήσουμε ένα μικρό παράδειγμα. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Γιατί είναι σημαντικό:** Ο κατασκευαστής `HTMLDocument` δέχεται είτε διαδρομή αρχείου είτε ακατέργαστο HTML. Η άμεση παροχή της συμβολοσειράς διατηρεί όλη τη διαδικασία στη μνήμη, κάτι ιδανικό όταν αργότερα θέλετε να στείλετε το ZIP απευθείας σε έναν client. + +--- + +## Βήμα 2: Μετατροπή HTML σε ZIP – Φόρτωση του HTMLDocument + +Τώρα παραδίδουμε τη συμβολοσειρά HTML στο Aspose.HTML. Το δεύτερο όρισμα (`"."`) λέει στη βιβλιοθήκη πού να επιλύσει τις σχετικές URL· η χρήση του τρέχοντος καταλόγου λειτουργεί στις περισσότερες απλές περιπτώσεις. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Τι συμβαίνει:** Το `HTMLDocument` αναλύει το markup, δημιουργεί ένα DOM και προετοιμάζει όλους τους συνδεδεμένους πόρους (CSS, εικόνες, γραμματοσειρές) για απόδοση. Η τοποθέτηση του σε ένα μπλοκ `using` εγγυάται την ορθή απελευθέρωση των εγγενών πόρων. + +--- + +## Βήμα 3: Απόδοση HTML σε ZIP – Δημιουργία Προσαρμοσμένου Διαχειριστή Πόρων + +Το Aspose.HTML σας επιτρέπει να αποφασίσετε **πού** θα γραφτεί κάθε πόρος. Με την κληρονομιά της κλάσης `ResourceHandler` μπορούμε να επιστρέψουμε ένα νέο `MemoryStream` για κάθε αρχείο που χρειάζεται ο renderer. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Γιατί προσαρμοσμένος διαχειριστής;** Η προεπιλεγμένη συμπεριφορά γράφει αρχεία στο σύστημα αρχείων. Με έναν διαχειριστή μπορείτε να κρατήσετε τα πάντα στη RAM, να σπρώξετε το ZIP κατευθείαν σε απάντηση web, ή ακόμη και να κρυπτογραφήσετε τα streams εν κινήσει. + +--- + +## Βήμα 4: Μετατροπή HTML σε ZIP – Ρύθμιση Επιλογών Αποθήκευσης + +Αυτή είναι η καρδιά της λειτουργίας. Το `HtmlSaveOptions` λέει στο Aspose.HTML να συσσωρεύσει τα πάντα σε ένα αρχείο ZIP (`SaveToArchive = true`) και να χρησιμοποιήσει το `resourceHandler` μας για την αποθήκευση. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Κύρια ιδέα:** Το `ArchiveFileName` είναι το όνομα που θα εμφανιστεί μέσα στο ZIP, όχι διαδρομή στο δίσκο. Επειδή χρησιμοποιούμε διαχειριστή βασισμένο στη μνήμη, το ZIP ζει εξ ολοκλήρου στη RAM μέχρι να αποφασίσουμε τι θα κάνουμε με αυτό. + +--- + +## Βήμα 5: Αποθήκευση HTML ως ZIP – Επίμονη Αποθήκευση του Αρχείου + +Τέλος, ζητάμε από το έγγραφο να αποθηκευτεί χρησιμοποιώντας τις επιλογές που μόλις δημιουργήσαμε. Αυτή η κλήση ενεργοποιεί την αλυσίδα απόδοσης, καλεί τον διαχειριστή μας για κάθε πόρο, και γράφει το τελικό ZIP στα memory streams που παρέχουμε. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Αποτέλεσμα:** Σε αυτό το σημείο ο `resourceHandler` περιέχει ένα `MemoryStream` για το κύριο αρχείο HTML, καθώς και επιπλέον streams για τυχόν CSS, εικόνες ή γραμματοσειρές που αναφέρθηκαν. Το αρχείο ZIP είναι πλήρως συναρμολογημένο μέσα σε αυτά τα streams. + +--- + +## Βήμα 6: Προσαρμοσμένος Διαχειριστής Πόρων – Παροχή Stream για Κάθε Πόρο + +Παρακάτω είναι η υλοποίηση του `MyResourceHandler`. Η μέθοδος `HandleResource` καλείται μία φορά ανά πόρο (HTML, CSS, εικόνες, γραμματοσειρές, …). Απλώς επιστρέφουμε ένα νέο `MemoryStream` κάθε φορά. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Γιατί νέο stream;** Κάθε πόρος χρειάζεται το δικό του container· η επαναχρησιμοποίηση ενός μόνο stream θα κατέστρεφε το αρχείο. Το `MemoryStream` είναι ελαφρύ και αυξάνεται αυτόματα όσο χρειάζεται. + +--- + +## Βήμα 7: Προαιρετικό – Εγγραφή των Αποθηκευμένων Πόρων στο Δίσκο + +Αν θέλετε να ελέγξετε τα παραγόμενα αρχεία ή να κρατήσετε ένα αντίγραφο στον server, η μέθοδος `ResourceSaved` καλείται μετά το κλείσιμο ενός stream. Εδώ γράφουμε το περιεχόμενο στη μνήμη σε φάκελο που καθορίζετε (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Σημείωση για ειδικές περιπτώσεις:** Αν εκτελείτε σε περιβάλλον χωρίς δικαιώματα εγγραφής (π.χ. Azure Functions), απλώς παραλείψτε την υλοποίηση του `ResourceSaved` ή αντικαταστήστε την με ανέβασμα σε αποθήκευση cloud. + +--- + +## Πλήρες, Εκτελέσιμο Παράδειγμα (38 Γραμμές) + +Παρακάτω βρίσκεται ο πλήρης κώδικας έτοιμος για επικόλληση σε μια console εφαρμογή. Σεβόμαστε το όριο 15‑40 γραμμών, χρησιμοποιούμε περιγραφικά ονόματα μεταβλητών και περιλαμβάνει placeholders που μπορείτε να προσαρμόσετε. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Αναμενόμενο Αποτέλεσμα + +* Ένα αρχείο `result.zip` εμφανίζεται μέσα στο in‑memory archive (μπορείτε να το ανακτήσετε από το `resourceHandler` αν προσθέσετε ιδιότητα για την έκθεση του stream). +* Αν διατηρήσατε την υλοποίηση `ResourceSaved`, τα ίδια αρχεία γράφονται επίσης στο `YOUR_DIRECTORY/Output` στον δίσκο, αντικατοπτρίζοντας τη δομή του ZIP. + +--- + +## Συχνές Ερωτήσεις (FAQ) + +**Ε: Λειτουργεί αυτό με μεγάλες σελίδες HTML;** +Α: Απόλυτα. Το `MemoryStream` επεκτείνεται όσο χρειάζεται, αλλά για σελίδες πολλαπλών megabytes ίσως θέλετε να κάνετε streaming απευθείας σε `FileStream` για να αποφύγετε υψηλή πίεση μνήμης. Απλώς αλλάξτε το `HandleResource` ώστε να επιστρέφει `File.Create(Path.Combine("temp", info.FileName))`. + +**Ε: Μπορώ να κρυπτογραφήσω το ZIP;** +Α: Το Aspose.HTML δεν παρέχει ενσωματωμένη κρυπτογράφηση, αλλά αφού λάβετε το `MemoryStream` μπορείτε να το περάσετε σε `System.IO.Compression.ZipArchive` με κωδικό πρόσβασης, ή να χρησιμοποιήσετε βιβλιοθήκη τρίτου όπως το SharpZipLib. + +**Ε: Τι γίνεται με τις σχετικές URL μέσα στο HTML;** +Α: Το δεύτερο όρισμα του `HTMLDocument` (`"."`) λέει στο Aspose.HTML να επιλύει τις σχετικές διαδρομές σε σχέση με τον τρέχοντα φάκελο. Αν οι πόροι σας βρίσκονται αλλού, περάστε το κατάλληλο base path ή έναν προσαρμοσμένο `UriResolver`. + +--- + +## Συμπέρασμα + +Δείξαμε πώς να **αποθηκεύσετε HTML ως ZIP** χρησιμοποιώντας το Aspose.HTML, έναν **προσαρμοσμένο διαχειριστή πόρων**, και λίγες απλές ρυθμίσεις. Η προσέγγιση σας επιτρέπει να **μετατρέψετε HTML σε ZIP** εξ ολοκλήρου στη μνήμη, δίνοντάς σας την ευελιξία να στείλετε το αποτέλεσμα σε web client, να το αποθηκεύσετε σε βάση δεδομένων, ή να το γράψετε στο δίσκο για μελλοντική χρήση. + +Πειραματιστείτε: αντικαταστήστε το `MemoryStream` με stream αποθήκευσης cloud, προσθέστε προστασία με κωδικό, ή επεξεργαστείτε δεκάδες σελίδες παράλληλα. Το βασικό μοτίβο—φόρτωση, διαχείριση, ρύθμιση, αποθήκευση—παραμένει το ίδιο, καθιστώντας το ένα επαναχρησιμοποιήσιμο δομικό στοιχείο για οποιαδήποτε .NET λύση που χρειάζεται **απόδοση HTML σε ZIP** ή **δημιουργία ZIP από HTML**. + +Έχετε περισσότερες ερωτήσεις για τον προσαρμοσμένο διαχειριστή πόρων ή άλλες δυνατότητες του Aspose.HTML; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική! + +![Διάγραμμα που δείχνει τη ροή από την πηγή HTML σε ένα in‑memory αρχείο ZIP](placeholder.png "παράδειγμα αποθήκευσης html ως zip") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/hindi/net/generate-jpg-and-png-images/_index.md index b35cbb62e..eb30e5467 100644 --- a/html/hindi/net/generate-jpg-and-png-images/_index.md +++ b/html/hindi/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ HTML दस्तावेज़ों में हेरफेर करने DOCX फ़ाइलों को PNG या JPG में परिवर्तित करते समय एंटीएलियासिंग को सक्षम करने के चरणों को जानें। ### [DOCX को PNG में परिवर्तित करें – ZIP आर्काइव बनाएं C# ट्यूटोरियल](./convert-docx-to-png-create-zip-archive-c-tutorial/) C# में DOCX फ़ाइलों को PNG छवियों में बदलें और उन्हें ZIP आर्काइव में संकलित करना सीखें। चरण-दर-चरण मार्गदर्शिका। +### [C# में HTML से PNG बनाएं – चरण-दर-चरण गाइड](./create-png-from-html-in-c-step-by-step-guide/) +C# का उपयोग करके HTML को PNG छवि में बदलने की पूरी प्रक्रिया सीखें। आसान चरणों के साथ। ## निष्कर्ष diff --git a/html/hindi/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/hindi/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..faf460b07 --- /dev/null +++ b/html/hindi/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTML का उपयोग करके HTML से PNG बनाएं। जानें कि HTML को PNG में + कैसे रेंडर करें, HTML को इमेज में कैसे बदलें, HTML को PNG के रूप में निर्यात करें, + और HTML दस्तावेज़ की इमेज को जल्दी से रेंडर करें। +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: hi +og_description: Aspose.HTML के साथ C# में HTML से PNG बनाएं। यह गाइड आपको दिखाता है + कि HTML को PNG में कैसे रेंडर करें, HTML को इमेज में कैसे बदलें, और HTML को PNG + के रूप में कैसे निर्यात करें। +og_title: C# में HTML से PNG बनाएं – पूर्ण प्रोग्रामिंग गाइड +tags: +- Aspose.HTML +- C# +- Image Rendering +title: C# में HTML से PNG बनाएं – चरण-दर-चरण गाइड +url: /hi/net/generate-jpg-and-png-images/create-png-from-html-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 से PNG बनाएं – पूर्ण प्रोग्रामिंग गाइड + +क्या आपको कभी **HTML से PNG बनाना** पड़ा है लेकिन यह नहीं पता था कि कौन सी लाइब्रेरी आपको बिना झंझट के साफ़ आउटपुट देगी? आप अकेले नहीं हैं। कई डेवलपर्स को वेब‑पेज को बिटमैप में बदलते समय दिक्कत होती है, खासकर जब उन्हें एंटी‑एलियासिंग या कस्टम फ़ॉन्ट हिंट्स की ज़रूरत होती है। + +इस ट्यूटोरियल में हम **Aspose.HTML for .NET** का उपयोग करके एक व्यावहारिक समाधान पर चलते हैं। अंत तक आप जानेंगे कि **HTML को PNG में रेंडर** कैसे करें, **HTML को इमेज में कनवर्ट** कैसे करें, **HTML को PNG के रूप में एक्सपोर्ट** कैसे करें, और परफ़ेक्ट परिणामों के लिए रेंडरिंग पाइपलाइन को कैसे ट्यून करें। कोई फालतू बात नहीं—सिर्फ एक काम करने वाला कोड उदाहरण, प्रत्येक लाइन का महत्व, और कुछ प्रो टिप्स जो आप पहले जानना चाहते थे। + +## What You’ll Need + +- .NET 6+ (या .NET Framework 4.6+). +- `Aspose.HTML` NuGet पैकेज (वर्ज़न 23.9 या नया)। +- एक साधारण `input.html` फ़ाइल जिसे आप चित्र में बदलना चाहते हैं। +- Visual Studio 2022 जैसा IDE (कोई भी एडिटर जो C# कंपाइल कर सके, चलेगा)। + +बस इतना ही। कोई अतिरिक्त बाइनरी नहीं, कोई बाहरी सर्विस नहीं, और कोई अजीब कॉन्फ़िगरेशन फ़ाइल नहीं। तैयार हैं? चलिए शुरू करते हैं। + +## Create PNG from HTML – Core Steps + +नीचे हम पूरे प्रोसेस को चार तार्किक भागों में बाँटते हैं। प्रत्येक भाग एक ठोस कोड ब्लॉक से जुड़ा है, और प्रत्येक ब्लॉक के साथ एक छोटा “क्यों” स्पष्टीकरण दिया गया है। क्रम का पालन करें, कोड कॉपी करें, और कुछ ही सेकंड में `YOUR_DIRECTORY/output.png` में PNG तैयार हो जाएगा। + +### Step 1: Load the HTML Document + +पहला काम है Aspose.HTML को एक डॉक्यूमेंट ऑब्जेक्ट देना जिससे वह काम कर सके। इसे ऐसे समझें जैसे आप रेंडरर को एक नई कैनवास दे रहे हैं जिसमें पहले से ही सभी मार्कअप, CSS, और इमेजेज़ शामिल हैं जो HTML फ़ाइल में रेफ़रेंस किए गए हैं। + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Why this matters:* `HTMLDocument` फ़ाइल को पार्स करता है, रिलेटिव URL हल करता है, और एक DOM ट्री बनाता है। अगर फ़ाइल नहीं मिलती, तो यहाँ ही एक्सेप्शन फेंका जाता है—इससे आप रेंडरिंग शुरू होने से पहले ही समस्याओं को पकड़ लेते हैं। + +### Step 2: Configure Image Rendering Options + +अब हम Aspose को बताते हैं कि अंतिम चित्र का आकार कितना होना चाहिए और क्या हमें एंटी‑एलियासिंग चाहिए। ये विकल्प सीधे **render html to png** ऑपरेशन की विज़ुअल फ़िडेलिटी को प्रभावित करते हैं। + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Why this matters:* बड़े डाइमेंशन अधिक डिटेल देते हैं लेकिन मेमोरी उपयोग बढ़ाते हैं। `UseAntialiasing` प्रोफ़ेशनल‑लुकिंग **export html as png** का सीक्रेट सॉस है—बिना इसे आप टेक्स्ट और वेक्टर ग्राफ़िक्स के आसपास स्टेयर‑स्टेप आर्टिफैक्ट देखेंगे। + +### Step 3: Fine‑Tune Text Rendering (Hinting & Font Style) + +यदि आपका HTML कस्टम फ़ॉन्ट्स इस्तेमाल करता है या आपको बोल्ड/इटैलिक स्टाइल चाहिए, तो आपको हिंटिंग एनेबल करनी होगी और उचित `WebFontStyle` सेट करना होगा। हिंटिंग glyphs को पिक्सेल बाउंड्रीज़ पर अलाइन करता है, जो कि एक फिक्स्ड रिज़ॉल्यूशन पर **convert html to image** करते समय बहुत ज़रूरी है। + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Why this matters:* हिंटिंग ब्लरी अक्षरों को रोकता है, विशेषकर लो‑DPI स्क्रीन पर। `Bold` और `Italic` को मिलाकर दिखाया गया है कि आप कई स्टाइल्स को कैसे लेयर कर सकते हैं; आप अपनी डिज़ाइन के अनुसार केवल एक या कोई भी नहीं चुन सकते। + +### Step 4: Render the PNG File + +अंत में हम `ImageRenderer` को इंस्टैंशिएट करते हैं, उसे डॉक्यूमेंट की ओर इशारा करते हैं, आउटपुट पाथ देते हैं, और हमने जो विकल्प बनाए थे उन्हें पास करते हैं। `Render()` कॉल सारी भारी मेहनत कर देती है। + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Why this matters:* `ImageRenderer` पहले परिभाषित सभी सेटिंग्स—साइज़, एंटी‑एलियासिंग, टेक्स्ट हिंटिंग, फ़ॉन्ट स्टाइल—को सम्मान करता है। जब `Render()` समाप्त हो जाता है, आपके पास एक पूरी तरह से कम्प्लायंट PNG होता है जिसे ब्राउज़र में दिखाया जा सकता है, क्लाउड स्टोरेज में अपलोड किया जा सकता है, या रिपोर्ट में एम्बेड किया जा सकता है। + +> **Pro tip:** यदि आपको कोई अलग इमेज फॉर्मेट चाहिए (JPEG, BMP, GIF), तो बस आउटपुट पाथ में फ़ाइल एक्सटेंशन बदल दें। Aspose अपने आप सही एन्कोडर चुन लेता है। + +## Render HTML to PNG with Aspose.HTML – Full Example + +सभी हिस्सों को जोड़ने पर आपको एक सिंगल, सेल्फ‑कंटेन्ड प्रोग्राम मिलता है। नीचे दिया गया ब्लॉक एक नई कंसोल ऐप में कॉपी करें और चलाएँ; आपको `output.png` अपने सोर्स HTML के बगल में दिखाई देगा। + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Expected Result + +एक्ज़ीक्यूशन के बाद आपको नीचे दिखाए गए मॉक‑अप जैसा फ़ाइल दिखना चाहिए (असली लुक आपके HTML कंटेंट पर निर्भर करेगा)। + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +PNG लेआउट, रंग, और फ़ॉन्ट्स को बिल्कुल वैसे ही संरक्षित करेगा जैसे ब्राउज़र पेज को रेंडर करता है—Aspose के **render html document image** इंजन की बदौलत। + +## Common Questions & Edge Cases + +### What if My HTML References External Images? + +Aspose.HTML `input.html` के फ़ोल्डर को बेस बना कर रिलेटिव URL फॉलो करता है। यदि आपके इमेजेज़ कहीं और स्टोर हैं, तो या तो: + +1. एब्सोल्यूट URL इस्तेमाल करें (जैसे `https://example.com/logo.png`)। +2. `htmlDocument.BaseUrl` को उस फ़ोल्डर की ओर सेट करें जहाँ एसेट्स मौजूद हैं। + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### How Do I Adjust DPI for High‑Resolution Output? + +आप रेंडरिंग साइज़ को स्केल कर सकते हैं जबकि समान aspect ratio रख सकते हैं, या `renderingOptions.DPI` सेट कर सकते हैं (डिफ़ॉल्ट 96 है)। प्रिंट‑रेडी PNG के लिए 300 DPI आम है: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Can I Render Multiple Pages from a Single HTML Document? + +हां। यदि HTML में CSS पेज ब्रेक्स (`@media print { page-break-after: always; }`) हैं, तो Aspose `MultiPageImageRenderer` के साथ उपयोग करने पर प्रत्येक पेज के लिए अलग‑अलग PNG फ़ाइलें जेनरेट करेगा। यह एक एडवांस्ड सीनारियो है, लेकिन वही **convert html to image** सिद्धांत लागू होता है। + +### What About Memory Consumption? + +एक विशाल पेज (हजारों पिक्सेल चौड़ा) रेंडर करने से सैकड़ों मेगाबाइट मेमोरी खर्च हो सकती है। मेमोरी उपयोग कम रखने के लिए: + +- सबसे छोटे स्वीकार्य डाइमेंशन पर रेंडर करें। +- यदि क्वालिटी महत्वपूर्ण नहीं है तो `UseAntialiasing` बंद करें। +- `HTMLDocument` और `ImageRenderer` को तुरंत `using` स्टेटमेंट्स से डिस्पोज़ करें (जैसा कि दिखाया गया है)। + +## Render HTML Document Image – Next Steps + +अब जब आप **render html to png** की बुनियादें समझ चुके हैं, तो इन एक्सटेंशन पर विचार करें: + +- **बैच कन्वर्ज़न:** HTML फ़ाइलों के फ़ोल्डर को लूप करके एक साथ PNG जेनरेट करें। +- **वॉटरमार्किंग:** रेंडरिंग के बाद, `System.Drawing` या `ImageSharp` से PNG लोड करके लोगो ओवरले करें। +- **PDF जेनरेशन:** वही HTML सोर्स इस्तेमाल करके PDF बनाने के लिए `PdfRenderer` (Aspose.HTML का हिस्सा) का उपयोग करें। + +इनमें से प्रत्येक वही कोर कॉन्सेप्ट्स पर आधारित है जो आपने अभी सीखे हैं, इसलिए आप सहज महसूस करेंगे। + +## Conclusion + +हमने आपको समस्या विवरण—*HTML से PNG कैसे बनाएं*—से एक पूर्ण, रन‑एबल सॉल्यूशन तक पहुँचाया है जो **HTML को PNG में रेंडर** करता है, **HTML को इमेज में कनवर्ट** करता है, और **HTML को PNG के रूप में एक्सपोर्ट** करता है, साथ ही आकार, एंटी‑एलियासिंग, और टेक्स्ट हिंटिंग पर सूक्ष्म नियंत्रण देता है। + +अपने खुद के वेब पेज के साथ इसे आज़माएँ, डाइमेंशन बदलें, और विभिन्न फ़ॉन्ट स्टाइल्स के साथ प्रयोग करें। कोड छोटा है, API सहज है, और परिणाम बिल्कुल उसी तरह दिखते हैं जैसे ब्राउज़र में स्क्रीनशॉट लिया गया हो—पर तेज़ और पूरी तरह ऑटोमेटेबल। + +यदि आपको यह गाइड पसंद आया, तो हमारे अन्य ट्यूटोरियल देखें जो **render html document image** मैनिपुलेशन पर हैं, जैसे HTML को PDF में बदलना या SVG स्नैपशॉट बनाना। खुशहाल कोडिंग, और आपके PNG हमेशा पिक्सेल‑परफेक्ट रहें! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/hindi/net/html-extensions-and-conversions/_index.md index 45408d5a1..7b782850a 100644 --- a/html/hindi/net/html-extensions-and-conversions/_index.md +++ b/html/hindi/net/html-extensions-and-conversions/_index.md @@ -30,7 +30,7 @@ HTML एक्सटेंशन डेवलपर्स के लिए ए ## Aspose.HTML के साथ आरंभ करें -क्या आप शुरू करने के लिए तैयार हैं? .NET के लिए Aspose.HTML ट्यूटोरियल शुरुआती और अनुभवी डेवलपर्स दोनों के लिए हैं। चाहे आप HTML एक्सटेंशन और रूपांतरणों के लिए नए हों या उन्नत युक्तियों की तलाश कर रहे हों, हमारे चरण-दर-चरण मार्गदर्शिकाएँ आपकी आवश्यकताओं के अनुरूप डिज़ाइन की गई हैं। +क्या आप शुरू करने के लिए तैयार हैं? .NET के लिए Aspose.HTML ट्यूटोरियल शुरुआती और अनुभवी डेवलपर्स दोनों के लिए हैं। चाहे आप HTML एक्सटेंशन और रूपांतरणों के लिए नए हों या उन्नत युक्तियों की तलाश कर रहे हों, हमारे चरण-दर-स्टेप मार्गदर्शिकाएँ आपकी आवश्यकताओं के अनुरूप डिज़ाइन की गई हैं। ## .NET के लिए Aspose.HTML क्यों? @@ -56,34 +56,44 @@ C# में Aspose.HTML का उपयोग करके HTML को PDF म .NET के लिए Aspose.HTML का उपयोग करके .NET में HTML को BMP में कैसे बदलें, यह जानें। .NET के लिए Aspose.HTML का लाभ उठाने के लिए वेब डेवलपर्स के लिए व्यापक गाइड। ### [Aspose.HTML के साथ .NET में HTML को DOC और DOCX में बदलें](./convert-html-to-doc-docx/) -इस चरण-दर-चरण मार्गदर्शिका में .NET के लिए Aspose.HTML की शक्ति का उपयोग करना सीखें। HTML को DOCX में आसानी से बदलें और अपने .NET प्रोजेक्ट को बेहतर बनाएँ। आज ही शुरू करें! +इस चरण-दर-स्टेप मार्गदर्शिका में .NET के लिए Aspose.HTML की शक्ति का उपयोग करना सीखें। HTML को DOCX में आसानी से बदलें और अपने .NET प्रोजेक्ट को बेहतर बनाएँ। आज ही शुरू करें! ### [Aspose.HTML के साथ .NET में HTML को GIF में बदलें](./convert-html-to-gif/) -.NET के लिए Aspose.HTML की शक्ति का पता लगाएं: HTML को GIF में बदलने के लिए चरण-दर-चरण मार्गदर्शिका। पूर्वापेक्षाएँ, कोड उदाहरण, FAQ, और बहुत कुछ! Aspose.HTML के साथ अपने HTML हेरफेर को अनुकूलित करें। +.NET के लिए Aspose.HTML की शक्ति का पता लगाएं: HTML को GIF में बदलने के लिए चरण-दर-स्टेप मार्गदर्शिका। पूर्वापेक्षाएँ, कोड उदाहरण, FAQ, और बहुत कुछ! Aspose.HTML के साथ अपने HTML हेरफेर को अनुकूलित करें। ### [Aspose.HTML के साथ .NET में HTML को JPEG में बदलें](./convert-html-to-jpeg/) -.NET के लिए Aspose.HTML के साथ .NET में HTML को JPEG में बदलने का तरीका जानें। .NET के लिए Aspose.HTML की शक्ति का उपयोग करने के लिए चरण-दर-चरण मार्गदर्शिका। अपने वेब डेवलपमेंट कार्यों को आसानी से अनुकूलित करें। +.NET के लिए Aspose.HTML के साथ .NET में HTML को JPEG में बदलने का तरीका जानें। .NET के लिए Aspose.HTML की शक्ति का उपयोग करने के लिए चरण-दर-स्टेप मार्गदर्शिका। अपने वेब डेवलपमेंट कार्यों को आसानी से अनुकूलित करें। ### [Aspose.HTML के साथ .NET में HTML को Markdown में बदलें](./convert-html-to-markdown/) -कुशल सामग्री हेरफेर के लिए Aspose.HTML का उपयोग करके .NET में HTML को Markdown में परिवर्तित करना सीखें। सहज रूपांतरण प्रक्रिया के लिए चरण-दर-चरण मार्गदर्शन प्राप्त करें। +कुशल सामग्री हेरफेर के लिए Aspose.HTML का उपयोग करके .NET में HTML को Markdown में परिवर्तित करना सीखें। सहज रूपांतरण प्रक्रिया के लिए चरण-दर-स्टेप मार्गदर्शन प्राप्त करें। ### [Aspose.HTML के साथ .NET में HTML को MHTML में बदलें](./convert-html-to-mhtml/) -Aspose.HTML के साथ .NET में HTML को MHTML में बदलें - कुशल वेब सामग्री संग्रह के लिए चरण-दर-चरण मार्गदर्शिका। MHTML संग्रह बनाने के लिए .NET के लिए Aspose.HTML का उपयोग करना सीखें। +Aspose.HTML के साथ .NET में HTML को MHTML में बदलें - कुशल वेब सामग्री संग्रह के लिए चरण-दर-स्टेप मार्गदर्शिका। MHTML संग्रह बनाने के लिए .NET के लिए Aspose.HTML का उपयोग करना सीखें। ### [Aspose.HTML के साथ .NET में HTML को PNG में बदलें](./convert-html-to-png/) -जानें कि HTML दस्तावेज़ों में हेरफेर करने और उन्हें परिवर्तित करने के लिए .NET के लिए Aspose.HTML का उपयोग कैसे करें। प्रभावी .NET विकास के लिए चरण-दर-चरण मार्गदर्शिका। +जानें कि HTML दस्तावेज़ों में हेरफेर करने और उन्हें परिवर्तित करने के लिए .NET के लिए Aspose.HTML का उपयोग कैसे करें। प्रभावी .NET विकास के लिए चरण-दर-स्टेप मार्गदर्शिका। ### [Aspose.HTML के साथ .NET में HTML को TIFF में बदलें](./convert-html-to-tiff/) -.NET के लिए Aspose.HTML के साथ HTML को TIFF में कैसे बदलें, यह जानें। कुशल वेब सामग्री अनुकूलन के लिए हमारे चरण-दर-चरण मार्गदर्शिका का पालन करें। +.NET के लिए Aspose.HTML के साथ HTML को TIFF में कैसे बदलें, यह जानें। कुशल वेब सामग्री अनुकूलन के लिए हमारे चरण-दर-स्टेप मार्गदर्शिका का पालन करें। ### [Aspose.HTML के साथ .NET में HTML को XPS में बदलें](./convert-html-to-xps/) -.NET के लिए Aspose.HTML की शक्ति का पता लगाएं: HTML को XPS में आसानी से बदलें। पूर्वापेक्षाएँ, चरण-दर-चरण मार्गदर्शिका और FAQ शामिल हैं। +.NET के लिए Aspose.HTML की शक्ति का पता लगाएं: HTML को XPS में आसानी से बदलें। पूर्वापेक्षाएँ, चरण-दर-स्टेप मार्गदर्शिका और FAQ शामिल हैं। + ### [HTML को ZIP के रूप में सहेजें – पूर्ण C# ट्यूटोरियल](./save-html-as-zip-complete-c-tutorial/) -HTML को ZIP फ़ाइल में सहेजने के चरण-दर-चरण मार्गदर्शन, C# कोड उदाहरण और अनुकूलन विकल्प। +HTML को ZIP फ़ाइल में सहेजने के चरण-दर-स्टेप मार्गदर्शन, C# कोड उदाहरण और अनुकूलन विकल्प। + +### [HTML को ZIP के रूप में सहेजें – HTML को ZIP में बदलने के लिए पूर्ण C# गाइड](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +C# में Aspose.HTML का उपयोग करके HTML को ZIP फ़ाइल में सहेजने और बदलने की पूरी प्रक्रिया सीखें। ### [C# में HTML को ज़िप कैसे करें – HTML को ज़िप में सहेजें](./how-to-zip-html-in-c-save-html-to-zip/) .NET के लिए Aspose.HTML का उपयोग करके C# में HTML को ज़िप फ़ाइल में सहेजने का तरीका सीखें। +### [C# में HTML को ZIP में सहेजें – पूर्ण इन‑मेमोरी उदाहरण](./save-html-to-zip-in-c-complete-in-memory-example/) +C# में इन‑मेमोरी में HTML को ZIP फ़ाइल में सहेजने का पूरा उदाहरण देखें। + +### [DOCX से HTML को ज़िप करने की पूरी C# गाइड](./how-to-zip-html-from-docx-complete-c-guide/) +C# में Aspose.HTML का उपयोग करके DOCX से HTML को ZIP फ़ाइल में बदलने की पूरी प्रक्रिया सीखें। + ### [स्टाइल्ड टेक्स्ट के साथ HTML दस्तावेज़ बनाएं और PDF में निर्यात करें – पूर्ण गाइड](./create-html-document-with-styled-text-and-export-to-pdf-full/) Aspose.HTML for .NET का उपयोग करके स्टाइल्ड टेक्ट वाले HTML दस्तावेज़ को बनाएं और उसे PDF में निर्यात करने की पूरी गाइड। .NET के लिए Aspose.HTML की शक्ति का पता लगाएं: HTML को XPS में आसानी से बदलें। पूर्वापेक्षाएँ, चरण-दर-स्टेप मार्गदर्शिका और FAQ शामिल हैं। diff --git a/html/hindi/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/hindi/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..168f54b06 --- /dev/null +++ b/html/hindi/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: DOCX फ़ाइल से HTML आउटपुट को ज़िप करना, docx को HTML में बदलना, इमेज + का आकार सेट करना, वर्ड को PNG में निर्यात करना और बोल्ड फ़ॉन्ट सेट करने का तरीका + सीखें – चरण‑दर‑चरण कोड। +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: hi +og_description: DOCX फ़ाइल से HTML आउटपुट को ज़िप करना, docx को HTML में बदलना, इमेज + का आकार सेट करना, वर्ड को PNG में निर्यात करना और स्पष्ट C# उदाहरणों के साथ बोल्ड + फ़ॉन्ट सेट करना सीखें। +og_title: DOCX से HTML को ज़िप कैसे करें – पूर्ण C# गाइड +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: DOCX से HTML को ज़िप कैसे करें – पूर्ण C# गाइड +url: /hi/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# DOCX से HTML को ज़िप करने का तरीका – पूर्ण C# गाइड + +क्या आपने कभी सोचा है **how to zip html** जो आप Word दस्तावेज़ से बनाते हैं? शायद आपको एक ही आर्काइव चाहिए जिसे क्लाइंट को भेजा जा सके या क्लाउड में स्टोर किया जा सके, और आप फाइलों के बिखरे फ़ोल्डर नहीं चाहते। इस ट्यूटोरियल में हम .docx फ़ाइल को HTML में बदलने, परिणाम को ZIP फ़ाइल में बंडल करने, और फिर उसी दस्तावेज़ को कस्टम आकार और बोल्ड टेक्स्ट के साथ PNG इमेज में रेंडर करने की प्रक्रिया देखेंगे। साथ ही हम *convert docx to html*, *set image size*, *export word to png*, और *how to set bold font* को एक ही समेकित उदाहरण में कवर करेंगे। + +इस गाइड के अंत तक आपके पास एक तैयार‑चलाने‑योग्य C# प्रोग्राम होगा जो: + +* डिस्क से DOCX लोड करता है। +* आउटपुट को स्वचालित रूप से ज़िप करते हुए HTML के रूप में सहेजता है। +* सटीक चौड़ाई, ऊँचाई, एंटी‑एलियासिंग और बोल्ड फ़ॉन्ट स्टाइलिंग के साथ PNG रेंडर करता है। + +कोई बाहरी स्क्रिप्ट नहीं, कोई हाथ‑से‑लिखी ज़िप लॉजिक नहीं—केवल Aspose.Words for .NET API (या कोई समकक्ष लाइब्रेरी) जो भारी काम करती है। + +--- + +## Prerequisites — What You Need Before You Start + +| आवश्यकता | क्यों महत्वपूर्ण है | +|-------------|----------------| +| **.NET 6.0+** (या .NET Framework 4.7.2) | नीचे उपयोग किए गए C# 10 सिंटैक्स के लिए रनटाइम प्रदान करता है। | +| **Aspose.Words for .NET** (या कोई समान लाइब्रेरी जो `HtmlSaveOptions` और `ImageRenderer` को सपोर्ट करती हो) | DOCX → HTML रूपांतरण, आर्काइविंग, और इमेज रेंडरिंग को संभालता है। | +| **A DOCX file** named `input.docx` in a folder you control | वह स्रोत दस्तावेज़ जिसे हम बदलेंगे। | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | `doc.zip` और `out.png` बनाने के लिए आवश्यक अनुमति। | + +यदि आप NuGet का उपयोग कर रहे हैं, तो पैकेज को इस प्रकार इंस्टॉल करें: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** मुफ्त एवाल्यूएशन संस्करण रेंडर किए गए PNG में वॉटरमार्क जोड़ता है। उत्पादन उपयोग के लिए लाइसेंस प्राप्त करें। + +--- + +## Step 1: Load the Source Document + +पहला काम हम Word फ़ाइल को मेमोरी में पढ़ते हैं। यह **convert docx to html** और बाद में PNG रेंडर करने का आधार है। + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*यह क्यों महत्वपूर्ण है:* +`Document` मुख्य ऑब्जेक्ट है; यह .docx पैकेज को पार्स करता है, स्टाइल्स को हल करता है, और HTML एक्सपोर्ट तथा इमेज रेंडरिंग दोनों के लिए संसाधनों को तैयार करता है। यदि फ़ाइल नहीं मिलती, तो एक्सेप्शन फेंका जाता है—इसलिए पाथ सही रखें। + +--- + +## Step 2: Configure HTML Save Options – The Core of **How to Zip HTML** + +यहाँ हम Aspose.Words को HTML जनरेट करने, सभी संबंधित एसेट्स (इमेज, CSS) को कस्टम रिसोर्स हैंडलर के माध्यम से स्टोर करने, और अंत में सब कुछ एक ही आर्काइव में ज़िप करने के लिए बताते हैं। + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### What `MyResourceHandler` Does + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*हैंडलर की आवश्यकता क्यों है:* +जब **convert docx to html** किया जाता है, तो लाइब्रेरी कई सहायक फ़ाइलें (जैसे `image001.png`) उत्पन्न कर सकती है। हैंडलर प्रत्येक सेव ऑपरेशन को इंटरसेप्ट करता है, यह सुनिश्चित करता है कि सब कुछ ZIP के अंदर ही रहे न कि अलग फ़ोल्डर में। + +--- + +## Step 3: Save the Document as Zipped HTML + +अब जादू होता है। HTML फ़ाइलें और उनके रिसोर्स सीधे `doc.zip` में लिखे जाते हैं। + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**परिणाम:** +`YOUR_DIRECTORY/doc.zip` अब शामिल करता है: + +* `document.html` – मुख्य मार्कअप। +* `document_files/` – इमेज, CSS, और किसी भी एम्बेडेड मीडिया वाली सबफ़ोल्डर। + +आप संरचना की पुष्टि के लिए इसे अनज़िप कर सकते हैं, या सीधे वेब API से ZIP सर्व कर सकते हैं। + +--- + +## Step 4: Set Up Image Rendering Options – Controlling **Set Image Size** and **How to Set Bold Font** + +यदि आपको Word फ़ाइल का विज़ुअल स्नैपशॉट चाहिए, तो आप इसे PNG में रेंडर कर सकते हैं। नीचे का ब्लॉक दिखाता है कि सटीक डाइमेंशन कैसे निर्धारित करें, एंटी‑एलियासिंग सक्षम करें, और सभी टेक्स्ट के लिए बोल्ड स्टाइल फोर्स करें। + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*इन फ़्लैग्स का महत्व:* +- **Width/Height** आपको PNG को अपने UI लेआउट के अनुसार ट्यून करने की अनुमति देता है। +- **UseAntialiasing** किनारों को स्मूद करता है, जिससे जगरड लाइनें नहीं आतीं। +- **FontStyle = Bold** DOCX में मौजूद किसी भी इनलाइन स्टाइल को ओवरराइड करके PNG में सभी टेक्स्ट को बोल्ड बनाता है। + +--- + +## Step 5: Render the Document to PNG – The **Export Word to PNG** Step + +अंत में हम सब कुछ जोड़ते हैं और इमेज फ़ाइल बनाते हैं। + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**आपको क्या दिखेगा:** +एक स्पष्ट `out.png` जो 800 × 600 आकार से मेल खाता है, सभी टेक्स्ट बोल्ड, और कोई भी वेक्टर ग्राफ़िक्स एंटी‑एलियास्ड। + +--- + +## Full Working Example – Copy, Paste, Run + +नीचे पूरा प्रोग्राम दिया गया है, जिसे आप सीधे एक कंसोल ऐप में पेस्ट कर सकते हैं। + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Expected Output + +| फ़ाइल | स्थान | विवरण | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | ज़िप्ड HTML + रिसोर्सेज (`document.html`, `document_files/…`)। | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, सभी टेक्स्ट बोल्ड, एंटी‑एलियास्ड। | + +आप `doc.zip` को किसी भी आर्काइव टूल से खोल सकते हैं, `document.html` निकालें, और ब्राउज़र में देख सकते हैं। इमेज मूल Word फ़ाइल से बिल्कुल वैसी ही रेंडर होगी। + +--- + +## Common Questions & Edge Cases + +### What if I need a different image format? +`ImageRenderer` कंस्ट्रक्टर में फ़ाइल एक्सटेंशन बदलें (`out.jpg`, `out.tiff`) और `ImageSavingOptions` को उसी अनुसार समायोजित करें। API स्वचालित रूप से सही एन्कोडर चुन लेगा। + +### Can I control the compression level of the ZIP? +`HtmlSaveOptions` में `ZipCompressionLevel` प्रॉपर्टी उपलब्ध है (जैसे `CompressionLevel.BestCompression`)। `Save` कॉल करने से पहले इसे सेट करें। + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### My DOCX contains large high‑resolution pictures—will the PNG be huge? +हाँ, क्योंकि हम फिक्स्ड पिक्सेल साइज फोर्स करते हैं। फ़ाइल साइज कम रखने के लिए `Width`/`Height` घटाएँ या `ImageRenderingOptions` के भीतर `ImageResizeOptions` सक्षम करें। + +### How do I keep the original font weight instead of forcing bold? +सिर्फ `FontStyle = WebFontStyle.Bold` लाइन को हटा दें, या इसे यूज़र‑फ़्लैग के आधार पर कंडीशनली सेट करें। + +### Does this work on Linux/macOS? +बिल्कुल। Aspose.Words क्रॉस‑प्लेटफ़ॉर्म है; बस सुनिश्चित करें कि उपयुक्त .NET रनटाइम इंस्टॉल हो। + +--- + +## Troubleshooting Checklist + +| लक्षण | संभावित कारण | समाधान | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | गलत पाथ या फ़ाइल गायब | सुनिश्चित करें `YOUR_DIRECTORY/input.docx` मौजूद है; परीक्षण के लिए एब्सॉल्यूट पाथ उपयोग करें। | +| `OutOfMemoryException` during PNG render | बहुत बड़ा दस्तावेज़ या अत्यधिक इमेज डाइमेंशन | `Width`/`Height` घटाएँ या पेज‑वाइज़ रेंडर करें (`ImageRenderer.Render(pageIndex)`)। | +| ZIP contains empty `document_files` folder | `MyResourceHandler` ने अलग फ़ाइल नाम लौटाया या एक्सेप्शन फेंका | सुनिश्चित करें `ResourceSaving` सेव को कैंसल न करे (`args.Cancel = false`)। | +| Text not bold in PNG | ` | + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/hindi/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..c02184ae1 --- /dev/null +++ b/html/hindi/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTML के साथ HTML को जल्दी ZIP के रूप में सहेजें। कस्टम रिसोर्स + हैंडलर का उपयोग करके HTML को ZIP में कैसे बदलें और कुछ ही चरणों में HTML को ZIP + में रेंडर करना सीखें। +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: hi +og_description: Aspose.HTML के साथ HTML को ZIP के रूप में सहेजें। यह गाइड दिखाता है + कि कैसे HTML को ZIP में बदलें, एक कस्टम रिसोर्स हैंडलर का उपयोग करके HTML को ZIP + में कुशलतापूर्वक रेंडर किया जाए। +og_title: HTML को ZIP के रूप में सहेजें – चरण‑दर‑चरण C# ट्यूटोरियल +tags: +- Aspose.HTML +- C# +- HTML rendering +title: HTML को ZIP के रूप में सहेजें – HTML को ZIP में बदलने के लिए पूर्ण C# गाइड +url: /hi/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML को ZIP के रूप में सहेजें – HTML को ZIP में बदलने के लिए पूर्ण C# गाइड + +क्या आपको कभी **HTML को ZIP के रूप में सहेजने** की जरूरत पड़ी है लेकिन यह नहीं पता था कि कौन‑से API कॉल्स को एक साथ जोड़ना है? आप अकेले नहीं हैं। कई डेवलपर्स को यह समस्या आती है जब वे एक HTML पेज को उसके CSS, इमेजेज और फ़ॉन्ट्स के साथ एक ही आर्काइव में बंडल करना चाहते हैं—विशेषकर जब वे चाहते हैं कि सब कुछ मेमोरी में रहे जब तक वे तय न करें कि आगे क्या करना है। + +अच्छी खबर? Aspose.HTML के साथ आप **HTML को ZIP में बदल** सकते हैं कुछ ही लाइनों में, `HtmlSaveOptions` क्लास और एक **कस्टम रिसोर्स हैंडलर** की मदद से जो आपको प्रत्येक रिसोर्स को कहाँ रखना है, इस पर पूरी नियंत्रण देता है। इस ट्यूटोरियल में हम **HTML को ZIP में रेंडर** करने के सटीक कदमों को देखेंगे, सब कुछ मेमोरी में रखेंगे, और वैकल्पिक रूप से फाइलों को डिस्क पर लिखेंगे। अंत तक आपके पास एक पुन: उपयोग योग्य स्निपेट होगा जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +## इस ट्यूटोरियल में क्या कवर किया गया है + +* HTML स्रोत स्ट्रिंग को परिभाषित करने का तरीका (या फ़ाइल से लोड करना)। +* Aspose.HTML के साथ `HTMLDocument` को इंस्टैंशिएट करने का तरीका। +* एक **कस्टम रिसोर्स हैंडलर** बनाने का तरीका जो प्रत्येक रिसोर्स के लिए `MemoryStream` रिटर्न करता है। +* `HtmlSaveOptions` को कॉन्फ़िगर करके **ZIP आर्काइव** जेनरेट करने का तरीका जिसमें HTML और सभी डिपेंडेंट फाइल्स शामिल हों। +* दस्तावेज़ को सेव करने और, यदि चाहें, इन‑मे़मोरी डेटा को डिस्क पर फ़ोल्डर में लिखने का तरीका। + +कोई बाहरी टूल नहीं, कोई मैन्युअल ज़िपिंग नहीं—सिर्फ शुद्ध C# और Aspose.HTML। + +> **Pro tip:** यदि आप पहले से ही Aspose.PDF या Aspose.Words का उपयोग कर रहे हैं, तो वही `ResourceHandler` पैटर्न वहाँ भी काम करता है, इसलिए आप इस कोड को कई डॉक्यूमेंट टाइप्स में री‑यूज़ कर सकते हैं। + +--- + +## चरण 1: HTML को ZIP के रूप में सहेजें – HTML स्रोत परिभाषित करें + +सबसे पहले हमें एक स्ट्रिंग चाहिए जिसमें वह HTML हो जिसे हम आर्काइव करना चाहते हैं। वास्तविक प्रोजेक्ट में आप इसे फ़ाइल, डेटाबेस या API रिस्पॉन्स से पढ़ सकते हैं, लेकिन स्पष्टता के लिए हम यहाँ एक छोटा उदाहरण हार्ड‑कोड करेंगे। + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Why this matters:** `HTMLDocument` कंस्ट्रक्टर या तो फ़ाइल पाथ या रॉ HTML की अपेक्षा करता है। स्ट्रिंग को सीधे पास करने से पूरा प्रोसेस मेमोरी में रहता है, जो तब परफ़ेक्ट होता है जब आप बाद में ZIP को सीधे क्लाइंट को स्ट्रीम करना चाहते हैं। + +--- + +## चरण 2: HTML को ZIP में बदलें – HTMLDocument लोड करें + +अब हम HTML स्ट्रिंग को Aspose.HTML को देते हैं। दूसरा आर्ग्यूमेंट (`"."`) लाइब्रेरी को बताता है कि रिलेटिव URL कहाँ रिजॉल्व करें; अधिकांश सरल केसों में वर्तमान डायरेक्टरी काम करती है। + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **What’s happening:** `HTMLDocument` मार्कअप को पार्स करता है, एक DOM बनाता है, और सभी लिंक्ड रिसोर्सेज (CSS, इमेजेज, फ़ॉन्ट्स) को रेंडरिंग के लिए तैयार करता है। `using` ब्लॉक में रैप करने से नेटीव रिसोर्सेज का सही डिस्पोज़ सुनिश्चित होता है। + +--- + +## चरण 3: HTML को ZIP में रेंडर करें – कस्टम रिसोर्स हैंडलर बनाएं + +Aspose.HTML आपको यह तय करने देता है कि **कहाँ** प्रत्येक रिसोर्स लिखा जाए। `ResourceHandler` को सब‑क्लास करके हम रेंडरर को हर फ़ाइल के लिए एक नया `MemoryStream` वापस दे सकते हैं। + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Why a custom handler?** डिफ़ॉल्ट व्यवहार फाइल सिस्टम में फाइलें लिखता है। हैंडलर के साथ आप सब कुछ RAM में रख सकते हैं, ZIP को सीधे वेब रिस्पॉन्स में पुश कर सकते हैं, या यहाँ तक कि स्ट्रीम्स को ऑन‑द‑फ़्लाई एन्क्रिप्ट भी कर सकते हैं। + +--- + +## चरण 4: HTML को ZIP में बदलें – सेव ऑप्शन्स कॉन्फ़िगर करें + +यहाँ ऑपरेशन का दिल है। `HtmlSaveOptions` Aspose.HTML को बताता है कि सब कुछ एक ZIP आर्काइव (`SaveToArchive = true`) में बंडल करे और स्टोरेज के लिए हमारे `resourceHandler` का उपयोग करे। + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Key insight:** `ArchiveFileName` वह नाम है जो ZIP के अंदर दिखाई देगा, डिस्क पर पाथ नहीं। चूँकि हम मेमोरी‑बेस्ड हैंडलर इस्तेमाल कर रहे हैं, ZIP पूरी तरह RAM में रहता है जब तक हम इसे आगे प्रोसेस न करें। + +--- + +## चरण 5: HTML को ZIP के रूप में सहेजें – आर्काइव को पर्सिस्ट करें + +अंत में, हम दस्तावेज़ को उन ऑप्शन्स के साथ सेव करने को कहते हैं जो हमने अभी बनाए हैं। यह कॉल रेंडरिंग पाइपलाइन को ट्रिगर करता है, प्रत्येक रिसोर्स के लिए हमारे हैंडलर को कॉल करता है, और अंतिम ZIP को उन मेमोरी स्ट्रीम्स में लिखता है जो हमने प्रदान किए हैं। + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Result:** इस समय `resourceHandler` के पास मुख्य HTML फ़ाइल के लिए एक `MemoryStream` है, साथ ही किसी भी CSS, इमेज या फ़ॉन्ट के लिए अतिरिक्त स्ट्रीम्स हैं जो रेफ़रेंस किए गए थे। ZIP फ़ाइल पूरी तरह उन स्ट्रीम्स के भीतर असेंबल हो चुकी है। + +--- + +## चरण 6: कस्टम रिसोर्स हैंडलर – प्रत्येक रिसोर्स के लिए एक स्ट्रीम प्रदान करें + +नीचे `MyResourceHandler` की इम्प्लीमेंटेशन है। `HandleResource` मेथड प्रत्येक रिसोर्स (HTML, CSS, इमेजेज, फ़ॉन्ट्स, …) के लिए एक बार कॉल होता है। हम बस हर बार एक नया `MemoryStream` वापस देते हैं। + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Why a fresh stream?** प्रत्येक रिसोर्स को अपना कंटेनर चाहिए; एक ही स्ट्रीम को री‑यूज़ करने से आर्काइव करप्ट हो जाएगा। `MemoryStream` सस्ता है और जरूरत पड़ने पर ऑटोमैटिकली ग्रो करता है। + +--- + +## चरण 7: वैकल्पिक – सेव किए गए रिसोर्सेज को डिस्क पर लिखें + +यदि आप जेनरेटेड फाइल्स को देखना चाहते हैं या सर्वर पर एक कॉपी रखना चाहते हैं, तो `ResourceSaved` स्ट्रीम बंद होने के बाद कॉल होता है। यहाँ हम इन‑मे़मोरी कंटेंट को उस फ़ोल्डर में लिखते हैं जिसे आप निर्दिष्ट करते हैं (`YOUR_DIRECTORY/Output`)। + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Edge case note:** यदि आप ऐसे वातावरण में चल रहे हैं जहाँ लिखने की अनुमति नहीं है (जैसे Azure Functions), तो बस `ResourceSaved` इम्प्लीमेंटेशन को स्किप कर दें या उसे क्लाउड‑स्टोरेज अपलोड से बदल दें। + +--- + +## पूर्ण, रन करने योग्य उदाहरण (38 लाइन) + +नीचे पूरा कोड दिया गया है जिसे आप सीधे एक कंसोल ऐप में पेस्ट कर सकते हैं। यह 15‑40 लाइन सीमा का सम्मान करता है, वर्णनात्मक वैरिएबल नामों का उपयोग करता है, और प्लेसहोल्डर्स शामिल करता है जिन्हें आप अपनी जरूरत के अनुसार एडजस्ट कर सकते हैं। + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### अपेक्षित आउटपुट + +* एक `result.zip` फ़ाइल इन‑मे़मोरी आर्काइव के अंदर बनती है (यदि आप `resourceHandler` में एक प्रॉपर्टी जोड़ें तो आप स्ट्रीम को एक्सपोज़ कर सकते हैं)। +* यदि आपने `ResourceSaved` इम्प्लीमेंटेशन रखा है, तो वही फाइल्स `YOUR_DIRECTORY/Output` पर भी लिखी जाती हैं, जो ZIP की इंटरनल स्ट्रक्चर को मिरर करती हैं। + +--- + +## अक्सर पूछे जाने वाले प्रश्न (FAQ) + +**Q: क्या यह बड़े HTML पेजों के साथ काम करता है?** +A: बिल्कुल। `MemoryStream` ज़रूरत के अनुसार एक्सपैंड होता है, लेकिन मल्टी‑मेगाबाइट पेजों के लिए आप सीधे `FileStream` में स्ट्रीम करने पर विचार कर सकते हैं ताकि मेमोरी प्रेशर कम रहे। बस `HandleResource` को बदलकर `File.Create(Path.Combine("temp", info.FileName))` रिटर्न करें। + +**Q: क्या मैं ZIP को एन्क्रिप्ट कर सकता हूँ?** +A: Aspose.HTML में बिल्ट‑इन एन्क्रिप्शन नहीं है, लेकिन `MemoryStream` प्राप्त करने के बाद आप इसे `System.IO.Compression.ZipArchive` के साथ पासवर्ड के साथ या SharpZipLib जैसे थर्ड‑पार्टी लाइब्रेरी से एन्क्रिप्ट कर सकते हैं। + +**Q: HTML के अंदर रिलेटिव URL कैसे हैंडल हों?** +A: `HTMLDocument` का दूसरा आर्ग्यूमेंट (`"."`) Aspose.HTML को बताता है कि रिलेटिव पाथ्स को वर्तमान डायरेक्टरी के आधार पर रिजॉल्व करे। यदि आपके रिसोर्सेज कहीं और हैं, तो उपयुक्त बेस पाथ या कस्टम `UriResolver` पास करें। + +--- + +## निष्कर्ष + +हमने दिखाया कि कैसे **HTML को ZIP के रूप में सहेजें** Aspose.HTML, एक **कस्टम रिसोर्स हैंडलर**, और कुछ सरल कॉन्फ़िगरेशन स्टेप्स की मदद से। यह तरीका आपको **HTML को ZIP में बदलने** की पूरी प्रक्रिया मेमोरी में करने देता है, जिससे आप परिणाम को वेब क्लाइंट को स्ट्रीम कर सकते हैं, डेटाबेस में स्टोर कर सकते हैं, या बाद में डिस्क पर लिख सकते हैं। + +इसे आज़माएँ: `MemoryStream` को क्लाउड स्टोरेज स्ट्रीम से बदलें, पासवर्ड प्रोटेक्शन जोड़ें, या डज़न्स पेजेज को पैरलल प्रोसेस करें। मूल पैटर्न—लोड, हैंडल, कॉन्फ़िगर, सेव—एक ही रहता है, जिससे यह किसी भी .NET सॉल्यूशन के लिए एक पुन: उपयोग योग्य बिल्डिंग ब्लॉक बन जाता है जो **HTML को ZIP में रेंडर** या **HTML से ZIP बनाना** चाहता है। + +कस्टम रिसोर्स हैंडलिंग या Aspose.HTML की अन्य सुविधाओं के बारे में और सवाल हैं? नीचे कमेंट करें, और कोडिंग का आनंद लें! + +![HTML स्रोत से इन‑मे़मोरी ZIP आर्काइव तक के फ्लो को दिखाता डायग्राम](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/hongkong/net/generate-jpg-and-png-images/_index.md index 33103bd04..a8052e97a 100644 --- a/html/hongkong/net/generate-jpg-and-png-images/_index.md +++ b/html/hongkong/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Aspose.HTML for .NET 提供了一種將 HTML 轉換為映像的簡單方法。 了解如何在使用 Aspose.HTML for .NET 將 DOCX 轉換為 PNG 或 JPG 時啟用抗鋸齒,以提升圖像品質。 ### [使用 Aspose.HTML 在 .NET 中將 docx 轉換為 png 並建立 zip 壓縮檔 C# 教學](./convert-docx-to-png-create-zip-archive-c-tutorial/) 學習如何使用 Aspose.HTML for .NET 將 docx 轉換為 png,並將圖像打包成 zip 壓縮檔的完整步驟。 +### [使用 C# 從 HTML 產生 PNG – 步驟指南](./create-png-from-html-in-c-step-by-step-guide/) +本教學示範如何使用 Aspose.HTML for .NET 於 C# 中將 HTML 轉換為 PNG 圖像,步驟詳盡,適合新手。 ## 結論 diff --git a/html/hongkong/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/hongkong/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..5de55cc1d --- /dev/null +++ b/html/hongkong/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-26 +description: 使用 Aspose.HTML 從 HTML 建立 PNG。了解如何將 HTML 渲染為 PNG、將 HTML 轉換為圖像、將 HTML 匯出為 + PNG,並快速渲染 HTML 文件圖像。 +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: zh-hant +og_description: 使用 Aspose.HTML 在 C# 中將 HTML 轉換為 PNG。本指南將向您展示如何將 HTML 渲染為 PNG、將 HTML + 轉換為圖像,以及將 HTML 匯出為 PNG。 +og_title: 在 C# 中從 HTML 產生 PNG – 完整程式設計指南 +tags: +- Aspose.HTML +- C# +- Image Rendering +title: 在 C# 中將 HTML 轉換為 PNG – 逐步指南 +url: /zh-hant/net/generate-jpg-and-png-images/create-png-from-html-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 建立 PNG – 完整程式指南 + +有沒有曾經需要 **create PNG from HTML**,卻不確定哪個函式庫能提供清晰的輸出且不會讓人頭疼?你並不孤單。許多開發者在嘗試將網頁轉換成位圖時會卡關,尤其是需要抗鋸齒或自訂字型提示時。 + +在本教學中,我們將以 **Aspose.HTML for .NET** 為例,手把手示範解決方案。完成後,你將了解如何 **render HTML to PNG**、**convert HTML to image**、**export HTML as PNG**,甚至微調渲染流程以獲得完美結果。內容精簡——僅提供可運作的程式碼範例、每行程式碼的意義說明,以及一些你會希望早點知道的專業小技巧。 + +## 需要的環境 + +- .NET 6+(或 .NET Framework 4.6+)。 +- `Aspose.HTML` NuGet 套件(版本 23.9 或更新)。 +- 想要轉成圖片的簡易 `input.html` 檔案。 +- 如 Visual Studio 2022 等 IDE(任何能編譯 C# 的編輯器皆可)。 + +就這樣。沒有額外的二進位檔、沒有外部服務,也不需要神祕的設定檔。準備好了嗎?讓我們開始吧。 + +## 從 HTML 建立 PNG – 核心步驟 + +以下我們將整個流程分為四個邏輯區塊。每個區塊對應一段具體的程式碼,並附有簡短的「為什麼」說明。依序操作、複製程式碼,即可在數秒內於 `YOUR_DIRECTORY/output.png` 產生 PNG 圖檔。 + +### 步驟 1:載入 HTML 文件 + +我們首先要做的事,就是提供 Aspose.HTML 一個可供操作的文件物件。可以把它想像成把已包含所有標記、CSS 與 HTML 檔案所引用圖像的全新畫布交給渲染器。 + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Why this matters:* `HTMLDocument` 會解析檔案、解析相對 URL,並建立 DOM 樹。若找不到檔案,會在此拋出例外——因此可在任何渲染工作開始前即時捕捉問題。 + +### 步驟 2:設定影像渲染選項 + +接著我們告訴 Aspose 最終圖片的尺寸以及是否啟用抗鋸齒。這些選項會直接影響 **render html to png** 操作的視覺忠實度。 + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Why this matters:* 較大的尺寸能提供更多細節,但會增加記憶體使用量。`UseAntialiasing` 是打造專業外觀 **export html as png** 的關鍵——若未啟用,文字與向量圖形周圍會出現階梯狀鋸齒。 + +### 步驟 3:微調文字渲染(Hinting 與字型樣式) + +如果你的 HTML 使用自訂字型或需要粗體/斜體樣式,應啟用 hinting 並設定相應的 `WebFontStyle`。Hinting 會將字形對齊至像素邊界,這在以固定解析度 **convert html to image** 時至關重要。 + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Why this matters:* Hinting 可防止字母模糊,特別是在低 DPI 螢幕上。結合 `Bold` 與 `Italic` 示範了如何同時套用多種樣式;當然,你也可以只選擇其中之一或不使用,視設計需求而定。 + +### 步驟 4:渲染 PNG 檔案 + +最後,我們建立 `ImageRenderer` 實例,指向文件、設定輸出路徑,並傳入先前建立的選項。`Render()` 呼叫會完成所有繁重的工作。 + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Why this matters:* `ImageRenderer` 會遵守先前所有設定——尺寸、抗鋸齒、文字 hinting、字型樣式。`Render()` 完成後,你將得到符合規範的 PNG,可在瀏覽器顯示、上傳至雲端儲存,或嵌入報告中。 + +> **Pro tip:** 若需要其他影像格式(JPEG、BMP、GIF),只要在輸出路徑更改副檔名即可。Aspose 會自動選擇正確的編碼器。 + +## 使用 Aspose.HTML 渲染 HTML 為 PNG – 完整範例 + +將所有片段組合起來,即可得到一個單一、獨立的程式。將下方程式碼複製到新的 Console 應用程式中並執行,你會看到 `output.png` 產生於原始 HTML 同目錄下。 + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### 預期結果 + +執行後,你應該會看到類似下方示意圖的檔案(實際外觀取決於你的 HTML 內容)。 + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +此 PNG 會完整保留版面配置、顏色與字型,與瀏覽器顯示的頁面相同——多虧了 Aspose 內部的 **render html document image** 引擎。 + +## 常見問題與邊緣情況 + +### 如果我的 HTML 參考了外部圖片呢? + +Aspose.HTML 會根據 `input.html` 所在資料夾解析相對 URL。若你的圖片儲存在其他位置,可採取以下任一方式: + +1. 使用絕對 URL(例如 `https://example.com/logo.png`)。 +2. 設定 `htmlDocument.BaseUrl` 指向包含資產的資料夾。 + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### 如何調整 DPI 以取得高解析度輸出? + +你可以在保持相同長寬比的前提下放大渲染尺寸,或直接設定 `renderingOptions.DPI`(預設 96)。列印品質的 PNG 通常使用 300 DPI: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### 能否從單一 HTML 文件渲染多頁? + +可以。若 HTML 包含 CSS 分頁斷行(`@media print { page-break-after: always; }`),使用 `MultiPageImageRenderer` 時,Aspose 會為每一頁產生獨立的 PNG 檔案。這屬於進階情境,但仍遵循相同的 **convert html to image** 原則。 + +### 記憶體使用量如何? + +渲染極大頁面(寬度數千像素)可能會佔用數百 MB 記憶體。為降低記憶體使用,可採取以下措施: + +- 以最小可接受的尺寸渲染。 +- 若品質非關鍵,可關閉 `UseAntialiasing`。 +- 如範例所示,使用 `using` 陳述式即時釋放 `HTMLDocument` 與 `ImageRenderer`。 + +## 渲染 HTML 文件影像 – 後續步驟 + +既然你已掌握 **render html to png** 的基礎,接下來可考慮以下延伸應用: + +- **批次轉換:** 迴圈處理資料夾中的 HTML 檔案,一次產生多個 PNG。 +- **加水印:** 渲染完成後,使用 `System.Drawing` 或 `ImageSharp` 載入 PNG,並覆蓋商標。 +- **PDF 產生:** 使用 `PdfRenderer`(同屬 Aspose.HTML)從相同的 HTML 來源建立 PDF。 + +以上每項皆建立於你剛學到的核心概念之上,讓你如魚得水。 + +## 結論 + +我們已從問題敘述——*how to create PNG from HTML*——帶領你走向完整、可執行的解決方案,能 **renders HTML to PNG**、**converts HTML to image**,以及 **exports HTML as PNG**,並可細緻控制尺寸、抗鋸齒與文字 hinting。 + +試著使用自己的網頁來操作,調整尺寸,並嘗試不同的字型樣式。程式碼簡潔、API 直觀,最終結果與瀏覽器截圖完全相同——但更快速且全自動化。 + +如果你喜歡本指南,歡迎參考我們其他關於 **render html document image** 操作的教學,例如將 HTML 轉成 PDF 或產生 SVG 快照。祝編程愉快,願你的 PNG 永遠像素完美! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/hongkong/net/html-extensions-and-conversions/_index.md index 3d146ada2..3a8f34960 100644 --- a/html/hongkong/net/html-extensions-and-conversions/_index.md +++ b/html/hongkong/net/html-extensions-and-conversions/_index.md @@ -71,8 +71,12 @@ Aspose.HTML for .NET 不只是一個函式庫;它還是一個函式庫。它 使用 Aspose.HTML for .NET 建立帶樣式文字的 HTML 文件,並將其匯出為 PDF 的完整步驟指南。 ### [使用 Aspose.HTML 將 HTML 儲存為 ZIP – 完整 C# 教學](./save-html-as-zip-complete-c-tutorial/) 使用 Aspose.HTML for .NET 將 HTML 文件壓縮為 ZIP 檔案,提供完整的 C# 範例與步驟說明。 +### [將 HTML 儲存為 ZIP – 完整 C# 教學:將 HTML 轉換為 ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +提供完整的 C# 範例,說明如何使用 Aspose.HTML 將 HTML 轉換並壓縮為 ZIP 檔案。 ### [在 C# 中將 HTML 儲存為 ZIP – 完整的記憶體內示例](./save-html-to-zip-in-c-complete-in-memory-example/) 示範如何在 C# 中使用 Aspose.HTML 將 HTML 內容直接壓縮成 ZIP 檔案,全部在記憶體中完成。 +### [如何從 DOCX 壓縮 HTML – 完整 C# 教學](./how-to-zip-html-from-docx-complete-c-guide/) +說明如何使用 Aspose.HTML for .NET 從 DOCX 取得 HTML 並壓縮為 ZIP,提供完整 C# 範例。 ## 結論 diff --git a/html/hongkong/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/hongkong/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..b5111211e --- /dev/null +++ b/html/hongkong/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-04-26 +description: 學習如何將 DOCX 檔案的 HTML 輸出壓縮成 zip、將 docx 轉換為 HTML、設定圖片尺寸、將 Word 匯出為 PNG,以及如何設定粗體字型——一步一步的程式碼示範。 +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: zh-hant +og_description: 精通如何將 DOCX 檔案的 HTML 輸出壓縮為 zip、將 docx 轉換為 HTML、設定圖片大小、將 Word 匯出為 PNG,以及如何使用清晰的 + C# 範例設定粗體字體。 +og_title: 如何從 DOCX 壓縮 HTML – 完整 C# 指南 +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: 如何從 DOCX 壓縮 HTML – 完整 C# 指南 +url: /zh-hant/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何將 HTML 從 DOCX 壓縮為 ZIP – 完整 C# 指南 + +有沒有想過 **how to zip html** 是如何從 Word 文件產生的?也許你需要一個單一的壓縮檔案來交付給客戶或儲存在雲端,且不想要一個充滿散落檔案的資料夾。 在本教學中,我們將逐步說明如何將 .docx 檔案轉換為 HTML,將結果打包成 ZIP 檔,然後將同一份文件渲染為具有自訂尺寸與粗體文字的 PNG 圖片。 同時,我們也會涵蓋 *convert docx to html*、*set image size*、*export word to png* 以及 *how to set bold font*——全部整合於同一個範例中。 + +閱讀完本指南後,你將擁有一個可直接執行的 C# 程式,具備以下功能: + +* 從磁碟載入 DOCX。 +* 將其儲存為 HTML,並自動壓縮成 ZIP。 +* 以精確的寬度、高度、抗鋸齒以及粗體字型樣式渲染 PNG。 + +不需要外部腳本,也不需要自行編寫 zip 邏輯——全部交由 Aspose.Words for .NET API(或任何等效函式庫)處理。 + +## 前置條件 — 開始前需要的項目 + +| 需求 | 重要原因 | +|-------------|----------------| +| **.NET 6.0+** (或 .NET Framework 4.7.2) | 為以下使用的 C# 10 語法提供執行環境。 | +| **Aspose.Words for .NET**(或支援 `HtmlSaveOptions` 與 `ImageRenderer` 的類似函式庫) | 處理 DOCX → HTML 轉換、壓縮以及圖像渲染。 | +| **A DOCX file** 名為 `input.docx`,放於你可控制的資料夾中 | 我們將要轉換的來源文件。 | +| **Write permission**(寫入權限)至輸出目錄 (`YOUR_DIRECTORY`) | 需要用來建立 `doc.zip` 與 `out.png`。 | + +如果你使用 NuGet,請使用以下方式安裝套件: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** 免費評估版會在渲染的 PNG 上加上浮水印。取得授權以供正式使用。 + +## 步驟 1:載入來源文件 + +我們首先要將 Word 檔案讀入記憶體。這是 **convert docx to html** 以及稍後渲染 PNG 的基礎。 + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*為什麼這很重要:* +`Document` 是核心物件;它會解析 .docx 封裝、解析樣式,並為 HTML 匯出與圖像渲染準備資源。如果找不到檔案,會拋出例外——請確保路徑正確。 + +## 步驟 2:設定 HTML 儲存選項 – **How to Zip HTML** 的核心 + +在此我們告訴 Aspose.Words 產生 HTML,透過自訂資源處理程式儲存所有相關資產(圖片、CSS),最後將所有內容壓縮成單一檔案。 + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### `MyResourceHandler` 的功能 + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*為什麼需要處理程式:* +在執行 **convert docx to html** 時,函式庫可能會產生許多附屬檔案(例如 `image001.png`)。處理程式會攔截每一次的儲存操作,確保所有檔案都放入 ZIP 中,而不是散落於資料夾。 + +## 步驟 3:將文件儲存為壓縮的 HTML + +現在魔法發生了。HTML 檔案及其資源會直接寫入 `doc.zip`。 + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**結果:** +`YOUR_DIRECTORY/doc.zip` 現在包含以下內容: + +* `document.html` – 主要的標記。 +* `document_files/` – 包含圖片、CSS 以及任何嵌入媒體的子資料夾。 + +你可以解壓縮以驗證結構,或直接從 Web API 提供此 ZIP。 + +## 步驟 4:設定圖像渲染選項 – 控制 **Set Image Size** 與 **How to Set Bold Font** + +如果你需要 Word 文件的視覺快照,可以將其渲染為 PNG。以下程式碼示範如何定義精確尺寸、啟用抗鋸齒,並為所有文字強制粗體樣式。 + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*為什麼這些旗標很重要:* +- **Width/Height** 讓你依 UI 版面調整 PNG 大小。 +- **UseAntialiasing** 平滑邊緣,避免鋸齒狀線條。 +- **FontStyle = Bold** 會覆寫 DOCX 中的任何內嵌樣式,確保 PNG 無論原始格式如何,都以粗體呈現。 + +## 步驟 5:將文件渲染為 PNG – **Export Word to PNG** 步驟 + +最後,我們將所有步驟結合,產生圖像檔案。 + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**你會看到的結果:** +一個清晰的 `out.png`,尺寸為 800 × 600,所有文字皆以粗體渲染,且向量圖形已啟用抗鋸齒。 + +## 完整範例 – 複製、貼上、執行 + +以下是完整程式碼,直接貼入 Console 應用程式即可執行。 + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### 預期輸出 + +| 檔案 | 位置 | 說明 | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | 壓縮的 HTML 及其資源(`document.html`、`document_files/…`)。 | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG,所有文字粗體,已抗鋸齒。 | + +你可以使用任何壓縮檔工具開啟 `doc.zip`,解壓 `document.html`,並在瀏覽器中檢視。圖像將與原始 Word 文件渲染的結果完全相同。 + +## 常見問題與邊緣案例 + +### 如果需要不同的圖像格式該怎麼辦? + +只要在 `ImageRenderer` 建構子中更換檔案副檔名(`out.jpg`、`out.tiff`),並相應調整 `ImageSavingOptions`。API 會自動選擇正確的編碼器。 + +### 能否控制 ZIP 的壓縮等級? + +`HtmlSaveOptions` 提供 `ZipCompressionLevel` 屬性(例如 `CompressionLevel.BestCompression`),在呼叫 `Save` 前設定即可。 + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### 我的 DOCX 含有大型高解析度圖片——PNG 會不會很大? + +會的,因為我們強制固定像素尺寸。若要減少檔案大小,可降低 `Width`/`Height`,或在 `ImageRenderingOptions` 中啟用 `ImageResizeOptions`。 + +### 如何保留原始字體粗細而非強制粗體? + +只要移除 `FontStyle = WebFontStyle.Bold` 那一行,或根據使用者提供的旗標條件性設定即可。 + +### 這在 Linux/macOS 上可用嗎? + +當然可以。Aspose.Words 支援跨平台,只要安裝相應的 .NET 執行環境即可。 + +## 疑難排解清單 + +| 症狀 | 可能原因 | 解決方式 | +|---------|--------------|-----| +| `FileNotFoundException` 發生於 `input.docx` | 路徑錯誤或檔案遺失 | 確認 `YOUR_DIRECTORY/input.docx` 存在;測試時使用絕對路徑。 | +| `OutOfMemoryException` 發生於 PNG 渲染期間 | 文件過大或圖像尺寸過高 | 降低 `Width`/`Height`,或逐頁渲染(`ImageRenderer.Render(pageIndex)`)。 | +| ZIP 包含空的 `document_files` 資料夾 | `MyResourceHandler` 回傳了不同的檔名或拋出例外 | 確保 `ResourceSaving` 不會取消儲存(`args.Cancel = false`)。 | +| PNG 中文字未顯示為粗體 | ` | + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/hongkong/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..a372f73d6 --- /dev/null +++ b/html/hongkong/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: 儲存 HTML 為 ZIP 快速使用 Aspose.HTML。了解如何使用自訂資源處理程式將 HTML 轉換為 ZIP,並僅需幾個步驟即可將 + HTML 渲染為 ZIP。 +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: zh-hant +og_description: 使用 Aspose.HTML 將 HTML 儲存為 ZIP。本指南示範如何將 HTML 轉換為 ZIP,並透過自訂資源處理程式高效地將 + HTML 渲染為 ZIP。 +og_title: 將 HTML 儲存為 ZIP – 步驟式 C# 教學 +tags: +- Aspose.HTML +- C# +- HTML rendering +title: 將 HTML 儲存為 ZIP – 完整 C# 指南:將 HTML 轉換為 ZIP +url: /zh-hant/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 將 HTML 儲存為 ZIP – 完整的 C# 教學:將 HTML 轉換為 ZIP + +是否曾需要 **將 HTML 儲存為 ZIP**,卻不確定要串接哪些 API 呼叫?你並不孤單。許多開發者在想要將 HTML 頁面與其 CSS、圖片與字型打包成單一壓縮檔時會卡住——尤其是當他們希望整個過程保持在記憶體中,直到決定如何處理為止。 + +好消息是?使用 Aspose.HTML,你只需幾行程式碼即可 **將 HTML 轉換為 ZIP**,這要歸功於 `HtmlSaveOptions` 類別以及提供完整資源寫入位置控制的 **自訂資源處理程式**。在本教學中,我們將逐步說明如何 **將 HTML 渲染為 ZIP**、將所有內容儲存在記憶體中,並可選擇寫入磁碟。完成後,你將擁有一段可在任何 .NET 專案中直接使用的可重用程式碼片段。 + +## 本教學涵蓋內容 + +* 如何定義 HTML 原始字串(或從檔案載入)。 +* 如何使用 Aspose.HTML 建立 `HTMLDocument` 實例。 +* 如何建立 **自訂資源處理程式**,為每個資源回傳 `MemoryStream`。 +* 如何設定 `HtmlSaveOptions` 以產生包含 HTML 及所有相依檔案的 **ZIP 壓縮檔**。 +* 如何儲存文件,並在需要時將記憶體中的資料寫入磁碟資料夾。 + +不需要外部工具,也不需要手動壓縮——只需純粹的 C# 與 Aspose.HTML。 + +> **專業提示:** 若你已在使用 Aspose.PDF 或 Aspose.Words,相同的 `ResourceHandler` 模式同樣適用,讓你能在多種文件類型間重用此程式碼。 + +--- + +## 步驟 1:將 HTML 儲存為 ZIP – 定義 HTML 來源 + +首先,我們需要一個字串來保存要封存的 HTML。在實際專案中,你可能會從檔案、資料庫或 API 回應中讀取,但為了說明清楚,我們將硬編碼一個簡單範例。 + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **為什麼重要:** `HTMLDocument` 建構子接受檔案路徑或原始 HTML。直接提供字串可讓整個流程保持在記憶體中,這在之後想要直接將 ZIP 串流傳送給客戶端時非常理想。 + +## 步驟 2:將 HTML 轉換為 ZIP – 載入 HTMLDocument + +現在我們將 HTML 字串交給 Aspose.HTML。第二個參數 (`"."`) 告訴函式庫相對 URL 的解析位置;使用目前目錄對大多數簡單情況都適用。 + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **發生了什麼:** `HTMLDocument` 會解析標記、建立 DOM,並為渲染準備所有連結的資源(CSS、圖片、字型)。將其放在 `using` 區塊中可確保原生資源得到正確釋放。 + +## 步驟 3:將 HTML 渲染為 ZIP – 建立自訂資源處理程式 + +Aspose.HTML 讓你自行決定每個資源的寫入 **位置**。透過繼承 `ResourceHandler`,我們可以為渲染器需要儲存的每個檔案回傳全新的 `MemoryStream`。 + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **為什麼需要自訂處理程式?** 預設行為是將檔案寫入檔案系統。使用自訂處理程式,你可以將所有內容保留在記憶體中、直接將 ZIP 推送至 Web 回應,甚至即時加密串流。 + +## 步驟 4:將 HTML 轉換為 ZIP – 設定儲存選項 + +以下是此操作的核心。`HtmlSaveOptions` 告訴 Aspose.HTML 將所有內容打包成 ZIP 壓縮檔(`SaveToArchive = true`),並使用我們的 `resourceHandler` 進行儲存。 + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **關鍵觀念:** `ArchiveFileName` 是顯示在 ZIP 內部的檔名,而非磁碟路徑。由於我們使用記憶體為基礎的處理程式,ZIP 完全存在於 RAM 中,直至我們決定如何處理。 + +## 步驟 5:將 HTML 儲存為 ZIP – 持久化壓縮檔 + +最後,我們使用剛剛建立的選項請求文件自行儲存。此呼叫會觸發渲染管線,為每個資源呼叫我們的處理程式,並將最終的 ZIP 寫入我們提供的記憶體串流。 + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **結果:** 此時 `resourceHandler` 包含主 HTML 檔案的 `MemoryStream`,以及所有被引用的 CSS、圖片或字型的額外串流。ZIP 檔案已完整組裝在這些串流中。 + +## 步驟 6:自訂資源處理程式 – 為每個資源提供串流 + +以下是 `MyResourceHandler` 的實作。`HandleResource` 方法會對每個資源(HTML、CSS、圖片、字型,…)呼叫一次。我們每次都回傳一個新的 `MemoryStream`。 + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **為什麼要使用全新串流?** 每個資源都需要自己的容器;重複使用同一串流會損壞壓縮檔。`MemoryStream` 成本低且會依需求自動擴展。 + +## 步驟 7:可選 – 將已儲存的資源寫入磁碟 + +如果你想檢視產生的檔案或在伺服器上保留副本,`ResourceSaved` 會在串流關閉後被呼叫。此處我們將記憶體內容寫入你指定的資料夾(`YOUR_DIRECTORY/Output`)。 + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **邊緣情況說明:** 若你在沒有寫入權限的環境(例如 Azure Functions)執行,只需省略 `ResourceSaved` 的實作,或改為上傳至雲端儲存。 + +## 完整、可執行範例(38 行) + +以下是完整程式碼,可直接貼入 Console 應用程式。它符合 15‑40 行的限制,使用具描述性的變數名稱,並包含可自行調整的佔位符。 + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### 預期輸出 + +* `result.zip` 檔案會出現在記憶體壓縮檔內(若在 `resourceHandler` 加入屬性以公開串流,你可以從中取得)。 +* 若保留 `ResourceSaved` 實作,相同的檔案也會寫入磁碟的 `YOUR_DIRECTORY/Output`,結構與 ZIP 內部相同。 + +## 常見問題 (FAQ) + +**Q: 這在大型 HTML 頁面上可行嗎?** +A: 絕對可以。`MemoryStream` 會依需求擴展,但對於多兆位元組的頁面,你可能想直接串流至 `FileStream` 以避免過高的記憶體壓力。只需將 `HandleResource` 改為回傳 `File.Create(Path.Combine("temp", info.FileName))`。 + +**Q: 我可以加密 ZIP 嗎?** +A: Aspose.HTML 未提供內建加密功能,但在取得 `MemoryStream` 後,你可以將其交給 `System.IO.Compression.ZipArchive` 並設定密碼,或使用第三方函式庫如 SharpZipLib。 + +**Q: HTML 內的相對 URL 該怎麼處理?** +A: `HTMLDocument` 的第二個參數 (`"."`) 告訴 Aspose.HTML 以目前目錄作為相對路徑的解析基礎。若資源位於其他位置,請傳入相應的基礎路徑或自訂的 `UriResolver`。 + +## 結論 + +我們剛剛示範了如何使用 Aspose.HTML、**自訂資源處理程式** 以及幾個簡單的設定步驟 **將 HTML 儲存為 ZIP**。此方法讓你能夠在記憶體中完整 **將 HTML 轉換為 ZIP**,提供將結果串流至 Web 客戶端、存入資料庫,或寫入磁碟以供日後使用的彈性。 + +歡迎自行嘗試:將 `MemoryStream` 換成雲端儲存串流、加入密碼保護,或平行批次處理數十頁。載入、處理、設定、儲存的核心模式保持不變,成為任何需要 **將 HTML 渲染為 ZIP** 或 **從 HTML 建立 ZIP** 的 .NET 解決方案的可重用組件。 + +對自訂資源處理或其他 Aspose.HTML 功能有更多問題嗎?在下方留下評論,祝開發順利! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/hungarian/net/generate-jpg-and-png-images/_index.md index dc2c2b0ac..a4e801c4e 100644 --- a/html/hungarian/net/generate-jpg-and-png-images/_index.md +++ b/html/hungarian/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Tanulja meg az Aspose.HTML for .NET használatát HTML-dokumentumok kezeléséhe Ismerje meg, hogyan állíthatja be az antialiasingot a DOCX dokumentumok PNG vagy JPG képekké konvertálásakor az Aspose.HTML for .NET használatával. ### [docx konvertálása png-re – zip archívum létrehozása C# oktatóanyag](./convert-docx-to-png-create-zip-archive-c-tutorial/) Ismerje meg, hogyan konvertálhat docx fájlokat png képekké, majd csomagolhatja őket zip archívumba C#-ban az Aspose.HTML segítségével. +### [PNG létrehozása HTML-ből C#-ban – Lépésről‑lépésre útmutató](./create-png-from-html-in-c-step-by-step-guide/) +Ismerje meg, hogyan konvertálhat HTML-t PNG képpé C#-ban az Aspose.HTML for .NET segítségével, részletes lépésekkel. ## Következtetés diff --git a/html/hungarian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/hungarian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..c72c74400 --- /dev/null +++ b/html/hungarian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Készíts PNG-t HTML-ből az Aspose.HTML segítségével. Ismerd meg, hogyan + lehet HTML-t PNG-re renderelni, HTML-t képpé konvertálni, HTML-t PNG-ként exportálni, + és gyorsan megjeleníteni a HTML-dokumentum képét. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: hu +og_description: PNG létrehozása HTML-ből C#-ban az Aspose.HTML segítségével. Ez az + útmutató megmutatja, hogyan lehet HTML-t PNG-re renderelni, HTML-t képpé konvertálni, + és HTML-t PNG-ként exportálni. +og_title: PNG létrehozása HTML‑ből C#‑ban – Teljes programozási útmutató +tags: +- Aspose.HTML +- C# +- Image Rendering +title: PNG létrehozása HTML‑ből C#‑ban – Lépésről‑lépésre útmutató +url: /hu/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PNG létrehozása HTML‑ből C#‑ban – Teljes programozási útmutató + +Valaha szükséged volt **HTML‑ből PNG létrehozására**, de nem tudtad, melyik könyvtár adja a tiszta eredményt fejfájás nélkül? Nem vagy egyedül. Sok fejlesztő elakad, amikor megpróbál egy weboldalt bitmapté alakítani, különösen, ha anti‑aliasingra vagy egyedi betűtípus‑hintre van szükség. + +Ebben a bemutatóban egy gyakorlati megoldáson keresztül vezetünk be a **Aspose.HTML for .NET** használatával. A végére tudni fogod, hogyan **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, és még a renderelési folyamatot is finomhangolhatod a tökéletes eredményért. Nincs felesleges szöveg – csak egy működő kódrészlet, a sorok magyarázata, és néhány profi tipp, amiről korábban biztosan jó lenne tudni. + +## Amire szükséged lesz + +- .NET 6+ (vagy .NET Framework 4.6+). +- A `Aspose.HTML` NuGet csomag (23.9 vagy újabb verzió). +- Egy egyszerű `input.html` fájl, amelyet képpé szeretnél alakítani. +- Egy IDE, például a Visual Studio 2022 (bármely szerkesztő, ami képes C#‑t fordítani, megfelelő). + +Ennyi. Nincs extra bináris, nincs külső szolgáltatás, és nincs rejtélyes konfigurációs fájl. Készen állsz? Merüljünk el. + +## PNG létrehozása HTML‑ből – Alaplépések + +Az alábbiakban a teljes folyamatot négy logikai részre bontjuk. Minden részhez tartozik egy konkrét kódrészlet, és egy rövid „miért” magyarázat. Kövesd a sorrendet, másold a kódot, és néhány másodperc alatt egy PNG fájl fog megjelenni a `YOUR_DIRECTORY/output.png` helyen. + +### 1. lépés: HTML dokumentum betöltése + +Az első dolog, amit meg kell tennünk, hogy az Aspose.HTML‑nek egy dokumentumobjektumot adjunk, amivel dolgozhat. Gondolj rá úgy, mintha egy friss vásznat adnál a renderelőnek, amely már tartalmazza az összes markup‑ot, CSS‑t és a HTML‑fájl által hivatkozott képeket. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Miért fontos:* A `HTMLDocument` beolvassa a fájlt, feloldja a relatív URL‑eket, és felépíti a DOM‑fát. Ha a fájl nem található, itt dobódik kivétel – így már a renderelés megkezdése előtt elkapod a problémákat. + +### 2. lépés: Kép renderelési beállítások konfigurálása + +Ezután megmondjuk az Aspose‑nak, mekkora legyen a végső kép, és szeretnénk‑e anti‑aliasingot. Ezek a beállítások közvetlenül befolyásolják a **render html to png** művelet vizuális hűségét. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Miért fontos:* A nagyobb méretek több részletet adnak, de növelik a memóriahasználatot. A `UseAntialiasing` a titkos összetevő egy professzionális kinézetű **export html as png** esetén – nélküle lépcsőzetes artefaktusokat látsz a szöveg és a vektorgrafikák körül. + +### 3. lépés: Szöveg renderelés finomhangolása (Hinting és betűtípus‑stílus) + +Ha a HTML egyedi betűtípusokat használ, vagy félkövér/dőlt stílusra van szükséged, engedélyezned kell a hintingot és be kell állítanod a megfelelő `WebFontStyle`‑t. A hinting a glifeket pixel‑határokhoz igazítja, ami kulcsfontosságú, amikor **convert html to image**‑t végzel fix felbontáson. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Miért fontos:* A hinting megakadályozza a elmosódott betűket, különösen alacsony DPI‑s képernyőkön. A `Bold` és `Italic` kombinálása bemutatja, hogyan rétegezhetsz több stílust; természetesen választhatsz csak egyet vagy egyiket sem, a tervezésedtől függően. + +### 4. lépés: PNG fájl renderelése + +Végül példányosítjuk a `ImageRenderer`‑t, rámutatunk a dokumentumra, megadjuk a kimeneti útvonalat, és átadjuk a korábban épített beállításokat. A `Render()` hívás végzi el a nehéz munkát. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Miért fontos:* A `ImageRenderer` tiszteletben tartja az összes korábban definiált beállítást – méret, anti‑aliasing, szöveg‑hinting, betűtípus‑stílus. Amikor a `Render()` befejeződik, egy teljesen kompatibilis PNG‑t kapsz, amely megjeleníthető böngészőkben, feltölthető felhő tárolókba, vagy beágyazható jelentésekbe. + +> **Pro tipp:** Ha más képfájltípust (JPEG, BMP, GIF) szeretnél, egyszerűen változtasd meg a fájlkiterjesztést a kimeneti útvonalban. Az Aspose automatikusan a megfelelő enkódert választja. + +## HTML renderelése PNG‑be Aspose.HTML‑el – Teljes példa + +Az összes részegység egyesítése egy önálló programot eredményez. Másold az alábbi blokkot egy új konzolos alkalmazásba, és futtasd; a `output.png` megjelenik a forrás‑HTML mellé. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Várt eredmény + +A futtatás után egy az alábbi maketthez hasonló fájlt kell látnod (a tényleges megjelenés a HTML‑tartalomtól függ). + +![HTML‑ből PNG létrehozása példa](/images/html-to-png-sample.png "Minta kimenet, amikor HTML‑ből PNG‑t hozol létre az Aspose.HTML használatával") + +A PNG megőrzi a layoutot, a színeket és a betűtípusokat pontosan úgy, ahogy a böngésző megjelenítené az oldalt – köszönhetően az Aspose‑on belüli **render html document image** motorjának. + +## Gyakori kérdések és széljegyek + +### Mi van, ha a HTML külső képeket hivatkozik? + +Az Aspose.HTML a relatív URL‑eket az `input.html` mappája alapján követi. Ha a képek máshol vannak tárolva, választhatod a következőket: + +1. Használj abszolút URL‑eket (pl. `https://example.com/logo.png`). +2. Állítsd be a `htmlDocument.BaseUrl`‑t úgy, hogy a forrásfájlok mappájára mutasson. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Hogyan állíthatom be a DPI‑t nagy felbontású kimenethez? + +Méretezheted a renderelési méretet, miközben megtartod az arányt, vagy beállíthatod a `renderingOptions.DPI`‑t (alapértelmezett 96). Nyomtatásra kész PNG‑k esetén a 300 DPI gyakori: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Renderelhetek több oldalt egyetlen HTML dokumentumból? + +Igen. Ha a HTML CSS oldaltöréseket tartalmaz (`@media print { page-break-after: always; }`), az Aspose a `MultiPageImageRenderer` használatakor külön PNG fájlokat generál oldalanként. Ez egy haladó szcenárió, de ugyanaz a **convert html to image** elv érvényes. + +### Mi a helyzet a memóriafogyasztással? + +Egy hatalmas oldal (több ezer pixel széles) több száz megabájtot is felhasználhat. A memóriahasználat alacsonyan tartásához: + +- Renderelj a legkisebb elfogadható méretben. +- Kapcsold ki a `UseAntialiasing`‑t, ha a minőség nem kritikus. +- Használd a `using` blokkokat a `HTMLDocument` és `ImageRenderer` gyors eldobásához (ahogy a példában látható). + +## HTML dokumentum kép renderelése – Következő lépések + +Most, hogy elsajátítottad a **render html to png** alapjait, gondolj ezekre a kiterjesztésekre: + +- **Kötegelt konverzió:** Egy mappában lévő HTML fájlok bejárása és PNG‑k generálása egy lépésben. +- **Vízjel:** Renderelés után töltsd be a PNG‑t a `System.Drawing` vagy `ImageSharp` segítségével, és helyezz rá logót. +- **PDF generálás:** Használd a `PdfRenderer`‑t (az Aspose.HTML része) PDF‑k létrehozásához ugyanabból a HTML forrásból. + +Ezek mind ugyanazokra az alapkoncepciókra épülnek, amelyeket most megtanultál, így otthonosan fogod őket használni. + +## Következtetés + +Átvezettünk a problémakijelentéstől – *hogyan hozzunk létre PNG‑t HTML‑ből* – egy teljes, futtatható megoldásig, amely **renders HTML to PNG**, **converts HTML to image**, és **exports HTML as PNG** finomhangolt vezérléssel a méret, anti‑aliasing és szöveg‑hinting felett. + +Próbáld ki a saját weboldaladdal, módosítsd a méreteket, és kísérletezz különböző betűtípus‑stílusokkal. A kód rövid, az API intuitív, az eredmények pedig pontosan úgy néznek ki, mint egy böngészőben készített képernyőfotó – csak gyorsabbak és teljesen automatizálhatók. + +Ha tetszett ez az útmutató, nézd meg a többi tutorialunkat a **render html document image** manipulációról, például a HTML‑ből PDF konvertálásról vagy SVG pillanatképek generálásáról. Boldog kódolást, és legyenek a PNG‑eid mindig pixel‑tökéletesek! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/hungarian/net/html-extensions-and-conversions/_index.md index 53dd8b575..8393adf2e 100644 --- a/html/hungarian/net/html-extensions-and-conversions/_index.md +++ b/html/hungarian/net/html-extensions-and-conversions/_index.md @@ -53,11 +53,15 @@ Az Aspose.HTML for .NET nem csak egy könyvtár; ez egy változás a webfejleszt Fedezze fel az Aspose.HTML erejét .NET-hez: A HTML-t könnyedén konvertálja XPS-re. Előfeltételek, lépésenkénti útmutató és GYIK mellékelve. ### [HTML zip-elése C#-ban – HTML mentése zip-be](./how-to-zip-html-in-c-save-html-to-zip/) Ismerje meg, hogyan csomagolhatja be a HTML-fájlokat zip-archívumba C#-ban az Aspose.HTML for .NET segítségével. +### [HTML zip-elése DOCX-ből – Teljes C# útmutató](./how-to-zip-html-from-docx-complete-c-guide/) +Ismerje meg, hogyan csomagolhatja be a DOCX-ből származó HTML-t ZIP-archívumba C#-ban az Aspose.HTML for .NET segítségével. ### [HTML-dokumentum létrehozása formázott szöveggel és exportálása PDF-be – Teljes útmutató](./create-html-document-with-styled-text-and-export-to-pdf-full/) Hozzon létre HTML-dokumentumot formázott szöveggel, majd exportálja PDF-be az Aspose.HTML for .NET segítségével. Lépésről lépésre útmutató. ### [PDF létrehozása HTML-ből – C# lépésről‑lépésre útmutató](./create-pdf-from-html-c-step-by-step-guide/) Ismerje meg, hogyan hozhat létre PDF-et HTML-ből C#‑ban az Aspose.HTML for .NET segítségével, részletes lépésről‑lépésre útmutatóval. ### [HTML mentése ZIP-ként – Teljes C# oktatóanyag](./save-html-as-zip-complete-c-tutorial/) +### [HTML mentése ZIP-be – Teljes C# útmutató a HTML ZIP-re konvertálásához](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Ismerje meg, hogyan menthet HTML-t ZIP-archívumba C#-ban az Aspose.HTML for .NET segítségével, részletes útmutatóval. ### [HTML mentése ZIP-be C#‑ban – Teljes memória‑beli példa](./save-html-to-zip-in-c-complete-in-memory-example/) Mentse a HTML-t közvetlenül memóriában ZIP-archívumba az Aspose.HTML for .NET C#‑ban. diff --git a/html/hungarian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/hungarian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..4f46472e6 --- /dev/null +++ b/html/hungarian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,298 @@ +--- +category: general +date: 2026-04-26 +description: Tanulja meg, hogyan lehet zip-elt HTML kimenetet készíteni egy DOCX fájlból, + hogyan konvertálja a docx-et HTML-re, hogyan állítsa be a kép méretét, hogyan exportálja + a Word dokumentumot PNG-be, és hogyan állítsa be a félkövér betűt – lépésről‑lépésre + kód. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: hu +og_description: Tanulja meg, hogyan lehet zip-elt HTML kimenetet készíteni egy DOCX + fájlból, hogyan konvertáljon docx-et HTML-re, hogyan állítsa be a kép méretét, hogyan + exportálja a Word dokumentumot PNG-be, valamint hogyan állítsa be a félkövér betűtípust, + világos C# példákkal. +og_title: Hogyan ZIP-eljük a HTML-t a DOCX-ből – Teljes C# útmutató +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Hogyan csomagolj HTML-t DOCX-ből – Teljes C# útmutató +url: /hu/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan ZIP-eljük a HTML-t DOCX-ből – Teljes C# útmutató + +Gondolkodtál már azon, **hogyan zip-eljük a html-t**, amit egy Word dokumentumból generálsz? Lehet, hogy egyetlen archívumra van szükséged, amit elküldhetsz egy ügyfélnek vagy a felhőbe tárolhatsz, és nem szeretnél egy mappát tele laza fájlokkal. Ebben az útmutatóban végigvezetünk a .docx fájl HTML‑re konvertálásán, az eredmény ZIP‑be csomagolásán, majd ugyanannak a dokumentumnak a PNG képre renderelésén egy egyedi mérettel és félkövér szöveggel. Útközben kitérünk a *convert docx to html*, *set image size*, *export word to png* és a *how to set bold font* témákra – mindezt egy koherens példában. + +A útmutató végére egy kész‑futásra alkalmas C# programod lesz, amely: + +* Betölti a DOCX‑et a lemezről. +* HTML‑ként menti, miközben automatikusan ZIP‑be csomagolja a kimenetet. +* PNG‑t renderel pontos szélességgel, magassággal, antialiasinggal és félkövér betűstílussal. + +Nincs külső script, nincs saját zip‑logika – csak az Aspose.Words for .NET API (vagy bármely ekvivalens könyvtár) végzi a nehéz munkát. + +--- + +## Prerequisites — What You Need Before You Start + +| Követelmény | Miért fontos | +|-------------|--------------| +| **.NET 6.0+** (vagy .NET Framework 4.7.2) | Biztosítja a C# 10 szintaxis futtatókörnyezetét, amelyet alább használunk. | +| **Aspose.Words for .NET** (vagy egy hasonló könyvtár, amely támogatja a `HtmlSaveOptions` és `ImageRenderer` osztályokat) | Kezeli a DOCX → HTML konverziót, a archiválást és a képrenderelést. | +| **Egy DOCX fájl** `input.docx` néven egy általad irányított mappában | A forrásdokumentum, amelyet átalakítunk. | +| **Írási jogosultság** a kimeneti könyvtárhoz (`YOUR_DIRECTORY`) | Szükséges a `doc.zip` és az `out.png` létrehozásához. | + +Ha NuGet‑et használsz, telepítsd a csomagot a következővel: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tipp:** A ingyenes értékelő verzió vízjelet helyez a renderelt PNG‑re. Szerezd be a licencet a termelési használathoz. + +--- + +## Step 1: Load the Source Document + +Az első lépés a Word fájl memóriába olvasása. Ez a kiindulópont a **convert docx to html** és a későbbi PNG renderelés számára. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Miért fontos:* +A `Document` a központi objektum; beolvassa a .docx csomagot, feloldja a stílusokat, és előkészíti az erőforrásokat mind a HTML export, mind a képrenderelés számára. Ha a fájl nem található, kivétel keletkezik – ezért ellenőrizd az útvonal helyességét. + +--- + +## Step 2: Configure HTML Save Options – The Core of **How to Zip HTML** + +Itt mondjuk meg az Aspose.Words‑nek, hogy HTML‑t generáljon, az összes kapcsolódó erőforrást (képek, CSS) egy egyedi erőforrás‑kezelőn keresztül tárolja, majd végül mindent egyetlen archívumba zip‑elje. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### What `MyResourceHandler` Does + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Miért van szükségünk egy kezelőre:* +A **convert docx to html** során a könyvtár sok mellékállományt (pl. `image001.png`) hozhat létre. A kezelő minden mentési műveletet elfog, biztosítva, hogy minden a ZIP‑en belül landoljon, ne pedig egy laza mappában. + +--- + +## Step 3: Save the Document as Zipped HTML + +Most történik a varázslat. A HTML fájlok és erőforrásaik közvetlenül a `doc.zip`‑be íródnak. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Eredmény:** +`YOUR_DIRECTORY/doc.zip` most a következőket tartalmazza: + +* `document.html` – a fő markup. +* `document_files/` – egy almappa képekkel, CSS‑sel és minden beágyazott médiával. + +Kicsomagolhatod, hogy ellenőrizd a struktúrát, vagy közvetlenül a ZIP‑et szolgálhatod ki egy web‑API‑ból. + +--- + +## Step 4: Set Up Image Rendering Options – Controlling **Set Image Size** and **How to Set Bold Font** + +Ha vizuális pillanatképet szeretnél a Word fájlról, PNG‑re renderelheted. Az alábbi blokk megmutatja, hogyan definiáljuk a pontos méreteket, engedélyezzük az antialiasingot, és kényszerítjük a félkövér stílust minden szövegre. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Miért fontosak ezek a flag‑ek:* +- **Width/Height** lehetővé teszi, hogy a PNG‑t a UI‑elrendezésedhez igazítsd. +- **UseAntialiasing** simítja a széleket, megakadályozva a szaggatott vonalakat. +- **FontStyle = Bold** felülír minden beágyazott stílust a DOCX‑ben, biztosítva, hogy a PNG félkövér megjelenést mutasson, függetlenül az eredeti formázástól. + +--- + +## Step 5: Render the Document to PNG – The **Export Word to PNG** Step + +Végül mindent összekapcsolunk, és előállítjuk a képfájlt. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Ami megjelenik:** +Egy tiszta `out.png`, amely 800 × 600 méretű, minden szöveg félkövér, és minden vektorgrafika antialiaselt. + +--- + +## Full Working Example – Copy, Paste, Run + +Az alábbi teljes program készen áll, hogy beilleszd egy konzol‑alkalmazásba. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Expected Output + +| Fájl | Hely | Leírás | +|------|------|--------| +| `doc.zip` | `YOUR_DIRECTORY` | ZIP‑elt HTML + erőforrások (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, minden szöveg félkövér, antialiaselt. | + +Megnyithatod a `doc.zip`‑ot bármely archívum‑eszközzel, kicsomagolhatod a `document.html`‑t, és megtekintheted egy böngészőben. A kép pontosan úgy fog kinézni, ahogy az eredeti Word fájlból renderelték. + +--- + +## Common Questions & Edge Cases + +### Mi van, ha más képfájl‑formátumra van szükségem? +Cseréld ki a fájlkiterjesztést az `ImageRenderer` konstruktorában (`out.jpg`, `out.tiff`) és állítsd be az `ImageSavingOptions`‑t ennek megfelelően. Az API automatikusan a megfelelő enkódert választja. + +### Vezérelhetem a ZIP tömörítési szintjét? +A `HtmlSaveOptions` rendelkezik egy `ZipCompressionLevel` tulajdonsággal (pl. `CompressionLevel.BestCompression`). Állítsd be a `Save` hívás előtt. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### A DOCX‑em nagy felbontású képeket tartalmaz – lesz a PNG óriási? +Igen, mert rögzített pixelméretet kényszerítünk. A fájlméret alacsonyan tartásához csökkentsd a `Width`/`Height` értékeket, vagy engedélyezd az `ImageResizeOptions`‑t az `ImageRenderingOptions`‑ban. + +### Hogyan őrizhetem meg az eredeti betűvastagságot a kényszerített félkövér helyett? +Egyszerűen távolítsd el a `FontStyle = WebFontStyle.Bold` sort, vagy állítsd be feltételesen egy felhasználói flag alapján. + +### Működik ez Linux‑on/macOS‑en? +Természetesen. Az Aspose.Words platform‑független; csak győződj meg róla, hogy a megfelelő .NET futtatókörnyezet telepítve van. + +--- + +## Troubleshooting Checklist + +| Tünet | Valószínű ok | Javítás | +|-------|--------------|--------| +| `FileNotFoundException` az `input.docx`‑nél | Hibás útvonal vagy hiányzó fájl | Ellenőrizd, hogy a `YOUR_DIRECTORY/input.docx` létezik; teszteléshez használj abszolút útvonalakat. | +| `OutOfMemoryException` PNG renderelés közben | Nagyon nagy dokumentum vagy hatalmas képméret | Csökkentsd a `Width`/`Height` értékeket, vagy renderelj oldalanként (`ImageRenderer.Render(pageIndex)`). | +| A ZIP üres `document_files` mappát tartalmaz | `MyResourceHandler` más fájlnevet adott vissza vagy kivételt dobott | Győződj meg róla, hogy a `ResourceSaving` nem szakítja meg a mentést (`args.Cancel = false`). | +| A szöveg nem félkövér a PNG-ben | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/hungarian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..87026bfbc --- /dev/null +++ b/html/hungarian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Mentse el a HTML-t ZIP formátumban gyorsan az Aspose.HTML segítségével. + Ismerje meg, hogyan konvertálhatja a HTML-t ZIP-re egy egyéni erőforráskezelő használatával, + és néhány lépésben renderelheti a HTML-t ZIP-be. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: hu +og_description: HTML mentése ZIP-ként az Aspose.HTML segítségével. Ez az útmutató + bemutatja, hogyan konvertálhatja a HTML-t ZIP-be, egy egyedi erőforráskezelő használatával, + amely hatékonyan rendereli a HTML-t ZIP-be. +og_title: HTML mentése ZIP‑ként – Lépésről lépésre C# útmutató +tags: +- Aspose.HTML +- C# +- HTML rendering +title: HTML mentése ZIP-ként – Teljes C# útmutató az HTML ZIP-be konvertálásához +url: /hu/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML mentése ZIP-be – Teljes C# útmutató az HTML ZIP-be konvertálásához + +Szükséged volt már **HTML mentésére ZIP-be**, de nem tudtad, mely API‑hívásokat kell összekapcsolni? Nem vagy egyedül. Sok fejlesztő akad el, amikor egy HTML oldalt szeretne a CSS‑ével, képeivel és betűtípusaival egyetlen archívumba csomagolni — különösen akkor, ha azt memóriában szeretné tartani, amíg el nem döntik, mi legyen vele. + +A jó hír? Az Aspose.HTML segítségével **HTML‑t ZIP‑be konvertálhatsz** néhány sor kóddal, köszönhetően a `HtmlSaveOptions` osztálynak és egy **egyedi erőforráskezelőnek**, amely teljes kontrollt ad arról, hogy az egyes erőforrások hová kerülnek. Ebben a tutorialban lépésről‑lépésre bemutatjuk, hogyan **renderelj HTML‑t ZIP‑be**, tárold mindent memóriában, és opcionálisan írd ki a fájlokat lemezre. A végére egy újrahasználható kódrészletet kapsz, amelyet bármely .NET projektbe beilleszthetsz. + +## Mit fed le ez az útmutató + +* Hogyan definiáljuk a HTML forráskarakterláncot (vagy töltsük be egy fájlból). +* Hogyan hozhatunk létre egy `HTMLDocument`‑et az Aspose.HTML‑lel. +* Hogyan készítsünk **egyedi erőforráskezelőt**, amely minden erőforráshoz egy `MemoryStream`‑et ad vissza. +* Hogyan konfiguráljuk a `HtmlSaveOptions`‑t, hogy **ZIP archívumot** generáljon, amely tartalmazza a HTML‑t és minden függő fájlt. +* Hogyan mentsük a dokumentumot, és ha szeretnénk, írjuk a memóriában lévő adatot egy lemezre mutató mappába. + +Nincs szükség külső eszközökre, nincs kézi zip‑elés — csak tiszta C# és Aspose.HTML. + +> **Pro tip:** Ha már használod az Aspose.PDF‑et vagy az Aspose.Words‑t, ugyanaz a `ResourceHandler` minta ott is működik, így újra felhasználhatod ezt a kódot több dokumentumtípusnál is. + +--- + +## 1. lépés: HTML mentése ZIP-be – A HTML forrás definiálása + +Először szükségünk van egy karakterláncra, amely a archiválni kívánt HTML‑t tartalmazza. Egy valódi projektben ezt beolvashatod egy fájlból, adatbázisból vagy API‑válaszból, de a tisztaság kedvéért egy apró példát kódolunk be. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Miért fontos:** A `HTMLDocument` konstruktorja vagy egy fájlútvonalat, vagy nyers HTML‑t vár. A karakterlánc közvetlen átadása az egész folyamatot memóriában tartja, ami tökéletes, ha később a ZIP‑et közvetlenül egy kliensnek szeretnéd streamelni. + +--- + +## 2. lépés: HTML konvertálása ZIP‑be – A HTMLDocument betöltése + +Most átadjuk a HTML‑t az Aspose.HTML‑nek. A második argumentum (`"."`) azt mondja a könyvtárnak, hogy hol oldja fel a relatív URL‑eket; a jelenlegi könyvtár használata a legtöbb egyszerű esetben működik. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Mi történik:** A `HTMLDocument` beolvassa a markup‑ot, felépíti a DOM‑ot, és előkészíti az összes hivatkozott erőforrást (CSS, képek, betűtípusok) a rendereléshez. Egy `using` blokkba helyezve garantáljuk a natív erőforrások megfelelő felszabadítását. + +--- + +## 3. lépés: HTML renderelése ZIP‑be – Egyedi erőforráskezelő létrehozása + +Az Aspose.HTML lehetővé teszi, hogy **ahová** írja az egyes erőforrásokat. A `ResourceHandler` alosztályozásával minden fájlhoz, amelyet a renderelő menteni akar, egy friss `MemoryStream`‑et adhatunk vissza. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Miért egyedi kezelő?** Az alapértelmezett viselkedés a fájlrendszerre ír. Egy kezelővel minden adat RAM‑ban maradhat, a ZIP közvetlenül egy web‑válaszba küldhető, vagy akár a stream‑eket helyben titkosíthatod. + +--- + +## 4. lépés: HTML konvertálása ZIP‑be – Mentési beállítások konfigurálása + +Itt van a művelet szíve. A `HtmlSaveOptions` azt mondja az Aspose.HTML‑nek, hogy mindent egy ZIP archívumba (`SaveToArchive = true`) csomagoljon, és hogy a mi `resourceHandler`‑ünket használja a tároláshoz. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Kulcsfontosságú megértés:** Az `ArchiveFileName` a ZIP‑en belül megjelenő név, nem egy lemezre mutató útvonal. Mivel memóriában alapuló kezelőt használunk, a ZIP teljes egészében RAM‑ban él, amíg el nem döntöd, mi legyen vele. + +--- + +## 5. lépés: HTML mentése ZIP‑be – Az archívum véglegesítése + +Végül a dokumentumot a most épített opciókkal kérjük meg a mentésre. Ez a hívás elindítja a renderelési csővezetéket, minden erőforráshoz meghívja a kezelőnket, és a végső ZIP‑et a megadott memóriastream‑ekbe írja. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Eredmény:** Ezen a ponton a `resourceHandler` egy `MemoryStream`‑et tartalmaz a fő HTML fájlhoz, valamint további stream‑eket minden CSS, kép vagy betűtípus számára, amelyre hivatkoztak. A ZIP fájl teljesen össze van állítva ezekben a stream‑ekben. + +--- + +## 6. lépés: Egyedi erőforráskezelő – Stream biztosítása minden erőforráshoz + +Az alábbiakban a `MyResourceHandler` megvalósítása látható. A `HandleResource` metódust minden egyes erőforrás (HTML, CSS, képek, betűtípusok, …) esetén egyszer meghívják. Egyszerűen egy új `MemoryStream`‑et adunk vissza minden alkalommal. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Miért friss stream?** Minden erőforrásnak saját tárolóra van szüksége; egyetlen stream újrahasználata korrumpálná az archívumot. A `MemoryStream` olcsó és automatikusan növekszik, ha szükséges. + +--- + +## 7. lépés: Opcionális – A mentett erőforrások kiírása lemezre + +Ha szeretnéd megtekinteni a generált fájlokat, vagy másolatot tárolni a szerveren, a `ResourceSaved` akkor hívódik, amikor egy stream lezárul. Itt a memóriában lévő tartalmat egy általad megadott mappába (`YOUR_DIRECTORY/Output`) írjuk. + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Szélhelyzet‑jegyzet:** Ha olyan környezetben futsz, ahol nincs írási jogosultság (pl. Azure Functions), egyszerűen hagyd ki a `ResourceSaved` megvalósítását, vagy cseréld le egy felhő‑tároló feltöltésre. + +--- + +## Teljes, futtatható példa (38 sor) + +Az alábbi kódrészlet a teljes megoldást tartalmazza, amelyet egy konzol‑alkalmazásba másolhatsz. Betartja a 15‑40 soros keretet, leíró változóneveket használ, és helyőrzőket tartalmaz, amelyeket testre szabhatsz. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Várt kimenet + +* Egy `result.zip` fájl jelenik meg a memóriában lévő archívumban (ha hozzáadsz egy property‑t a `resourceHandler`‑hez, onnan is lekérheted a stream‑et). +* Ha megtartottad a `ResourceSaved` implementációt, ugyanazok a fájlok a `YOUR_DIRECTORY/Output` mappába is kiírásra kerülnek, tükrözve a ZIP belső struktúráját. + +--- + +## Gyakran Ismételt Kérdések (GYIK) + +**K: Működik ez nagy HTML oldalakkal?** +V: Teljesen. A `MemoryStream` szükség szerint növekszik, de több megabájtos oldalak esetén érdemes közvetlenül egy `FileStream`‑re streamelni, hogy elkerüld a magas memóriahasználatot. Ehhez csak annyit kell módosítanod, hogy a `HandleResource` `File.Create(Path.Combine("temp", info.FileName))`‑et adjon vissza. + +**K: Titkosíthatom a ZIP‑et?** +V: Az Aspose.HTML nem biztosít beépített titkosítást, de a `MemoryStream` lekérése után átadhatod egy `System.IO.Compression.ZipArchive`‑nek jelszóval, vagy használhatsz egy harmadik fél könyvtárat, például a SharpZipLib‑et. + +**K: Mi van a relatív URL‑ekkel a HTML‑ben?** +V: A `HTMLDocument` második argumentuma (`"."`) azt mondja az Aspose.HTML‑nek, hogy a relatív útvonalakat a jelenlegi könyvtárhoz viszonyítva oldja fel. Ha az erőforrásaid máshol vannak, add meg a megfelelő alapútvonalat vagy egy egyedi `UriResolver`‑t. + +--- + +## Összegzés + +Megmutattuk, hogyan **menthetünk HTML‑t ZIP‑be** az Aspose.HTML, egy **egyedi erőforráskezelő**, és néhány egyszerű konfigurációs lépés segítségével. Ez a megközelítés lehetővé teszi, hogy **HTML‑t ZIP‑be konvertálj** teljesen memóriában, így rugalmasan streamelheted az eredményt egy web‑kliensnek, tárolhatod adatbázisban, vagy lemezre írhatsz későbbi felhasználásra. + +Nyugodtan kísérletezz: cseréld le a `MemoryStream`‑et egy felhő‑tároló stream‑re, adj hozzá jelszóvédelmet, vagy párhuzamosan dolgozz több száz oldallal. A magminta – betöltés, kezelő, konfiguráció, mentés – változatlan marad, így újrahasználható építőelemmé válik minden .NET megoldáshoz, amelynek **HTML‑t ZIP‑be kell renderelnie** vagy **ZIP‑et kell létrehoznia HTML‑ből**. + +További kérdéseid vannak az egyedi erőforráskezelésről vagy más Aspose.HTML funkciókról? Írj egy megjegyzést alább, és jó kódolást kívánok! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "HTML forrásból memóriában lévő ZIP archívum áramlása") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/indonesian/net/generate-jpg-and-png-images/_index.md index 4e885ce32..16b40d1d4 100644 --- a/html/indonesian/net/generate-jpg-and-png-images/_index.md +++ b/html/indonesian/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Pelajari cara menggunakan Aspose.HTML untuk .NET guna memanipulasi dokumen HTML, Pelajari cara mengaktifkan antialiasing untuk meningkatkan kualitas gambar PNG atau JPG saat mengonversi dokumen DOCX menggunakan Aspose.HTML. ### [Konversi DOCX ke PNG – Membuat Arsip ZIP dengan C# Tutorial](./convert-docx-to-png-create-zip-archive-c-tutorial/) Pelajari cara mengonversi file DOCX menjadi PNG dan mengemasnya ke dalam arsip ZIP menggunakan C# dengan Aspose.HTML. +### [Buat PNG dari HTML di C# – Panduan Langkah‑per‑Langkah](./create-png-from-html-in-c-step-by-step-guide/) +Pelajari cara mengonversi HTML menjadi gambar PNG menggunakan C# dengan Aspose.HTML dalam panduan langkah demi langkah. ## Kesimpulan diff --git a/html/indonesian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/indonesian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..962458d55 --- /dev/null +++ b/html/indonesian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Buat PNG dari HTML menggunakan Aspose.HTML. Pelajari cara merender HTML + ke PNG, mengonversi HTML menjadi gambar, mengekspor HTML sebagai PNG, dan merender + gambar dokumen HTML dengan cepat. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: id +og_description: Buat PNG dari HTML di C# dengan Aspose.HTML. Panduan ini menunjukkan + cara merender HTML ke PNG, mengonversi HTML menjadi gambar, dan mengekspor HTML + sebagai PNG. +og_title: Buat PNG dari HTML di C# – Panduan Pemrograman Lengkap +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Buat PNG dari HTML di C# – Panduan Langkah-demi-Langkah +url: /id/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat PNG dari HTML di C# – Panduan Pemrograman Lengkap + +Pernah perlu **create PNG from HTML** tetapi tidak yakin pustaka mana yang akan memberikan output tajam tanpa ribet? Anda tidak sendirian. Banyak pengembang mengalami kesulitan ketika mencoba mengubah halaman web menjadi bitmap, terutama ketika mereka membutuhkan anti‑aliasing atau petunjuk font khusus. + +Dalam tutorial ini kami akan membimbing Anda melalui solusi praktis menggunakan **Aspose.HTML for .NET**. Pada akhir tutorial Anda akan tahu cara **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, dan bahkan menyesuaikan pipeline rendering untuk hasil yang sempurna. Tanpa basa‑basi—hanya contoh kode yang berfungsi, mengapa setiap baris penting, dan beberapa tip profesional yang ingin Anda ketahui lebih awal. + +## What You’ll Need + +- .NET 6+ (atau .NET Framework 4.6+). +- Paket NuGet `Aspose.HTML` (versi 23.9 atau lebih baru). +- File `input.html` sederhana yang ingin Anda ubah menjadi gambar. +- IDE seperti Visual Studio 2022 (editor apa pun yang dapat meng‑compile C# sudah cukup). + +Itu saja. Tanpa binary tambahan, tanpa layanan eksternal, dan tanpa file konfigurasi yang rumit. Siap? Mari kita mulai. + +## Create PNG from HTML – Core Steps + +Di bawah ini kami membagi seluruh proses menjadi empat bagian logis. Setiap bagian berhubungan dengan blok kode konkret, dan setiap blok disertai penjelasan singkat “mengapa”. Ikuti urutannya, salin kode, dan Anda akan memiliki PNG di `YOUR_DIRECTORY/output.png` dalam hitungan detik. + +### Step 1: Load the HTML Document + +Hal pertama yang harus kita lakukan adalah memberi Aspose.HTML objek dokumen untuk diproses. Anggap saja ini seperti memberikan renderer kanvas bersih yang sudah berisi semua markup, CSS, dan gambar yang direferensikan oleh file HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Why this matters:* `HTMLDocument` mem‑parse file, menyelesaikan URL relatif, dan membangun pohon DOM. Jika file tidak ditemukan, exception akan dilempar di sini—sehingga Anda dapat menangkap masalah lebih awal sebelum proses rendering dimulai. + +### Step 2: Configure Image Rendering Options + +Selanjutnya kami memberi tahu Aspose ukuran gambar akhir yang diinginkan dan apakah kami menginginkan anti‑aliasing. Opsi‑opsi ini secara langsung memengaruhi kualitas visual operasi **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Why this matters:* Dimensi yang lebih besar memberi Anda detail lebih banyak tetapi meningkatkan penggunaan memori. `UseAntialiasing` adalah rahasia untuk **export html as png** yang tampak profesional—tanpanya Anda akan melihat artefak bertingkat pada teks dan grafik vektor. + +### Step 3: Fine‑Tune Text Rendering (Hinting & Font Style) + +Jika HTML Anda menggunakan font khusus atau membutuhkan gaya tebal/miring, Anda harus mengaktifkan hinting dan mengatur `WebFontStyle` yang sesuai. Hinting menyelaraskan glyph ke batas piksel, yang penting saat Anda **convert html to image** pada resolusi tetap. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Why this matters:* Hinting mencegah huruf blur, terutama pada layar ber‑DPI rendah. Menggabungkan `Bold` dan `Italic` menunjukkan cara melapisi beberapa gaya; tentu saja Anda dapat memilih satu saja atau tidak sama sekali, tergantung desain Anda. + +### Step 4: Render the PNG File + +Akhirnya kami menginstansiasi `ImageRenderer`, menunjuk ke dokumen, menentukan jalur output, dan menyerahkan opsi yang telah kami buat. Pemanggilan `Render()` melakukan semua pekerjaan berat. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Why this matters:* `ImageRenderer` menghormati setiap pengaturan yang kami definisikan sebelumnya—ukuran, anti‑aliasing, hinting teks, gaya font. Ketika `Render()` selesai, Anda memiliki PNG yang sepenuhnya sesuai yang dapat ditampilkan di browser, di‑upload ke penyimpanan cloud, atau disisipkan dalam laporan. + +> **Pro tip:** Jika Anda membutuhkan format gambar lain (JPEG, BMP, GIF), cukup ubah ekstensi file pada jalur output. Aspose secara otomatis memilih encoder yang tepat. + +## Render HTML to PNG with Aspose.HTML – Full Example + +Menggabungkan semua potongan kode menghasilkan satu program mandiri. Salin blok di bawah ke aplikasi console baru dan jalankan; Anda akan melihat `output.png` muncul di samping file HTML sumber Anda. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Expected Result + +Setelah dijalankan Anda akan melihat file yang mirip dengan contoh mock‑up di bawah (penampilan sebenarnya tergantung pada konten HTML Anda). + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +PNG akan mempertahankan tata letak, warna, dan font persis seperti yang ditampilkan browser—berkat mesin **render html document image** di dalam Aspose. + +## Common Questions & Edge Cases + +### What if My HTML References External Images? + +Aspose.HTML mengikuti URL relatif berdasarkan folder `input.html`. Jika Anda memiliki gambar yang disimpan di tempat lain, lakukan salah satu hal berikut: + +1. Gunakan URL absolut (misalnya `https://example.com/logo.png`). +2. Atur `htmlDocument.BaseUrl` untuk menunjuk ke folder yang berisi aset‑aset tersebut. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### How Do I Adjust DPI for High‑Resolution Output? + +Anda dapat menskalakan ukuran rendering sambil mempertahankan rasio aspek yang sama, atau mengatur `renderingOptions.DPI` (default 96). Untuk PNG siap cetak, 300 DPI umum digunakan: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Can I Render Multiple Pages from a Single HTML Document? + +Ya. Jika HTML berisi pemisah halaman CSS (`@media print { page-break-after: always; }`), Aspose akan menghasilkan file PNG terpisah per halaman ketika Anda menggunakan `MultiPageImageRenderer`. Ini adalah skenario lanjutan, tetapi prinsip **convert html to image** tetap sama. + +### What About Memory Consumption? + +Merender halaman besar (beberapa ribu piksel lebar) dapat mengonsumsi ratusan megabyte. Untuk menjaga penggunaan memori tetap rendah: + +- Render pada dimensi terkecil yang dapat diterima. +- Matikan `UseAntialiasing` jika kualitas tidak terlalu penting. +- Segera dispose `HTMLDocument` dan `ImageRenderer` menggunakan pernyataan `using` (seperti yang ditunjukkan). + +## Render HTML Document Image – Next Steps + +Sekarang Anda telah menguasai dasar‑dasar **render html to png**, pertimbangkan ekstensi berikut: + +- **Batch conversion:** Loop melalui folder berisi file HTML dan hasilkan PNG secara massal. +- **Watermarking:** Setelah rendering, muat PNG dengan `System.Drawing` atau `ImageSharp` dan tambahkan logo sebagai watermark. +- **PDF generation:** Gunakan `PdfRenderer` (juga bagian dari Aspose.HTML) untuk membuat PDF dari sumber HTML yang sama. + +Masing‑masing ekstensi ini dibangun di atas konsep inti yang baru saja Anda pelajari, sehingga Anda akan merasa nyaman. + +## Conclusion + +Kami telah membawa Anda dari pernyataan masalah—*bagaimana cara create PNG from HTML*—ke solusi lengkap yang dapat dijalankan, yang **renders HTML to PNG**, **converts HTML to image**, dan **exports HTML as PNG** dengan kontrol detail atas ukuran, anti‑aliasing, dan hinting teks. + +Cobalah dengan halaman web Anda sendiri, ubah dimensi, dan bereksperimen dengan gaya font yang berbeda. Kodenya singkat, API‑nya intuitif, dan hasilnya tampak persis seperti tangkapan layar di browser—hanya lebih cepat dan sepenuhnya dapat diotomatisasi. + +Jika Anda menyukai panduan ini, lihat tutorial lain kami tentang manipulasi **render html document image**, seperti mengonversi HTML ke PDF atau menghasilkan snapshot SVG. Selamat coding, semoga PNG Anda selalu pixel‑perfect! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/indonesian/net/html-extensions-and-conversions/_index.md index 6ac5368ff..a2e5cc936 100644 --- a/html/indonesian/net/html-extensions-and-conversions/_index.md +++ b/html/indonesian/net/html-extensions-and-conversions/_index.md @@ -71,8 +71,12 @@ Pelajari cara mengompres file HTML menjadi arsip ZIP menggunakan C# dan Aspose.H Pelajari cara membuat dokumen HTML dengan teks berformat dan mengekspornya ke PDF menggunakan Aspose.HTML untuk .NET. ### [Simpan HTML sebagai ZIP – Tutorial Lengkap C#](./save-html-as-zip-complete-c-tutorial/) Pelajari cara menyimpan file HTML sebagai arsip ZIP menggunakan Aspose.HTML untuk .NET dengan contoh kode C# lengkap. +### [Simpan HTML sebagai ZIP – Panduan Lengkap C# untuk Mengonversi HTML ke ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Panduan lengkap C# untuk mengonversi HTML menjadi arsip ZIP menggunakan Aspose.HTML untuk .NET. ### [Simpan HTML ke ZIP di C# – Contoh In‑Memory Lengkap](./save-html-to-zip-in-c-complete-in-memory-example/) Pelajari cara menyimpan file HTML ke dalam arsip ZIP secara langsung di memori menggunakan C# dan Aspose.HTML. +### [Cara Mengompres HTML dari DOCX – Panduan Lengkap C#](./how-to-zip-html-from-docx-complete-c-guide/) +Pelajari cara mengompres file HTML yang dihasilkan dari DOCX menjadi arsip ZIP menggunakan C# dan Aspose.HTML. ## Kesimpulan diff --git a/html/indonesian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/indonesian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..e1bfe52e2 --- /dev/null +++ b/html/indonesian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Pelajari cara mengompres output HTML dari file DOCX, mengonversi docx + ke HTML, mengatur ukuran gambar, mengekspor Word ke PNG, dan cara mengatur font + tebal – kode langkah demi langkah. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: id +og_description: Kuasi cara mengompres output HTML dari file DOCX, mengonversi DOCX + ke HTML, mengatur ukuran gambar, mengekspor Word ke PNG, dan cara mengatur font + tebal dengan contoh C# yang jelas. +og_title: Cara Mengompres HTML dari DOCX – Panduan Lengkap C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Cara Mengompres HTML dari DOCX – Panduan Lengkap C# +url: /id/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Mengompres HTML dari DOCX – Panduan Lengkap C# + +Pernah bertanya-tanya **how to zip html** yang Anda hasilkan dari dokumen Word? Mungkin Anda membutuhkan satu arsip untuk dikirim ke klien atau disimpan di cloud, dan Anda tidak ingin folder penuh file terpisah. Dalam tutorial ini kami akan membahas cara mengonversi file .docx ke HTML, mengemas hasilnya ke dalam file ZIP, dan kemudian merender dokumen yang sama ke gambar PNG dengan ukuran khusus dan teks tebal. Sepanjang jalan kami juga akan membahas *convert docx to html*, *set image size*, *export word to png*, dan *how to set bold font*—semua dalam satu contoh yang kohesif. + +Pada akhir panduan ini Anda akan memiliki program C# yang siap dijalankan yang: + +* Memuat DOCX dari disk. +* Menyimpannya sebagai HTML sambil secara otomatis mengompres output menjadi ZIP. +* Merender PNG dengan lebar, tinggi, antialiasing, dan gaya font tebal yang tepat. + +Tidak ada skrip eksternal, tidak ada logika zip buatan tangan—hanya Aspose.Words untuk .NET API (atau perpustakaan setara lainnya) yang melakukan pekerjaan berat. + +--- + +## Prasyarat — Apa yang Anda Butuhkan Sebelum Memulai + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Menyediakan runtime untuk sintaks C# 10 yang digunakan di bawah. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | Menangani konversi DOCX → HTML, pengarsipan, dan perenderan gambar. | +| **A DOCX file** named `input.docx` in a folder you control | Dokumen sumber yang akan kami transformasikan. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Diperlukan untuk membuat `doc.zip` dan `out.png`. | + +Jika Anda menggunakan NuGet, instal paket dengan: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** Versi evaluasi gratis menambahkan watermark pada PNG yang dirender. Dapatkan lisensi untuk penggunaan produksi. + +--- + +## Langkah 1: Muat Dokumen Sumber + +Hal pertama yang kami lakukan adalah membaca file Word ke dalam memori. Ini merupakan dasar untuk **convert docx to html** dan untuk merender PNG nanti. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Mengapa ini penting:* +`Document` adalah objek utama; ia mem‑parsing paket .docx, menyelesaikan gaya, dan menyiapkan sumber daya untuk ekspor HTML maupun perenderan gambar. Jika file tidak ditemukan, sebuah pengecualian akan dilempar—pastikan jalurnya benar. + +--- + +## Langkah 2: Konfigurasikan Opsi Penyimpanan HTML – Inti dari **How to Zip HTML** + +Di sini kami memberi tahu Aspose.Words untuk menghasilkan HTML, menyimpan semua aset terkait (gambar, CSS) melalui penangan sumber daya khusus, dan akhirnya mengompres semuanya ke dalam satu arsip. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Apa yang Dilakukan `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Mengapa kami membutuhkan handler:* +Saat mengonversi **convert docx to html**, perpustakaan dapat menghasilkan banyak file tambahan (mis., `image001.png`). Handler menyela setiap operasi penyimpanan, memastikan semuanya masuk ke dalam ZIP alih‑alih folder terpisah. + +--- + +## Langkah 3: Simpan Dokumen sebagai HTML yang Dikompres + +Sekarang keajaiban terjadi. File HTML dan sumber dayanya ditulis langsung ke dalam `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Hasil:** +`YOUR_DIRECTORY/doc.zip` kini berisi: + +* `document.html` – markup utama. +* `document_files/` – subfolder dengan gambar, CSS, dan media tersemat apa pun. + +Anda dapat mengekstraknya untuk memverifikasi struktur, atau menyajikan ZIP langsung dari API web. + +--- + +## Langkah 4: Siapkan Opsi Perenderan Gambar – Mengontrol **Set Image Size** dan **How to Set Bold Font** + +Jika Anda membutuhkan snapshot visual dari file Word, Anda dapat merendernya ke PNG. Blok berikut menunjukkan cara menentukan dimensi tepat, mengaktifkan antialiasing, dan memaksa gaya tebal untuk semua teks. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Mengapa flag ini penting:* +- **Width/Height** memungkinkan Anda menyesuaikan PNG dengan tata letak UI Anda. +- **UseAntialiasing** melunakkan tepi, mencegah garis bergerigi. +- **FontStyle = Bold** menggantikan gaya inline apa pun di DOCX, memastikan PNG menampilkan tampilan tebal terlepas dari format asli. + +--- + +## Langkah 5: Render Dokumen ke PNG – Langkah **Export Word to PNG** + +Akhirnya, kami menggabungkan semuanya dan menghasilkan file gambar. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Apa yang akan Anda lihat:** +`out.png` yang tajam dengan ukuran 800 × 600, semua teks dirender tebal, dan semua grafik vektor di‑antialias. + +--- + +## Contoh Lengkap yang Berfungsi – Salin, Tempel, Jalankan + +Berikut adalah program lengkap, siap Anda masukkan ke dalam aplikasi konsol. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Output yang Diharapkan + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML terkompres + sumber daya (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, semua teks tebal, antialias. | + +Anda dapat membuka `doc.zip` dengan alat arsip apa pun, mengekstrak `document.html`, dan melihatnya di browser. Gambar akan muncul persis seperti yang dirender dari file Word asli. + +--- + +## Pertanyaan Umum & Kasus Tepi + +### Bagaimana jika saya membutuhkan format gambar yang berbeda? +Ganti ekstensi file di konstruktor `ImageRenderer` (`out.jpg`, `out.tiff`) dan sesuaikan `ImageSavingOptions` secara tepat. API secara otomatis memilih encoder yang benar. + +### Bisakah saya mengontrol tingkat kompresi ZIP? +`HtmlSaveOptions` menyediakan properti `ZipCompressionLevel` (mis., `CompressionLevel.BestCompression`). Atur sebelum memanggil `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### DOCX saya berisi gambar resolusi tinggi yang besar—apakah PNG akan menjadi sangat besar? +Ya, karena kami memaksa ukuran piksel tetap. Untuk menjaga ukuran file tetap kecil, turunkan `Width`/`Height` atau aktifkan `ImageResizeOptions` di dalam `ImageRenderingOptions`. + +### Bagaimana cara mempertahankan berat font asli alih‑alih memaksa tebal? +Cukup hapus baris `FontStyle = WebFontStyle.Bold`, atau atur secara kondisional berdasarkan flag yang Anda beri ke pengguna. + +### Apakah ini bekerja di Linux/macOS? +Tentu saja. Aspose.Words bersifat lintas‑platform; pastikan Anda memiliki runtime .NET yang sesuai terinstal. + +--- + +## Daftar Periksa Pemecahan Masalah + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` pada `input.docx` | Jalur salah atau file tidak ada | Verifikasi `YOUR_DIRECTORY/input.docx` ada; gunakan jalur absolut untuk pengujian. | +| `OutOfMemoryException` selama render PNG | Dokumen sangat besar atau dimensi gambar sangat besar | Kurangi `Width`/`Height` atau render halaman secara individual (`ImageRenderer.Render(pageIndex)`). | +| ZIP berisi folder `document_files` kosong | `MyResourceHandler` mengembalikan nama file berbeda atau melempar pengecualian | Pastikan `ResourceSaving` tidak membatalkan penyimpanan (`args.Cancel = false`). | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/indonesian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..3dbb02a35 --- /dev/null +++ b/html/indonesian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Simpan HTML sebagai ZIP dengan cepat menggunakan Aspose.HTML. Pelajari + cara mengonversi HTML ke ZIP menggunakan handler sumber daya khusus dan merender + HTML ke ZIP dalam beberapa langkah saja. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: id +og_description: Simpan HTML sebagai ZIP dengan Aspose.HTML. Panduan ini menunjukkan + cara mengonversi HTML ke ZIP, menggunakan penangan sumber daya khusus untuk merender + HTML ke ZIP secara efisien. +og_title: Simpan HTML sebagai ZIP – Tutorial C# Langkah demi Langkah +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Simpan HTML sebagai ZIP – Panduan Lengkap C# untuk Mengonversi HTML ke ZIP +url: /id/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save HTML as ZIP – Panduan Lengkap C# untuk Mengonversi HTML ke ZIP + +Pernah membutuhkan untuk **save HTML as ZIP** tetapi tidak yakin panggilan API mana yang harus digabungkan? Anda tidak sendirian. Banyak pengembang mengalami kebuntuan ketika mereka ingin menggabungkan halaman HTML bersama CSS, gambar, dan font menjadi satu arsip—terutama ketika mereka ingin semuanya tetap di memori sampai mereka memutuskan apa yang akan dilakukan dengan itu. + +Berita baik? Dengan Aspose.HTML Anda dapat **convert HTML to ZIP** dalam beberapa baris kode, berkat kelas `HtmlSaveOptions` dan **custom resource handler** yang memberi Anda kontrol penuh atas tempat setiap sumber daya disimpan. Dalam tutorial ini kami akan menjelaskan langkah‑langkah tepat untuk **render HTML to ZIP**, menyimpan semuanya di memori, dan secara opsional menulis file ke disk. Pada akhir tutorial Anda akan memiliki potongan kode yang dapat digunakan kembali dan dapat dimasukkan ke proyek .NET mana pun. + +## Apa yang Dibahas dalam Tutorial Ini + +* Bagaimana cara mendefinisikan string sumber HTML (atau memuatnya dari file). +* Bagaimana cara menginstansiasi `HTMLDocument` dengan Aspose.HTML. +* Bagaimana cara membuat **custom resource handler** yang mengembalikan `MemoryStream` untuk setiap sumber daya. +* Bagaimana cara mengonfigurasi `HtmlSaveOptions` untuk menghasilkan **ZIP archive** yang berisi HTML dan semua file dependensinya. +* Bagaimana cara menyimpan dokumen dan, jika Anda mau, menulis data dalam memori ke folder di disk. + +Tidak ada alat eksternal, tidak ada proses zip manual—hanya C# murni dan Aspose.HTML. + +> **Pro tip:** Jika Anda sudah menggunakan Aspose.PDF atau Aspose.Words, pola `ResourceHandler` yang sama juga berfungsi di sana, sehingga Anda dapat menggunakan kembali kode ini di berbagai jenis dokumen. + +--- + +## Langkah 1: Save HTML as ZIP – Definisikan Sumber HTML + +Pertama, kita memerlukan string yang berisi HTML yang ingin diarsipkan. Dalam proyek nyata Anda mungkin membaca ini dari file, basis data, atau respons API, tetapi untuk kejelasan kami akan menuliskan contoh kecil secara langsung. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Why this matters:** Konstruktor `HTMLDocument` mengharapkan baik jalur file maupun HTML mentah. Menyediakan string secara langsung menjaga seluruh proses tetap di memori, yang sempurna ketika Anda nanti ingin mengalirkan ZIP langsung ke klien. + +--- + +## Langkah 2: Convert HTML to ZIP – Muat HTMLDocument + +Sekarang kami memberikan string HTML ke Aspose.HTML. Argumen kedua (`"."`) memberi tahu perpustakaan di mana menyelesaikan URL relatif; menggunakan direktori saat ini bekerja untuk kebanyakan kasus sederhana. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **What’s happening:** `HTMLDocument` mem-parsing markup, membangun DOM, dan menyiapkan semua sumber daya yang terhubung (CSS, gambar, font) untuk rendering. Membungkusnya dalam blok `using` menjamin pembuangan sumber daya native yang tepat. + +--- + +## Langkah 3: Render HTML to ZIP – Buat Custom Resource Handler + +Aspose.HTML memungkinkan Anda memutuskan **di mana** setiap sumber daya ditulis. Dengan membuat subclass `ResourceHandler` kami dapat mengembalikan `MemoryStream` baru untuk setiap file yang perlu disimpan oleh renderer. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Why a custom handler?** Perilaku default menulis file ke sistem file. Dengan handler Anda dapat menyimpan semuanya di RAM, mengirim ZIP langsung ke respons web, atau bahkan mengenkripsi aliran secara langsung. + +--- + +## Langkah 4: Convert HTML to ZIP – Konfigurasikan Opsi Penyimpanan + +Berikut inti dari operasi. `HtmlSaveOptions` memberi tahu Aspose.HTML untuk menggabungkan semuanya ke dalam arsip ZIP (`SaveToArchive = true`) dan menggunakan `resourceHandler` kami untuk penyimpanan. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Key insight:** `ArchiveFileName` adalah nama yang akan muncul di dalam ZIP, bukan jalur di disk. Karena kami menggunakan handler berbasis memori, ZIP berada sepenuhnya di RAM sampai kami memutuskan apa yang akan dilakukan dengannya. + +--- + +## Langkah 5: Save HTML as ZIP – Simpan Arsip + +Akhirnya, kami meminta dokumen untuk menyimpan dirinya sendiri menggunakan opsi yang baru saja kami buat. Panggilan ini memicu pipeline rendering, memanggil handler kami untuk setiap sumber daya, dan menulis ZIP akhir ke memory stream yang kami sediakan. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Result:** Pada titik ini `resourceHandler` menyimpan `MemoryStream` untuk file HTML utama, plus stream tambahan untuk CSS, gambar, atau font yang direferensikan. File ZIP sepenuhnya dirakit di dalam stream tersebut. + +--- + +## Langkah 6: Custom Resource Handler – Sediakan Stream untuk Setiap Sumber Daya + +Berikut adalah implementasi `MyResourceHandler`. Metode `HandleResource` dipanggil sekali per sumber daya (HTML, CSS, gambar, font, …). Kami cukup mengembalikan `MemoryStream` baru setiap kali. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Why a fresh stream?** Setiap sumber daya membutuhkan kontainernya masing‑masing; menggunakan kembali satu stream akan merusak arsip. `MemoryStream` murah dan secara otomatis bertambah sesuai kebutuhan. + +--- + +## Langkah 7: Opsional – Tulis Sumber Daya yang Disimpan ke Disk + +Jika Anda ingin memeriksa file yang dihasilkan atau menyimpan salinan di server, `ResourceSaved` dipanggil setelah stream ditutup. Di sini kami menulis konten dalam memori ke folder yang Anda tentukan (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Edge case note:** Jika Anda menjalankan di lingkungan tanpa izin menulis (misalnya, Azure Functions), cukup lewati implementasi `ResourceSaved` atau ganti dengan unggahan ke penyimpanan cloud. + +--- + +## Contoh Lengkap yang Dapat Dijalankan (38 Baris) + +Berikut adalah kode lengkap yang siap ditempelkan ke aplikasi console. Kode ini mematuhi batas 15‑40 baris, menggunakan nama variabel yang deskriptif, dan menyertakan placeholder yang dapat Anda sesuaikan. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Output yang Diharapkan + +* Sebuah file `result.zip` muncul di dalam arsip dalam memori (Anda dapat mengambilnya dari `resourceHandler` jika menambahkan properti untuk mengekspos stream). +* Jika Anda mempertahankan implementasi `ResourceSaved`, file yang sama juga ditulis ke `YOUR_DIRECTORY/Output` di disk, mencerminkan struktur internal ZIP. + +--- + +## Pertanyaan yang Sering Diajukan (FAQ) + +**Q: Apakah ini bekerja dengan halaman HTML yang besar?** +A: Tentu saja. `MemoryStream` berkembang sesuai kebutuhan, tetapi untuk halaman multi‑megabyte Anda mungkin ingin streaming langsung ke `FileStream` untuk menghindari tekanan memori yang tinggi. Cukup ubah `HandleResource` untuk mengembalikan `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Bisakah saya mengenkripsi ZIP?** +A: Aspose.HTML tidak menyediakan enkripsi bawaan, tetapi setelah Anda mendapatkan `MemoryStream` Anda dapat memberikannya ke `System.IO.Compression.ZipArchive` dengan kata sandi, atau menggunakan pustaka pihak ketiga seperti SharpZipLib. + +**Q: Bagaimana dengan URL relatif di dalam HTML?** +A: Argumen kedua ke `HTMLDocument` (`"."`) memberi tahu Aspose.HTML untuk menyelesaikan jalur relatif terhadap direktori saat ini. Jika sumber daya Anda berada di tempat lain, berikan jalur dasar yang sesuai atau `UriResolver` khusus. + +--- + +## Kesimpulan + +Kami baru saja menunjukkan cara **save HTML as ZIP** menggunakan Aspose.HTML, **custom resource handler**, dan beberapa langkah konfigurasi sederhana. Pendekatan ini memungkinkan Anda **convert HTML to ZIP** sepenuhnya di memori, memberi fleksibilitas untuk mengalirkan hasil ke klien web, menyimpannya di basis data, atau menulisnya ke disk untuk penggunaan nanti. + +Silakan bereksperimen: ganti `MemoryStream` dengan stream penyimpanan cloud, tambahkan perlindungan kata sandi, atau proses batch puluhan halaman secara paralel. Pola inti—load, handle, configure, save—tetap sama, menjadikan ini blok bangunan yang dapat digunakan kembali untuk solusi .NET apa pun yang membutuhkan **render HTML to ZIP** atau **create ZIP from HTML**. + +Ada pertanyaan lebih lanjut tentang custom resource handling atau fitur Aspose.HTML lainnya? Tinggalkan komentar di bawah, dan selamat coding! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/italian/net/generate-jpg-and-png-images/_index.md index f6e8b2d8a..6cac82cbe 100644 --- a/html/italian/net/generate-jpg-and-png-images/_index.md +++ b/html/italian/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Impara a usare Aspose.HTML per .NET per manipolare documenti HTML, convertire HT Scopri come abilitare l'antialiasing durante la conversione di documenti DOCX in immagini PNG o JPG con Aspose.HTML per .NET. ### [Converti docx in PNG – crea archivio zip C# tutorial](./convert-docx-to-png-create-zip-archive-c-tutorial/) Impara a convertire documenti DOCX in PNG e a comprimerli in un archivio ZIP usando C# e Aspose.HTML. +### [Crea PNG da HTML in C# – Guida passo‑passo](./create-png-from-html-in-c-step-by-step-guide/) +Impara a generare immagini PNG da codice HTML usando C# e Aspose.HTML con istruzioni dettagliate passo dopo passo. ## Conclusione diff --git a/html/italian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/italian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..bbf51011f --- /dev/null +++ b/html/italian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: Crea PNG da HTML con Aspose.HTML. Scopri come rendere HTML in PNG, convertire + HTML in immagine, esportare HTML come PNG e generare rapidamente l'immagine di un + documento HTML. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: it +og_description: Crea PNG da HTML in C# con Aspose.HTML. Questa guida ti mostra come + rendere HTML in PNG, convertire HTML in immagine ed esportare HTML come PNG. +og_title: Crea PNG da HTML in C# – Guida completa alla programmazione +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Crea PNG da HTML in C# – Guida passo‑passo +url: /it/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea PNG da HTML in C# – Guida completa di programmazione + +Hai mai avuto bisogno di **creare PNG da HTML** ma non eri sicuro quale libreria ti avrebbe fornito un output nitido senza problemi? Non sei solo. Molti sviluppatori inciampano quando provano a trasformare una pagina web in una bitmap, soprattutto quando hanno bisogno di anti‑aliasing o di suggerimenti per i font personalizzati. + +In questo tutorial percorreremo una soluzione pratica usando **Aspose.HTML for .NET**. Alla fine saprai come **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, e persino regolare la pipeline di rendering per risultati perfetti. Niente superfluo—solo un esempio di codice funzionante, perché ogni riga è importante, e alcuni consigli esperti che avresti voluto conoscere prima. + +## Cosa ti serve + +- .NET 6+ (o .NET Framework 4.6+). +- Il pacchetto NuGet `Aspose.HTML` (version 23.9 o più recente). +- Un semplice file `input.html` che vuoi trasformare in un'immagine. +- Un IDE come Visual Studio 2022 (qualsiasi editor in grado di compilare C# va bene). + +È tutto. Nessun binario extra, nessun servizio esterno e nessun file di configurazione oscuro. Pronto? Immergiamoci. + +## Crea PNG da HTML – Passaggi fondamentali + +Di seguito suddividiamo l'intero processo in quattro blocchi logici. Ogni blocco corrisponde a un blocco di codice concreto, e ogni blocco è accompagnato da una breve spiegazione “perché”. Segui l'ordine, copia il codice, e avrai un PNG in `YOUR_DIRECTORY/output.png` in pochi secondi. + +### Passo 1: Carica il documento HTML + +La prima cosa da fare è fornire ad Aspose.HTML un oggetto documento con cui lavorare. Pensalo come consegnare al renderer una tela nuova che contiene già tutti i markup, CSS e le immagini referenziate dal file HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Perché è importante:* `HTMLDocument` analizza il file, risolve gli URL relativi e costruisce un albero DOM. Se il file non viene trovato, viene lanciata un'eccezione proprio qui—così intercetti i problemi subito, prima che inizi qualsiasi lavoro di rendering. + +### Passo 2: Configura le opzioni di rendering dell'immagine + +Successivamente indichiamo ad Aspose quanto grande dovrebbe essere l'immagine finale e se vogliamo l'anti‑aliasing. Queste opzioni influenzano direttamente la fedeltà visiva dell'operazione **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Perché è importante:* Dimensioni più grandi offrono più dettagli ma aumentano l'uso di memoria. `UseAntialiasing` è il segreto per un **export html as png** dall'aspetto professionale—senza di esso vedrai artefatti a gradini attorno al testo e alle grafiche vettoriali. + +### Passo 3: Ottimizza il rendering del testo (Hinting e stile del font) + +Se il tuo HTML utilizza font personalizzati o hai bisogno di stili grassetto/corsivo, dovrai abilitare l'hinting e impostare il `WebFontStyle` appropriato. L'hinting allinea i glifi ai bordi dei pixel, il che è fondamentale quando **convert html to image** a una risoluzione fissa. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Perché è importante:* L'hinting previene lettere sfocate, specialmente su schermi a bassa DPI. Combinare `Bold` e `Italic` dimostra come puoi sovrapporre più stili; naturalmente puoi scegliere solo uno o nessuno, a seconda del tuo design. + +### Passo 4: Renderizza il file PNG + +Infine istanziamo `ImageRenderer`, lo puntiamo al documento, gli forniamo il percorso di output e passiamo le opzioni che abbiamo creato. La chiamata `Render()` esegue tutto il lavoro pesante. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Perché è importante:* `ImageRenderer` rispetta ogni impostazione definita in precedenza—dimensione, anti‑aliasing, hinting del testo, stile del font. Quando `Render()` termina, hai un PNG completamente conforme che può essere visualizzato nei browser, caricato su storage cloud o incorporato nei report. + +> **Consiglio professionale:** Se ti serve un formato immagine diverso (JPEG, BMP, GIF), basta cambiare l'estensione del file nel percorso di output. Aspose seleziona automaticamente l'encoder corretto. + +## Renderizza HTML in PNG con Aspose.HTML – Esempio completo + +Unendo tutti i pezzi ottieni un unico programma autonomo. Copia il blocco qui sotto in una nuova app console e eseguilo; vedrai `output.png` apparire accanto al tuo HTML di origine. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Risultato atteso + +Dopo l'esecuzione dovresti vedere un file simile al mock‑up qui sotto (l'aspetto reale dipende dal contenuto del tuo HTML). + +![Esempio di creazione PNG da HTML](/images/html-to-png-sample.png "Esempio di output quando crei PNG da HTML usando Aspose.HTML") + +Il PNG conserverà layout, colori e font esattamente come il browser mostrerebbe la pagina—grazie al motore **render html document image** di Aspose. + +## Domande comuni e casi particolari + +### E se il mio HTML fa riferimento a immagini esterne? + +Aspose.HTML segue gli URL relativi basati sulla cartella di `input.html`. Se hai immagini archiviate altrove, puoi: + +1. Utilizzare URL assoluti (es., `https://example.com/logo.png`). +2. Impostare `htmlDocument.BaseUrl` per puntare alla cartella contenente le risorse. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Come regolare la DPI per output ad alta risoluzione? + +Puoi scalare le dimensioni di rendering mantenendo lo stesso rapporto d'aspetto, oppure impostare `renderingOptions.DPI` (il valore predefinito è 96). Per PNG pronti per la stampa, 300 DPI è comune: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Posso renderizzare più pagine da un singolo documento HTML? + +Sì. Se l'HTML contiene interruzioni di pagina CSS (`@media print { page-break-after: always; }`), Aspose genererà file PNG separati per ogni pagina quando usi `MultiPageImageRenderer`. Questo è uno scenario avanzato, ma si applica lo stesso principio **convert html to image**. + +### E per quanto riguarda il consumo di memoria? + +Renderizzare una pagina enorme (diversi migliaia di pixel di larghezza) può consumare centinaia di megabyte. Per mantenere basso l'uso di memoria: + +- Renderizzare alle dimensioni più piccole accettabili. +- Disattivare `UseAntialiasing` se la qualità non è critica. +- Rilasciare prontamente `HTMLDocument` e `ImageRenderer` usando le istruzioni `using` (come mostrato). + +## Renderizza immagine documento HTML – Prossimi passi + +Ora che hai padroneggiato le basi di **render html to png**, considera queste estensioni: + +- **Conversione batch:** Scorri una cartella di file HTML e genera PNG in un'unica operazione. +- **Watermarking:** Dopo il rendering, carica il PNG con `System.Drawing` o `ImageSharp` e sovrapponi un logo. +- **Generazione PDF:** Usa `PdfRenderer` (anche parte di Aspose.HTML) per creare PDF dalla stessa sorgente HTML. + +Ognuna di queste si basa sugli stessi concetti fondamentali appena appresi, quindi ti sentirai a tuo agio. + +## Conclusione + +Ti abbiamo guidato dalla dichiarazione del problema—*come creare PNG da HTML*—a una soluzione completa e eseguibile che **renders HTML to PNG**, **converts HTML to image**, e **exports HTML as PNG** con un controllo dettagliato su dimensione, anti‑aliasing e hinting del testo. + +Provalo con la tua pagina web, modifica le dimensioni e sperimenta con diversi stili di font. Il codice è breve, l'API è intuitiva e i risultati sembrano esattamente uno screenshot preso in un browser—solo più veloce e completamente automatizzabile. + +Se ti è piaciuta questa guida, dai un'occhiata ai nostri altri tutorial sulla manipolazione di **render html document image**, come la conversione di HTML in PDF o la generazione di snapshot SVG. Buon coding, e che i tuoi PNG siano sempre pixel‑perfect! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/italian/net/html-extensions-and-conversions/_index.md index fcf4daa30..5fc4912b6 100644 --- a/html/italian/net/html-extensions-and-conversions/_index.md +++ b/html/italian/net/html-extensions-and-conversions/_index.md @@ -67,12 +67,16 @@ Scopri come convertire HTML in TIFF con Aspose.HTML per .NET. Segui la nostra gu Scopri la potenza di Aspose.HTML per .NET: converti HTML in XPS senza sforzo. Prerequisiti, guida passo passo e FAQ incluse. ### [Come comprimere HTML in C# – Salva HTML in Zip](./how-to-zip-html-in-c-save-html-to-zip/) Scopri come comprimere un documento HTML in un file ZIP usando Aspose.HTML per .NET in C#. +### [Come comprimere HTML da DOCX – Guida completa C#](./how-to-zip-html-from-docx-complete-c-guide/) +Scopri come comprimere un documento HTML estratto da DOCX in un archivio ZIP usando Aspose.HTML per .NET in C#. ### [Creare PDF da HTML – Guida passo‑a‑passo C#](./create-pdf-from-html-c-step-by-step-guide/) Crea un PDF da HTML in C# con Aspose.HTML per .NET. Segui la nostra guida passo passo per una conversione semplice ed efficace. ### [Salva HTML come ZIP – Tutorial completo C#](./save-html-as-zip-complete-c-tutorial/) Salva HTML come archivio ZIP con Aspose.HTML per .NET. Guida passo passo per creare file ZIP contenenti HTML in C#. ### [Salva HTML in ZIP in C# – Esempio completo in memoria](./save-html-to-zip-in-c-complete-in-memory-example/) Scopri come salvare un documento HTML in un archivio ZIP interamente in memoria usando Aspose.HTML per .NET. +### [Salva HTML come ZIP – Guida completa C# per convertire HTML in ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Impara a convertire HTML in file ZIP con una guida completa in C# usando Aspose.HTML per .NET. ## Conclusione diff --git a/html/italian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/italian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..65f9251f6 --- /dev/null +++ b/html/italian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Impara come comprimere l'output HTML da un file DOCX, convertire DOCX + in HTML, impostare la dimensione dell'immagine, esportare Word in PNG e come impostare + il carattere in grassetto – passo dopo passo con il codice. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: it +og_description: Impara a comprimere l'output HTML da un file DOCX, convertire docx + in HTML, impostare la dimensione dell'immagine, esportare Word in PNG e come impostare + il carattere in grassetto con chiari esempi in C#. +og_title: Come comprimere HTML da DOCX – Guida completa C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Come zippare HTML da DOCX – Guida completa C# +url: /it/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come comprimere HTML da DOCX – Guida completa C# + +Ti sei mai chiesto **come comprimere html** che generi da un documento Word? Forse ti serve un unico archivio da inviare a un cliente o da archiviare nel cloud, e non vuoi una cartella piena di file sparsi. In questo tutorial vedremo come convertire un file .docx in HTML, raggruppare il risultato in un file ZIP e poi renderizzare lo stesso documento in un'immagine PNG con dimensioni personalizzate e testo in grassetto. Lungo il percorso tratteremo anche *convert docx to html*, *set image size*, *export word to png* e *how to set bold font*—tutto in un unico esempio coerente. + +Al termine di questa guida avrai un programma C# pronto all'uso che: + +* Carica un DOCX dal disco. +* Lo salva come HTML comprimendo automaticamente l'output. +* Renderizza un PNG con larghezza, altezza, antialiasing e stile del carattere in grassetto precisi. + +Nessuno script esterno, nessuna logica ZIP fatta a mano—solo l'API Aspose.Words per .NET (o qualsiasi libreria equivalente) che fa il lavoro pesante. + +--- + +## Prerequisiti — Cosa ti serve prima di iniziare + +| Requisito | Perché è importante | +|-----------|----------------------| +| **.NET 6.0+** (o .NET Framework 4.7.2) | Fornisce il runtime per la sintassi C# 10 usata di seguito. | +| **Aspose.Words for .NET** (o una libreria simile che supporta `HtmlSaveOptions` e `ImageRenderer`) | Gestisce la conversione DOCX → HTML, l'archiviazione e il rendering dell'immagine. | +| **Un file DOCX** chiamato `input.docx` in una cartella di tua scelta | Il documento sorgente che trasformeremo. | +| **Permesso di scrittura** nella directory di output (`YOUR_DIRECTORY`) | Necessario per creare `doc.zip` e `out.png`. | + +Se usi NuGet, installa il pacchetto con: + +```bash +dotnet add package Aspose.Words +``` + +> **Consiglio professionale:** La versione di valutazione gratuita aggiunge una filigrana al PNG renderizzato. Acquista una licenza per l'uso in produzione. + +--- + +## Passo 1: Carica il documento sorgente + +La prima cosa che facciamo è leggere il file Word in memoria. Questa è la base per **convert docx to html** e per il rendering del PNG successivo. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Perché è importante:* +`Document` è l'oggetto centrale; analizza il pacchetto .docx, risolve gli stili e prepara le risorse sia per l'esportazione HTML sia per il rendering dell'immagine. Se il file non viene trovato, viene lanciata un'eccezione—quindi assicurati che il percorso sia corretto. + +--- + +## Passo 2: Configura le opzioni di salvataggio HTML – Il cuore di **How to Zip HTML** + +Qui diciamo ad Aspose.Words di generare HTML, memorizzare tutte le risorse correlate (immagini, CSS) tramite un gestore di risorse personalizzato e infine comprimere tutto in un unico archivio. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Cosa fa `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Perché abbiamo bisogno di un gestore:* +Durante la conversione **convert docx to html**, la libreria può generare molti file ausiliari (ad es., `image001.png`). Il gestore intercetta ogni operazione di salvataggio, assicurando che tutto finisca all'interno del ZIP anziché in una cartella sparsa. + +--- + +## Passo 3: Salva il documento come HTML compresso + +Ora avviene la magia. I file HTML e le loro risorse vengono scritti direttamente in `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Risultato:** +`YOUR_DIRECTORY/doc.zip` ora contiene: + +* `document.html` – il markup principale. +* `document_files/` – una sottocartella con immagini, CSS e qualsiasi media incorporato. + +Puoi decomprimerlo per verificare la struttura, oppure servire il ZIP direttamente da un'API web. + +--- + +## Passo 4: Imposta le opzioni di rendering immagine – Controllare **Set Image Size** e **How to Set Bold Font** + +Se ti serve uno snapshot visivo del file Word, puoi renderizzarlo in PNG. Il blocco seguente mostra come definire le dimensioni esatte, abilitare l'antialiasing e forzare lo stile grassetto per tutto il testo. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Perché queste impostazioni sono importanti:* +- **Width/Height** ti permettono di adattare il PNG al layout della tua UI. +- **UseAntialiasing** leviga i bordi, evitando linee frastagliate. +- **FontStyle = Bold** sovrascrive qualsiasi stile inline nel DOCX, garantendo che il PNG abbia un aspetto in grassetto indipendentemente dalla formattazione originale. + +--- + +## Passo 5: Renderizza il documento in PNG – Il passo **Export Word to PNG** + +Infine, uniamo tutto e produciamo il file immagine. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Ciò che vedrai:** +Un nitido `out.png` che corrisponde alle dimensioni 800 × 600, con tutto il testo in grassetto e le grafiche vettoriali antialiasate. + +--- + +## Esempio completo funzionante – Copia, incolla, esegui + +Di seguito trovi il programma completo, pronto per essere inserito in una console app. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Output previsto + +| File | Posizione | Descrizione | +|------|-----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML compresso + risorse (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, tutto il testo in grassetto, antialiasato. | + +Puoi aprire `doc.zip` con qualsiasi strumento di archiviazione, estrarre `document.html` e visualizzarlo in un browser. L'immagine apparirà esattamente come renderizzata dal file Word originale. + +--- + +## Domande frequenti & casi particolari + +### E se ho bisogno di un formato immagine diverso? +Sostituisci l'estensione del file nel costruttore `ImageRenderer` (`out.jpg`, `out.tiff`) e regola `ImageSavingOptions` di conseguenza. L'API sceglie automaticamente l'encoder corretto. + +### Posso controllare il livello di compressione del ZIP? +`HtmlSaveOptions` espone una proprietà `ZipCompressionLevel` (ad es., `CompressionLevel.BestCompression`). Impostala prima di chiamare `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Il mio DOCX contiene immagini ad alta risoluzione molto grandi—il PNG sarà enorme? +Sì, perché forziamo una dimensione fissa in pixel. Per mantenere il file di dimensioni contenute, riduci `Width`/`Height` oppure abilita `ImageResizeOptions` dentro `ImageRenderingOptions`. + +### Come mantenere il peso originale del carattere invece di forzare il grassetto? +Rimuovi semplicemente la riga `FontStyle = WebFontStyle.Bold`, oppure impostala in modo condizionale basandoti su un flag esposto all'utente. + +### Funziona su Linux/macOS? +Assolutamente. Aspose.Words è cross‑platform; assicurati solo di avere il runtime .NET appropriato installato. + +--- + +## Checklist di risoluzione problemi + +| Sintomo | Probabile causa | Soluzione | +|---------|-----------------|-----------| +| `FileNotFoundException` su `input.docx` | Percorso errato o file mancante | Verifica che `YOUR_DIRECTORY/input.docx` esista; usa percorsi assoluti per i test. | +| `OutOfMemoryException` durante il rendering PNG | Documento molto grande o dimensioni immagine enormi | Riduci `Width`/`Height` o renderizza le pagine singolarmente (`ImageRenderer.Render(pageIndex)`). | +| ZIP contiene cartella `document_files` vuota | `MyResourceHandler` ha restituito un nome file diverso o ha generato un'eccezione | Assicurati che `ResourceSaving` non annulli il salvataggio (`args.Cancel = false`). | +| Testo non in grassetto in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/italian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..569adf19e --- /dev/null +++ b/html/italian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Salva HTML come ZIP rapidamente con Aspose.HTML. Scopri come convertire + HTML in ZIP usando un gestore di risorse personalizzato e rendere HTML in ZIP in + pochi passaggi. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: it +og_description: Salva HTML come ZIP con Aspose.HTML. Questa guida mostra come convertire + HTML in ZIP, utilizzando un gestore di risorse personalizzato per rendere HTML in + ZIP in modo efficiente. +og_title: Salva HTML come ZIP – Tutorial C# passo passo +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Salva HTML come ZIP – Guida completa C# per convertire HTML in ZIP +url: /it/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Salva HTML come ZIP – Guida completa C# per convertire HTML in ZIP + +Hai mai avuto bisogno di **salvare HTML come ZIP** ma non eri sicuro di quali chiamate API concatenare? Non sei solo. Molti sviluppatori si trovano in difficoltà quando vogliono raggruppare una pagina HTML insieme al suo CSS, immagini e font in un unico archivio—soprattutto quando desiderano che tutto rimanga in memoria fino a quando decidono cosa farne. + +La buona notizia? Con Aspose.HTML puoi **convertire HTML in ZIP** in poche righe, grazie alla classe `HtmlSaveOptions` e a un **gestore di risorse personalizzato** che ti dà il controllo totale su dove finisce ogni risorsa. In questo tutorial percorreremo i passaggi esatti per **renderizzare HTML in ZIP**, memorizzare tutto in memoria e, facoltativamente, scrivere i file su disco. Alla fine avrai uno snippet riutilizzabile da inserire in qualsiasi progetto .NET. + +## Cosa copre questo tutorial + +* Come definire la stringa di origine HTML (o caricarla da un file). +* Come istanziare un `HTMLDocument` con Aspose.HTML. +* Come creare un **gestore di risorse personalizzato** che restituisce un `MemoryStream` per ogni risorsa. +* Come configurare `HtmlSaveOptions` per generare un **archivio ZIP** contenente l'HTML e tutti i file dipendenti. +* Come salvare il documento e, se vuoi, scrivere i dati in‑memoria in una cartella su disco. + +Nessuno strumento esterno, nessuna compressione manuale—solo puro C# e Aspose.HTML. + +> **Consiglio professionale:** Se stai già usando Aspose.PDF o Aspose.Words, lo stesso modello `ResourceHandler` funziona anche lì, così puoi riutilizzare questo codice su più tipi di documento. + +--- + +## Passo 1: Salva HTML come ZIP – Definisci la sorgente HTML + +Per prima cosa abbiamo bisogno di una stringa che contenga l'HTML che vogliamo archiviare. In un progetto reale potresti leggere questo da un file, da un database o da una risposta API, ma per chiarezza inseriremo un piccolo esempio hard‑coded. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Perché è importante:** Il costruttore `HTMLDocument` si aspetta un percorso file o HTML grezzo. Fornire direttamente la stringa mantiene l'intero processo in memoria, il che è perfetto quando in seguito vuoi trasmettere lo ZIP direttamente a un client. + +--- + +## Passo 2: Converti HTML in ZIP – Carica l'HTMLDocument + +Ora passiamo la stringa HTML a Aspose.HTML. Il secondo argomento (`"."`) indica alla libreria dove risolvere gli URL relativi; usare la directory corrente funziona per la maggior parte dei casi semplici. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Cosa sta succedendo:** `HTMLDocument` analizza il markup, costruisce un DOM e prepara tutte le risorse collegate (CSS, immagini, font) per il rendering. Avvolgerlo in un blocco `using` garantisce il corretto rilascio delle risorse native. + +--- + +## Passo 3: Renderizza HTML in ZIP – Crea un Gestore di Risorse Personalizzato + +Aspose.HTML ti permette di decidere **dove** viene scritta ogni risorsa. Sottoclassando `ResourceHandler` possiamo restituire un nuovo `MemoryStream` per ogni file che il renderer deve salvare. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Perché un gestore personalizzato?** Il comportamento predefinito scrive i file sul file system. Con un gestore puoi tenere tutto in RAM, inviare lo ZIP direttamente a una risposta web, o persino crittografare i flussi al volo. + +--- + +## Passo 4: Converti HTML in ZIP – Configura le Opzioni di Salvataggio + +Ecco il cuore dell'operazione. `HtmlSaveOptions` indica ad Aspose.HTML di raggruppare tutto in un archivio ZIP (`SaveToArchive = true`) e di utilizzare il nostro `resourceHandler` per l'archiviazione. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Osservazione chiave:** `ArchiveFileName` è il nome che apparirà all'interno dello ZIP, non un percorso su disco. Poiché stiamo usando un gestore basato su memoria, lo ZIP vive interamente in RAM fino a quando decidiamo cosa farne. + +--- + +## Passo 5: Salva HTML come ZIP – Persiste l'Archivio + +Infine, chiediamo al documento di salvare se stesso usando le opzioni appena costruite. Questa chiamata avvia la pipeline di rendering, chiama il nostro gestore per ogni risorsa e scrive lo ZIP finale nei flussi di memoria che abbiamo fornito. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Risultato:** A questo punto `resourceHandler` contiene un `MemoryStream` per il file HTML principale, più flussi aggiuntivi per eventuali CSS, immagini o font a cui è stato fatto riferimento. Il file ZIP è completamente assemblato all'interno di questi flussi. + +--- + +## Passo 6: Gestore di Risorse Personalizzato – Fornisci un Flusso per Ogni Risorsa + +Di seguito è riportata l'implementazione di `MyResourceHandler`. Il metodo `HandleResource` viene chiamato una volta per risorsa (HTML, CSS, immagini, font, …). Restituiamo semplicemente un nuovo `MemoryStream` ogni volta. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Perché un nuovo flusso?** Ogni risorsa ha bisogno del proprio contenitore; riutilizzare un unico flusso corromperebbe l'archivio. `MemoryStream` è economico e cresce automaticamente secondo necessità. + +--- + +## Passo 7: Opzionale – Scrivi le Risorse Salvate su Disco + +Se desideri ispezionare i file generati o mantenere una copia sul server, `ResourceSaved` viene chiamato dopo la chiusura di un flusso. Qui scriviamo il contenuto in‑memoria in una cartella che specifichi (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Nota caso limite:** Se stai eseguendo in un ambiente senza permessi di scrittura (ad esempio Azure Functions), basta saltare l'implementazione di `ResourceSaved` o sostituirla con un upload su storage cloud. + +--- + +## Esempio completo, eseguibile (38 Linee) + +Di seguito trovi il codice completo pronto da incollare in un'app console. Rispetta il limite di 15‑40 righe, utilizza nomi di variabili descrittivi e include segnaposto che puoi modificare. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Output previsto + +* Un file `result.zip` appare all'interno dell'archivio in‑memoria (puoi recuperarlo da `resourceHandler` se aggiungi una proprietà per esporre il flusso). +* Se hai mantenuto l'implementazione di `ResourceSaved`, gli stessi file vengono anche scritti su disco in `YOUR_DIRECTORY/Output`, rispecchiando la struttura interna dello ZIP. + +--- + +## Domande Frequenti (FAQ) + +**Q: Funziona con pagine HTML di grandi dimensioni?** +A: Assolutamente. `MemoryStream` si espande secondo necessità, ma per pagine multi‑megabyte potresti voler streamare direttamente su un `FileStream` per evitare un'elevata pressione sulla memoria. Basta cambiare `HandleResource` per restituire `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Posso crittografare lo ZIP?** +A: Aspose.HTML non fornisce la crittografia integrata, ma dopo aver recuperato il `MemoryStream` puoi passarlo a `System.IO.Compression.ZipArchive` con una password, o usare una libreria di terze parti come SharpZipLib. + +**Q: E gli URL relativi all'interno dell'HTML?** +A: Il secondo argomento di `HTMLDocument` (`"."`) indica ad Aspose.HTML di risolvere i percorsi relativi rispetto alla directory corrente. Se le tue risorse si trovano altrove, passa il percorso base appropriato o un `UriResolver` personalizzato. + +--- + +## Conclusione + +Abbiamo appena mostrato come **salvare HTML come ZIP** usando Aspose.HTML, un **gestore di risorse personalizzato**, e alcuni semplici passaggi di configurazione. L'approccio ti consente di **convertire HTML in ZIP** interamente in memoria, offrendoti la flessibilità di trasmettere il risultato a un client web, archiviarlo in un database o scriverlo su disco per un uso successivo. + +Sentiti libero di sperimentare: sostituisci `MemoryStream` con uno stream di storage cloud, aggiungi protezione con password, o elabora in batch decine di pagine in parallelo. Il modello di base—carica, gestisci, configura, salva—rimane lo stesso, rendendo questo blocco di costruzione riutilizzabile per qualsiasi soluzione .NET che necessita di **renderizzare HTML in ZIP** o **creare ZIP da HTML**. + +Hai altre domande sulla gestione delle risorse personalizzate o su altre funzionalità di Aspose.HTML? Lascia un commento qui sotto, e buona programmazione! + +![Diagramma che mostra il flusso dalla sorgente HTML all'archivio ZIP in‑memoria](placeholder.png "esempio di salvataggio html come zip") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/japanese/net/generate-jpg-and-png-images/_index.md index 57de57175..b5c2898dc 100644 --- a/html/japanese/net/generate-jpg-and-png-images/_index.md +++ b/html/japanese/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Aspose.HTML for .NET を使用して HTML ドキュメントを操作したり DOCX 文書を PNG または JPG 画像に変換する際に、アンチエイリアシングを有効にして高品質な出力を得る手順を解説します。 ### [DOCX を PNG に変換 – ZIP アーカイブを作成する C# チュートリアル](./convert-docx-to-png-create-zip-archive-c-tutorial/) C# で DOCX を PNG に変換し、ZIP アーカイブを作成する方法を学びます。 +### [C# で HTML から PNG を作成する – ステップバイステップ ガイド](./create-png-from-html-in-c-step-by-step-guide/) +Aspose.HTML for .NET を使用し、C# で HTML を PNG 画像に変換する手順を詳しく解説します。 ## 結論 diff --git a/html/japanese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/japanese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..34005f6b8 --- /dev/null +++ b/html/japanese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTML を使用して HTML から PNG を作成します。HTML を PNG にレンダリングする方法、HTML を画像に変換する方法、HTML + を PNG としてエクスポートする方法、そして HTML ドキュメントの画像を迅速にレンダリングする方法を学びましょう。 +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: ja +og_description: C# と Aspose.HTML を使用して HTML から PNG を作成します。このガイドでは、HTML を PNG にレンダリングする方法、HTML + を画像に変換する方法、HTML を PNG としてエクスポートする方法を示します。 +og_title: C#でHTMLからPNGを作成する – 完全プログラミングガイド +tags: +- Aspose.HTML +- C# +- Image Rendering +title: C#でHTMLからPNGを作成する – ステップバイステップガイド +url: /ja/net/generate-jpg-and-png-images/create-png-from-html-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 から PNG を作成する – 完全プログラミングガイド + +HTML から PNG を **作成** したいと思ったことはありませんか?しかし、どのライブラリが手間なく鮮明な出力を提供してくれるか分からずに困ったことはありませんか?同じように悩む開発者は多いです。ウェブページをビットマップに変換しようとすると、特にアンチエイリアシングやカスタムフォントヒントが必要な場合に躓きがちです。 + +このチュートリアルでは **Aspose.HTML for .NET** を使ったハンズオンの解決策を順を追って解説します。最後まで読めば **render HTML to PNG**、**convert HTML to image**、**export HTML as PNG** の方法が分かり、完璧な結果を得るためにレンダリングパイプラインを微調整する方法も学べます。余計な説明は省き、動作するコード例と各行の意味、そして早く知っておきたかったプロのコツを紹介します。 + +## 必要なもの + +- .NET 6+(または .NET Framework 4.6+)。 +- `Aspose.HTML` NuGet パッケージ(バージョン 23.9 以降)。 +- 画像に変換したいシンプルな `input.html` ファイル。 +- Visual Studio 2022 などの IDE(C# をコンパイルできるエディタなら何でも可)。 + +以上です。余計なバイナリや外部サービス、難解な設定ファイルは不要です。準備はできましたか?さっそく始めましょう。 + +## HTML から PNG を作成する – 基本手順 + +以下では全体のプロセスを 4 つの論理的なチャンクに分割しています。各チャンクは具体的なコードブロックに対応し、短い「なぜ」説明が付随しています。順番通りに進めてコードをコピーすれば、数秒で `YOUR_DIRECTORY/output.png` に PNG が生成されます。 + +### 手順 1: HTML ドキュメントの読み込み + +最初に行うべきことは、Aspose.HTML に作業対象となるドキュメントオブジェクトを渡すことです。HTML ファイルが参照しているすべてのマークアップ、CSS、画像が既に含まれた新しいキャンバスをレンダラに渡すイメージです。 + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Why this matters:* `HTMLDocument` はファイルを解析し、相対 URL を解決して DOM ツリーを構築します。ファイルが見つからない場合はここで例外がスローされるため、レンダリング作業に入る前に問題を早期に検出できます。 + +### 手順 2: 画像レンダリングオプションの設定 + +次に、最終画像のサイズとアンチエイリアシングの有無を Aspose に指示します。これらのオプションは **render html to png** 操作の視覚的忠実度に直接影響します。 + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Why this matters:* 大きな寸法は詳細度を高めますが、メモリ使用量も増加します。`UseAntialiasing` はプロフェッショナルな見た目の **export html as png** に欠かせない秘密の調味料で、これが無いとテキストやベクターグラフィック周辺に階段状のアーティファクトが現れます。 + +### 手順 3: テキストレンダリングの微調整(ヒンティング&フォントスタイル) + +HTML がカスタムフォントを使用している、または太字・斜体のスタイリングが必要な場合は、ヒンティングを有効にし、適切な `WebFontStyle` を設定します。ヒンティングはグリフをピクセル境界に合わせるため、固定解像度で **convert html to image** する際に重要です。 + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Why this matters:* ヒンティングは特に低 DPI 画面で文字がぼやけるのを防ぎます。`Bold` と `Italic` を組み合わせることで複数スタイルを重ねられることを示しています。デザインに応じてどちらか一方だけ、または全く使用しない選択も可能です。 + +### 手順 4: PNG ファイルのレンダリング + +最後に `ImageRenderer` をインスタンス化し、ドキュメントと出力パスを指定し、これまで組み立てたオプションを渡します。`Render()` 呼び出しがすべての重い処理を実行します。 + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Why this matters:* `ImageRenderer` は前述の設定(サイズ、アンチエイリアシング、テキストヒンティング、フォントスタイル)をすべて尊重します。`Render()` が完了すると、ブラウザで表示できる、クラウドストレージにアップロードできる、レポートに埋め込める完全準拠の PNG が手に入ります。 + +> **Pro tip:** 別の画像形式(JPEG、BMP、GIF)が必要な場合は、出力パスの拡張子を変更するだけで OK です。Aspose が自動的に適切なエンコーダを選択します。 + +## Aspose.HTML を使用した HTML から PNG へのレンダリング – 完全例 + +すべてのパーツを組み合わせると、単一の自己完結型プログラムが完成します。下記ブロックを新しいコンソールアプリに貼り付けて実行すれば、`output.png` がソース HTML の隣に生成されます。 + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### 期待される結果 + +実行後、以下のモックアップに似たファイルが生成されます(実際の見た目は HTML コンテンツ次第です)。 + +![HTML から PNG を作成する例](/images/html-to-png-sample.png "Aspose.HTML を使用して HTML から PNG を作成したときのサンプル出力") + +この PNG はレイアウト、色、フォントをブラウザがページを表示するのと全く同じように保持します。これは Aspose 内部の **render html document image** エンジンのおかげです。 + +## よくある質問とエッジケース + +### HTML が外部画像を参照している場合は? + +Aspose.HTML は `input.html` があるフォルダを基準に相対 URL を解決します。画像が別の場所にある場合は、以下のいずれかを行ってください。 + +1. 絶対 URL を使用する(例: `https://example.com/logo.png`)。 +2. `htmlDocument.BaseUrl` にアセットが格納されたフォルダを指すパスを設定する。 + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### 高解像度出力のために DPI を調整するには? + +レンダリングサイズを同じアスペクト比で拡大するか、`renderingOptions.DPI`(デフォルトは 96)を設定します。印刷向け PNG では 300 DPI が一般的です。 + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### 単一の HTML ドキュメントから複数ページをレンダリングできるか? + +可能です。HTML に CSS のページブレーク(`@media print { page-break-after: always; }`)が含まれている場合、`MultiPageImageRenderer` を使用するとページごとに別々の PNG が生成されます。高度なシナリオですが、同じ **convert html to image** の原理が適用されます。 + +### メモリ消費は? + +数千ピクセル幅の巨大ページをレンダリングすると、数百メガバイトのメモリを消費することがあります。メモリ使用量を抑えるには: + +- 許容できる最小サイズでレンダリングする。 +- 品質がそれほど重要でなければ `UseAntialiasing` をオフにする。 +- `using` 文を使って `HTMLDocument` と `ImageRenderer` を速やかに破棄する(上記コード参照)。 + +## Render HTML Document Image – 次のステップ + +**render html to png** の基本をマスターした今、以下の拡張を検討してみてください。 + +- **バッチ変換:** フォルダ内の HTML ファイルをループし、一括で PNG を生成。 +- **透かし付与:** レンダリング後に `System.Drawing` や `ImageSharp` で PNG を読み込み、ロゴをオーバーレイ。 +- **PDF 生成:** 同じ HTML ソースから `PdfRenderer`(Aspose.HTML の一部)を使って PDF を作成。 + +これらはすべて、今回学んだコア概念に基づいているので、すぐに実装できます。 + +## 結論 + +*HTML から PNG を作成する* という課題から出発し、**renders HTML to PNG**、**converts HTML to image**、**exports HTML as PNG** を実現する完全な実装例へと導きました。サイズ、アンチエイリアシング、テキストヒンティングを細かく制御できる点が特徴です。 + +ぜひ自分のウェブページで試し、寸法を調整したりフォントスタイルを変えてみてください。コードは短く、API は直感的で、結果はブラウザで撮ったスクリーンショットと同等の品質です—しかも高速で完全に自動化可能です。 + +このガイドが役立ったなら、**render html document image** の操作に関する他のチュートリアル(HTML から PDF への変換や SVG スナップショット生成など)もチェックしてください。コーディングを楽しみながら、あなたの PNG が常にピクセルパーフェクトでありますように! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/japanese/net/html-extensions-and-conversions/_index.md index 4110fd8e8..f89282db9 100644 --- a/html/japanese/net/html-extensions-and-conversions/_index.md +++ b/html/japanese/net/html-extensions-and-conversions/_index.md @@ -73,11 +73,18 @@ Aspose.HTML for .NET のパワーを発見してください: HTML を XPS に ### [HTML を ZIP に保存 – 完全 C# チュートリアル](./save-html-as-zip-complete-c-tutorial/) Aspose.HTML for .NET を使用して、HTML コンテンツを ZIP アーカイブとして保存する方法をステップバイステップで解説します。 +### [HTML を ZIP に保存 – 完全 C# ガイド:HTML を ZIP に変換](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Aspose.HTML for .NET を使用し、HTML を ZIP に変換して保存する完全な C# 手順を解説します。 + ### [C# で HTML を Zip に圧縮する方法 – HTML を Zip に保存](./how-to-zip-html-in-c-save-html-to-zip/) C# と Aspose.HTML を使用して、HTML コンテンツを Zip アーカイブに保存する手順をステップバイステップで解説します。 + ### [C# で HTML を ZIP に保存 – 完全インメモリ例](./save-html-to-zip-in-c-complete-in-memory-example/) Aspose.HTML for .NET を使用して、HTML をメモリ内で ZIP アーカイブに保存する手順をステップバイステップで解説します。 +### [DOCX から HTML を ZIP に圧縮する – 完全 C# ガイド](./how-to-zip-html-from-docx-complete-c-guide/) +Aspose.HTML for .NET を使用し、DOCX から HTML を抽出し ZIP アーカイブに保存する完全な C# 手順を解説します。 + ## 結論 結論として、HTML の拡張と変換は、現代の Web 開発に不可欠な要素です。Aspose.HTML for .NET はプロセスを簡素化し、あらゆるレベルの開発者が利用できるようにします。当社のチュートリアルに従うことで、幅広いスキルを備えた熟練した Web 開発者になるための道を順調に進むことができます。 diff --git a/html/japanese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/japanese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..28343b855 --- /dev/null +++ b/html/japanese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,279 @@ +--- +category: general +date: 2026-04-26 +description: DOCXファイルからHTML出力をZIPにする方法、docxをHTMLに変換する方法、画像サイズの設定、WordをPNGにエクスポートする方法、太字フォントの設定方法をステップバイステップのコードで学ぶ。 +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: ja +og_description: DOCXファイルからHTML出力をZIPする方法、DOCXをHTMLに変換する方法、画像サイズの設定、WordをPNGにエクスポートする方法、そして太字フォントの設定方法を、明確なC#例とともにマスターする。 +og_title: DOCXからHTMLをZIPする方法 – 完全C#ガイド +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: DOCXからHTMLをZIPする方法 – 完全C#ガイド +url: /ja/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# DOCXからHTMLをZIPする方法 – 完全なC#ガイド + +Wordドキュメントから生成したHTMLを**ZIPする方法**を考えたことはありますか?クライアントに送付したりクラウドに保存したりするために、単一のアーカイブが必要で、ファイルが散らばったフォルダーは欲しくないかもしれません。このチュートリアルでは、.docx ファイルを HTML に変換し、結果を ZIP ファイルにまとめ、さらに同じドキュメントをカスタムサイズかつ太字テキストの PNG 画像としてレンダリングする手順を解説します。途中で *convert docx to html*、*set image size*、*export word to png*、*how to set bold font* もカバーし、すべてを一つの統合例で示します。 + +このガイドの最後までに、すぐに実行できる C# プログラムが手に入ります。 + +* ディスクから DOCX を読み込みます。 +* HTML として保存し、出力を自動的に ZIP に圧縮します。 +* 正確な幅・高さ、アンチエイリアス、太字フォントスタイルを持つ PNG をレンダリングします。 + +外部スクリプトや手作りの ZIP ロジックは不要です—重い処理は Aspose.Words for .NET API(または同等のライブラリ)が行います。 + +## 前提条件 — 開始前に必要なもの + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | 以下で使用する C# 10 構文の実行環境を提供します。 | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | DOCX → HTML の変換、アーカイブ、画像レンダリングを処理します。 | +| **A DOCX file** named `input.docx` in a folder you control | 変換対象となるソースドキュメントです。 | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | `doc.zip` と `out.png` を作成するために必要です。 | + +NuGet を使用している場合は、次のようにパッケージをインストールします: + +```bash +dotnet add package Aspose.Words +``` + +> **プロのコツ:** 無料評価版はレンダリングされた PNG に透かしを追加します。製品版で使用する場合はライセンスを取得してください。 + +## ステップ 1: ソースドキュメントの読み込み + +最初に Word ファイルをメモリに読み込みます。これは **convert docx to html** と、後で PNG をレンダリングするための基礎です。 + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*この重要性:* +`Document` は中心的なオブジェクトで、.docx パッケージを解析し、スタイルを解決し、HTML エクスポートと画像レンダリングの両方に必要なリソースを準備します。ファイルが見つからない場合は例外がスローされるので、パスが正しいことを確認してください。 + +## ステップ 2: HTML 保存オプションの設定 – **How to Zip HTML** の核心 + +ここでは Aspose.Words に HTML を生成させ、カスタムリソースハンドラを介してすべての関連アセット(画像、CSS)を保存し、最終的にすべてを単一のアーカイブに ZIP します。 + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### `MyResourceHandler` の役割 + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*ハンドラが必要な理由:* +**convert docx to html** を変換する際、ライブラリは多数の付随ファイル(例: `image001.png`)を生成することがあります。ハンドラは各保存操作をインターセプトし、すべてがフォルダーに散らばるのではなく ZIP 内に収められるようにします。 + +## ステップ 3: ドキュメントを ZIP された HTML として保存 + +ここで魔法が起きます。HTML ファイルとそのリソースが直接 `doc.zip` に書き込まれます。 + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**結果:** +`YOUR_DIRECTORY/doc.zip` には現在次が含まれます: + +* `document.html` – メインのマークアップ。 +* `document_files/` – 画像、CSS、埋め込みメディアを含むサブフォルダー。 + +構造を確認するために解凍するか、Web API から直接 ZIP を配信できます。 + +## ステップ 4: 画像レンダリングオプションの設定 – **Set Image Size** と **How to Set Bold Font** の制御 + +Word ファイルのビジュアルスナップショットが必要な場合、PNG にレンダリングできます。以下のブロックは、正確な寸法を定義し、アンチエイリアスを有効にし、すべてのテキストに太字スタイルを強制する方法を示しています。 + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*これらのフラグが重要な理由:* +- **Width/Height** は PNG を UI レイアウトに合わせて調整できます。 +- **UseAntialiasing** はエッジを滑らかにし、ギザギザを防ぎます。 +- **FontStyle = Bold** は DOCX のインラインスタイルを上書きし、元の書式に関係なく PNG が太字で表示されるようにします。 + +## ステップ 5: ドキュメントを PNG にレンダリング – **Export Word to PNG** 手順 + +最後に、すべてを結び付けて画像ファイルを生成します。 + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**期待される結果:** +800 × 600 のサイズに一致し、すべてのテキストが太字でレンダリングされ、ベクターグラフィックはアンチエイリアス処理された鮮明な `out.png` が生成されます。 + +## 完全動作例 – コピーして貼り付け、実行 + +以下はコンソールアプリに貼り付けてすぐに実行できる完全なプログラムです。 + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### 期待される出力 + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML とリソース(`document.html`、`document_files/…`)を ZIP したもの。 | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 の PNG、すべてのテキストが太字でアンチエイリアス処理されています。 | + +`doc.zip` は任意のアーカイブツールで開き、`document.html` を抽出してブラウザーで表示できます。画像は元の Word ファイルからレンダリングされたものと全く同じになります。 + +## よくある質問とエッジケース + +### 別の画像形式が必要な場合は? + +`ImageRenderer` コンストラクタのファイル拡張子(`out.jpg`、`out.tiff` など)を変更し、`ImageSavingOptions` をそれに合わせて調整してください。API が自動的に適切なエンコーダーを選択します。 + +### ZIP の圧縮レベルを制御できますか? + +`HtmlSaveOptions` には `ZipCompressionLevel` プロパティ(例: `CompressionLevel.BestCompression`)があり、`Save` を呼び出す前に設定できます。 + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### DOCX に高解像度の大きな画像が含まれている場合、PNG は巨大になりますか? + +はい、固定ピクセルサイズを強制しているためです。ファイルサイズを小さく抑えるには、`Width`/`Height` を下げるか、`ImageRenderingOptions` 内で `ImageResizeOptions` を有効にしてください。 + +### 太字を強制せずに元のフォントウェイトを保持するには? + +`FontStyle = WebFontStyle.Bold` 行を削除するだけで、またはユーザーに公開するフラグに基づいて条件付きで設定すれば、元のフォントウェイトを保持できます。 + +### Linux/macOS でも動作しますか? + +もちろんです。Aspose.Words はクロスプラットフォームで、適切な .NET ランタイムがインストールされていれば動作します。 + +## トラブルシューティングチェックリスト + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Wrong path or missing file | Verify `YOUR_DIRECTORY/input.docx` exists; use absolute paths for testing. | +| `OutOfMemoryException` during PNG render | Very large document or huge image dimensions | Reduce `Width`/`Height` or render pages individually (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returned a different file name or threw | Ensure `ResourceSaving` does not cancel the save (`args.Cancel = false`). | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/japanese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..5ce70eae5 --- /dev/null +++ b/html/japanese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,328 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTMLでHTMLをZIPとしてすばやく保存。カスタムリソースハンドラを使用してHTMLをZIPに変換し、数ステップでHTMLをZIPにレンダリングする方法を学びましょう。 +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: ja +og_description: Aspose.HTMLでHTMLをZIPとして保存する。このガイドでは、カスタムリソースハンドラを使用してHTMLをZIPに効率的に変換する方法を示します。 +og_title: HTMLをZIP形式で保存 – ステップバイステップ C# チュートリアル +tags: +- Aspose.HTML +- C# +- HTML rendering +title: HTMLをZIPとして保存 – HTMLをZIPに変換する完全なC#ガイド +url: /ja/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML を ZIP として保存 – HTML を ZIP に変換する完全 C# ガイド + +Ever needed to **save HTML as ZIP** but weren’t sure which API calls to chain together? You’re not alone. Many developers hit a wall when they want to bundle an HTML page together with its CSS, images, and fonts into a single archive—especially when they want the whole thing to stay in memory until they decide what to do with it. + +HTML を **ZIP として保存** したいと思ったことはありませんか?どの API 呼び出しを組み合わせればよいか分からないこともあるでしょう。あなたは一人ではありません。多くの開発者は、HTML ページとその CSS、画像、フォントを単一のアーカイブにまとめたいときに壁にぶつかります—特に、結果をメモリ上に保持したまま、後でどうするか決めたい場合はなおさらです。 + +The good news? With Aspose.HTML you can **convert HTML to ZIP** in a handful of lines, thanks to the `HtmlSaveOptions` class and a **custom resource handler** that gives you total control over where each resource ends up. In this tutorial we’ll walk through the exact steps to **render HTML to ZIP**, store everything in memory, and optionally write the files out to disk. By the end you’ll have a reusable snippet you can drop into any .NET project. + +良いニュースです。Aspose.HTML を使えば、`HtmlSaveOptions` クラスと **カスタム リソース ハンドラ** を利用して、数行のコードで **HTML を ZIP に変換** できます。このチュートリアルでは、**HTML を ZIP にレンダリング**し、すべてをメモリに保存し、必要に応じてディスクに書き出す手順を詳しく解説します。最後まで読めば、任意の .NET プロジェクトに貼り付けられる再利用可能なスニペットが手に入ります。 + +## What This Tutorial Covers + +## このチュートリアルでカバーする内容 + +* How to define the HTML source string (or load it from a file). +* HTML ソース文字列(またはファイルからの読み込み)を定義する方法。 + +* How to instantiate an `HTMLDocument` with Aspose.HTML. +* `HTMLDocument` を Aspose.HTML でインスタンス化する方法。 + +* How to create a **custom resource handler** that returns a `MemoryStream` for each resource. +* `MemoryStream` を各リソースに返す **カスタム リソース ハンドラ** の作成方法。 + +* How to configure `HtmlSaveOptions` to generate a **ZIP archive** containing the HTML and all its dependent files. +* `HtmlSaveOptions` を設定して、HTML とすべての依存ファイルを含む **ZIP アーカイブ** を生成する方法。 + +* How to save the document and, if you like, write the in‑memory data to a folder on disk. +* ドキュメントを保存し、必要ならメモリ内データをディスク上のフォルダーに書き出す方法。 + +No external tools, no manual zipping—just pure C# and Aspose.HTML. + +外部ツール不要、手動での zip 作成も不要—純粋な C# と Aspose.HTML だけです。 + +> **Pro tip:** If you’re already using Aspose.PDF or Aspose.Words, the same `ResourceHandler` pattern works there too, so you can reuse this code across multiple document types. + +> **プロのコツ:** すでに Aspose.PDF や Aspose.Words を使用している場合、同じ `ResourceHandler` パターンがそれらでも機能するので、複数のドキュメントタイプでこのコードを再利用できます。 + +--- + +## Step 1: Save HTML as ZIP – Define the HTML Source + +## ステップ 1: HTML を ZIP として保存 – HTML ソースの定義 + +First we need a string that holds the HTML we want to archive. In a real project you might read this from a file, a database, or an API response, but for clarity we’ll hard‑code a tiny example. + +まず、アーカイブしたい HTML を保持する文字列が必要です。実際のプロジェクトではファイルやデータベース、API のレスポンスから読み込むこともありますが、ここでは分かりやすく小さな例をハードコードします。 + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Why this matters:** The `HTMLDocument` constructor expects either a file path or raw HTML. Supplying the string directly keeps the whole process in memory, which is perfect when you later want to stream the ZIP directly to a client. + +> **なぜ重要か:** `HTMLDocument` コンストラクタはファイルパスまたは生の HTML のいずれかを期待します。文字列を直接渡すことで、プロセス全体がメモリ上に留まり、後で ZIP をクライアントに直接ストリーム配信したい場合に最適です。 + +--- + +## Step 2: Convert HTML to ZIP – Load the HTMLDocument + +## ステップ 2: HTML を ZIP に変換 – HTMLDocument のロード + +Now we hand the HTML string to Aspose.HTML. The second argument (`"."`) tells the library where to resolve relative URLs; using the current directory works for most simple cases. + +ここで HTML 文字列を Aspose.HTML に渡します。第2引数 (`"."`) は相対 URL の解決先ディレクトリを指定します。現在のディレクトリを使用することで、ほとんどのシンプルなケースで機能します。 + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **What’s happening:** `HTMLDocument` parses the markup, builds a DOM, and prepares all linked resources (CSS, images, fonts) for rendering. Wrapping it in a `using` block guarantees proper disposal of native resources. + +> **何が起きているか:** `HTMLDocument` はマークアップを解析し、DOM を構築し、レンダリングのためにすべてのリンクされたリソース(CSS、画像、フォント)を準備します。`using` ブロックでラップすることで、ネイティブリソースの適切な破棄が保証されます。 + +--- + +## Step 3: Render HTML to ZIP – Create a Custom Resource Handler + +## ステップ 3: HTML を ZIP にレンダリング – カスタム リソース ハンドラの作成 + +Aspose.HTML lets you decide **where** each resource is written. By subclassing `ResourceHandler` we can hand back a fresh `MemoryStream` for every file that the renderer needs to save. + +Aspose.HTML では、各リソースを書き込む **場所** を決めることができます。`ResourceHandler` をサブクラス化することで、レンダラが保存する必要のある各ファイルに対して新しい `MemoryStream` を返すことができます。 + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Why a custom handler?** The default behavior writes files to the file system. With a handler you can keep everything in RAM, push the ZIP straight to a web response, or even encrypt the streams on the fly. + +> **なぜカスタムハンドラか?** デフォルトの動作はファイルシステムに書き込むことです。ハンドラを使用すれば、すべてを RAM に保持したり、ZIP を直接ウェブレスポンスに送ったり、ストリームをリアルタイムで暗号化したりできます。 + +--- + +## Step 4: Convert HTML to ZIP – Configure Save Options + +## ステップ 4: HTML を ZIP に変換 – 保存オプションの設定 + +Here’s the heart of the operation. `HtmlSaveOptions` tells Aspose.HTML to bundle everything into a ZIP archive (`SaveToArchive = true`) and to use our `resourceHandler` for storage. + +これが操作の核心です。`HtmlSaveOptions` は Aspose.HTML に対し、すべてを ZIP アーカイブにまとめるよう指示します(`SaveToArchive = true`)そして保存先として `resourceHandler` を使用します。 + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Key insight:** `ArchiveFileName` is the name that will appear inside the ZIP, not a path on disk. Because we’re using a memory‑based handler, the ZIP lives entirely in RAM until we decide what to do with it. + +> **重要なポイント:** `ArchiveFileName` は ZIP 内に表示される名前であり、ディスク上のパスではありません。メモリベースのハンドラを使用しているため、ZIP は RAM 内に完全に存在し、何をするか決めるまで保持されます。 + +--- + +## Step 5: Save HTML as ZIP – Persist the Archive + +## ステップ 5: HTML を ZIP として保存 – アーカイブの永続化 + +Finally, we ask the document to save itself using the options we just built. This call triggers the rendering pipeline, calls our handler for each resource, and writes the final ZIP to the memory streams we provided. + +最後に、先ほど構築したオプションを使ってドキュメント自身に保存させます。この呼び出しはレンダリングパイプラインを起動し、各リソースに対してハンドラを呼び出し、最終的な ZIP を提供したメモリストリームに書き込みます。 + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Result:** At this point `resourceHandler` holds a `MemoryStream` for the main HTML file, plus additional streams for any CSS, images, or fonts that were referenced. The ZIP file is fully assembled inside those streams. + +> **結果:** この時点で `resourceHandler` はメイン HTML ファイル用の `MemoryStream` と、参照された CSS、画像、フォント用の追加ストリームを保持しています。ZIP ファイルはそれらのストリーム内に完全に組み立てられています。 + +--- + +## Step 6: Custom Resource Handler – Provide a Stream for Each Resource + +## ステップ 6: カスタム リソース ハンドラ – 各リソースにストリームを提供 + +Below is the implementation of `MyResourceHandler`. The `HandleResource` method is called once per resource (HTML, CSS, images, fonts, …). We simply hand back a new `MemoryStream` each time. + +以下は `MyResourceHandler` の実装です。`HandleResource` メソッドはリソース(HTML、CSS、画像、フォント、…)ごとに一度呼び出されます。毎回新しい `MemoryStream` を返すだけです。 + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Why a fresh stream?** Each resource needs its own container; reusing a single stream would corrupt the archive. `MemoryStream` is cheap and automatically grows as needed. + +> **なぜ新しいストリームか?** 各リソースは独自のコンテナが必要です。単一のストリームを再利用するとアーカイブが壊れます。`MemoryStream` は軽量で、必要に応じて自動的に拡張します。 + +--- + +## Step 7: Optional – Write Saved Resources to Disk + +## ステップ 7: オプション – 保存されたリソースをディスクに書き出す + +If you’d like to inspect the generated files or keep a copy on the server, `ResourceSaved` is called after a stream is closed. Here we write the in‑memory content to a folder you specify (`YOUR_DIRECTORY/Output`). + +生成されたファイルを確認したりサーバーにコピーを残したい場合、ストリームが閉じられた後に `ResourceSaved` が呼び出されます。ここでは、メモリ内の内容を指定したフォルダー(`YOUR_DIRECTORY/Output`)に書き出します。 + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Edge case note:** If you’re running in an environment without write permissions (e.g., Azure Functions), simply skip the `ResourceSaved` implementation or replace it with a cloud‑storage upload. + +> **エッジケースの注意:** 書き込み権限がない環境(例: Azure Functions)で実行している場合、`ResourceSaved` の実装を省略するか、クラウドストレージへのアップロードに置き換えてください。 + +--- + +## Full, Runnable Example (38 Lines) + +## 完全な実行可能サンプル(38 行) + +Below is the complete code ready to paste into a console app. It respects the 15‑40 line limit, uses descriptive variable names, and includes placeholders you can adjust. + +以下はコンソールアプリに貼り付けてすぐに実行できる完全なコードです。15‑40 行の制限を守り、説明的な変数名を使用し、調整可能なプレースホルダーが含まれています。 + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Expected Output + +### 期待される出力 + +* A `result.zip` file appears inside the in‑memory archive (you can retrieve it from `resourceHandler` if you add a property to expose the stream). +* `result.zip` ファイルがメモリ内アーカイブに作成されます(ストリームを公開するプロパティを `resourceHandler` に追加すれば取得可能です)。 + +* If you kept the `ResourceSaved` implementation, the same files are also written to `YOUR_DIRECTORY/Output` on disk, mirroring the ZIP’s internal structure. +* `ResourceSaved` 実装を残している場合、同じファイルがディスク上の `YOUR_DIRECTORY/Output` にも書き出され、ZIP の内部構造と同じ構造になります。 + +--- + +## Frequently Asked Questions (FAQ) + +## よくある質問 (FAQ) + +**Q: Does this work with large HTML pages?** +**Q: 大きな HTML ページでも動作しますか?** + +A: Absolutely. `MemoryStream` expands as needed, but for multi‑megabyte pages you might want to stream directly to a `FileStream` to avoid high memory pressure. Just change `HandleResource` to return `File.Create(Path.Combine("temp", info.FileName))`. +A: もちろんです。`MemoryStream` は必要に応じて拡張しますが、数メガバイト規模のページの場合、メモリ負荷を抑えるために直接 `FileStream` にストリームする方が良いかもしれません。`HandleResource` を `File.Create(Path.Combine("temp", info.FileName))` を返すように変更すれば実現できます。 + +**Q: Can I encrypt the ZIP?** +**Q: ZIP を暗号化できますか?** + +A: Aspose.HTML doesn’t provide built‑in encryption, but after you retrieve the `MemoryStream` you can feed it to `System.IO.Compression.ZipArchive` with a password, or use a third‑party library like SharpZipLib. +A: Aspose.HTML には組み込みの暗号化機能はありませんが、`MemoryStream` を取得した後、`System.IO.Compression.ZipArchive` にパスワードを設定して渡すか、SharpZipLib のようなサードパーティライブラリを使用して暗号化できます。 + +**Q: What about relative URLs inside the HTML?** +**Q: HTML 内の相対 URL はどう扱いますか?** + +A: The second argument to `HTMLDocument` (`"."`) tells Aspose.HTML to resolve relative paths against the current directory. If your resources live elsewhere, pass the appropriate base path or a custom `UriResolver`. +A: `HTMLDocument` の第2引数 (`"."`) は、相対パスを現在のディレクトリに対して解決するよう Aspose.HTML に指示します。リソースが別の場所にある場合は、適切なベースパスやカスタム `UriResolver` を渡してください。 + +--- + +## Conclusion + +## 結論 + +We’ve just shown how to **save HTML as ZIP** using Aspose.HTML, a **custom resource handler**, and a few straightforward configuration steps. The approach lets you **convert HTML to ZIP** entirely in memory, giving you the flexibility to stream the result to a web client, store it in a database, or write it to disk for later use. + +ここでは、Aspose.HTML、**カスタム リソース ハンドラ**、およびいくつかのシンプルな設定手順を使用して **HTML を ZIP として保存**する方法を示しました。このアプローチにより、**HTML を ZIP に変換**する処理を完全にメモリ上で行うことができ、結果をウェブクライアントにストリーム配信したり、データベースに保存したり、後で使用するためにディスクに書き出したりする柔軟性が得られます。 + +Feel free to experiment: swap `MemoryStream` for a cloud storage stream, add password protection, or batch‑process dozens of pages in parallel. The core pattern—load, handle, configure, save—remains the same, making this a reusable building block for any .NET solution that needs to **render HTML to ZIP** or **create ZIP from HTML**. + +自由に試してみてください:`MemoryStream` をクラウドストレージのストリームに置き換えたり、パスワード保護を追加したり、数十ページを並列でバッチ処理したりできます。基本パターン(ロード → ハンドラ → 設定 → 保存)は変わらないので、**HTML を ZIP にレンダリング**したり **HTML から ZIP を作成**したりする必要がある任意の .NET ソリューションの再利用可能な構成要素となります。 + +Got more questions about custom resource handling or other Aspose.HTML features? Drop a comment below, and happy coding! + +カスタム リソース ハンドリングや他の Aspose.HTML 機能についてさらに質問がありますか?下のコメント欄に書き込んでください。コーディングを楽しんで! + +![HTML ソースからメモリ内 ZIP アーカイブへのフローを示す図](placeholder.png "HTML を ZIP として保存 の例") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/korean/net/generate-jpg-and-png-images/_index.md index 2f2fd11d0..639b9572b 100644 --- a/html/korean/net/generate-jpg-and-png-images/_index.md +++ b/html/korean/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Aspose.HTML for .NET을 .NET 프로젝트에 통합하는 것은 번거롭지 DOCX 문서를 PNG 또는 JPG 이미지로 변환할 때 안티앨리어싱을 적용하는 방법을 단계별로 안내합니다. ### [DOCX를 PNG로 변환하고 ZIP 아카이브 만들기 C# 튜토리얼](./convert-docx-to-png-create-zip-archive-c-tutorial/) C#을 사용해 DOCX 파일을 PNG 이미지로 변환하고, 결과를 ZIP 파일로 압축하는 방법을 단계별로 안내합니다. +### [C#에서 HTML을 PNG로 만들기 – 단계별 가이드](./create-png-from-html-in-c-step-by-step-guide/) +C#를 사용해 HTML을 PNG 이미지로 변환하는 방법을 단계별로 안내합니다. ## 결론 diff --git a/html/korean/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/korean/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..edf643266 --- /dev/null +++ b/html/korean/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTML를 사용하여 HTML에서 PNG를 생성합니다. HTML을 PNG로 렌더링하는 방법, HTML을 이미지로 + 변환하는 방법, HTML을 PNG로 내보내는 방법, 그리고 HTML 문서 이미지를 빠르게 렌더링하는 방법을 배워보세요. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: ko +og_description: Aspose.HTML를 사용하여 C#에서 HTML을 PNG로 만들기. 이 가이드는 HTML을 PNG로 렌더링하고, HTML을 + 이미지로 변환하며, HTML을 PNG로 내보내는 방법을 보여줍니다. +og_title: C#에서 HTML을 PNG로 변환하기 – 완전한 프로그래밍 가이드 +tags: +- Aspose.HTML +- C# +- Image Rendering +title: C#에서 HTML을 PNG로 만들기 – 단계별 가이드 +url: /ko/net/generate-jpg-and-png-images/create-png-from-html-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을 PNG로 만들기 – 완전 프로그래밍 가이드 + +HTML에서 PNG를 **생성**해야 할 때, 어떤 라이브러리를 사용해야 깔끔한 결과를 얻을 수 있을지 고민한 적이 있나요? 당신만 그런 것이 아닙니다. 웹 페이지를 비트맵으로 변환하려다 특히 안티앨리어싱이나 사용자 정의 폰트 힌트가 필요할 때 많은 개발자들이 어려움을 겪습니다. + +이 튜토리얼에서는 **Aspose.HTML for .NET**을 사용한 실전 솔루션을 단계별로 살펴봅니다. 끝까지 따라오면 **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG** 방법을 알게 되고, 완벽한 결과를 위해 렌더링 파이프라인을 미세 조정하는 방법도 배울 수 있습니다. 불필요한 내용은 없습니다—작동하는 코드 예제, 각 라인이 중요한 이유, 그리고 미리 알았으면 좋았을 몇 가지 팁을 제공합니다. + +## 준비 사항 + +- .NET 6+ (또는 .NET Framework 4.6+). +- `Aspose.HTML` NuGet 패키지 (버전 23.9 이상). +- 그림으로 변환하고 싶은 간단한 `input.html` 파일. +- Visual Studio 2022와 같은 IDE (C#을 컴파일할 수 있는 편집기면 충분합니다). + +그게 전부입니다. 추가 바이너리, 외부 서비스, 복잡한 설정 파일이 필요 없습니다. 준비되셨나요? 바로 시작해봅시다. + +## HTML을 PNG로 만들기 – 핵심 단계 + +아래에서는 전체 과정을 네 개의 논리적 블록으로 나눕니다. 각 블록은 구체적인 코드 조각과 짧은 “왜” 설명이 함께 제공됩니다. 순서를 따라가며 코드를 복사하면 몇 초 안에 `YOUR_DIRECTORY/output.png` 파일이 생성됩니다. + +### Step 1: Load the HTML Document + +먼저 Aspose.HTML에 작업할 문서 객체를 제공해야 합니다. 이는 렌더러에게 이미 마크업, CSS, 이미지가 모두 포함된 새 캔버스를 전달하는 것과 같습니다. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*왜 중요한가:* `HTMLDocument`는 파일을 파싱하고 상대 URL을 해석하며 DOM 트리를 구축합니다. 파일을 찾을 수 없으면 여기서 예외가 발생하므로, 렌더링 작업을 시작하기 전에 문제를 조기에 발견할 수 있습니다. + +### Step 2: Configure Image Rendering Options + +다음으로 최종 이미지의 크기와 안티‑앨리어싱 여부를 Aspose에 알려줍니다. 이 옵션들은 **render html to png** 작업의 시각적 정확도에 직접적인 영향을 미칩니다. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*왜 중요한가:* 큰 차원은 더 많은 디테일을 제공하지만 메모리 사용량이 증가합니다. `UseAntialiasing`은 전문가 수준의 **export html as png**를 위한 비밀 소스이며, 이를 사용하지 않으면 텍스트와 벡터 그래픽 주변에 계단 현상이 나타납니다. + +### Step 3: Fine‑Tune Text Rendering (Hinting & Font Style) + +HTML에 사용자 정의 폰트가 있거나 굵게/기울임 스타일이 필요하다면 힌팅을 활성화하고 적절한 `WebFontStyle`을 설정해야 합니다. 힌팅은 고정 해상도에서 **convert html to image** 할 때 글리프를 픽셀 경계에 맞추어 주어 매우 중요합니다. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*왜 중요한가:* 힌팅은 특히 저 DPI 화면에서 흐릿한 글자를 방지합니다. `Bold`와 `Italic`을 결합하면 여러 스타일을 겹쳐 적용할 수 있음을 보여주며, 필요에 따라 하나만 선택하거나 전혀 사용하지 않을 수도 있습니다. + +### Step 4: Render the PNG File + +마지막으로 `ImageRenderer`를 인스턴스화하고, 문서를 지정한 뒤 출력 경로와 앞서 만든 옵션을 전달합니다. `Render()` 호출이 모든 무거운 작업을 수행합니다. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*왜 중요한가:* `ImageRenderer`는 앞서 정의한 모든 설정—크기, 안티‑앨리어싱, 텍스트 힌팅, 폰트 스타일—을 정확히 반영합니다. `Render()`가 완료되면 브라우저에서 페이지를 표시하거나 클라우드 스토리지에 업로드하거나 보고서에 삽입할 수 있는 완전한 PNG가 생성됩니다. + +> **Pro tip:** 다른 이미지 형식(JPEG, BMP, GIF)이 필요하면 출력 경로의 파일 확장자를 바꾸기만 하면 됩니다. Aspose가 자동으로 올바른 인코더를 선택합니다. + +## Aspose.HTML으로 HTML을 PNG로 렌더링 – 전체 예제 + +모든 조각을 합치면 하나의 독립 실행형 프로그램이 됩니다. 아래 블록을 새 콘솔 앱에 복사하고 실행하면 `output.png`가 원본 HTML 옆에 생성됩니다. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Expected Result + +실행 후 아래 모형과 유사한 파일이 생성됩니다(실제 모습은 HTML 내용에 따라 달라집니다). + +![HTML에서 PNG 생성 예시](/images/html-to-png-sample.png "Aspose.HTML을 사용하여 HTML을 PNG로 만들 때의 샘플 출력") + +PNG는 레이아웃, 색상, 폰트를 브라우저가 페이지를 표시하는 방식과 정확히 동일하게 보존합니다—이는 Aspose 내부의 **render html document image** 엔진 덕분입니다. + +## Common Questions & Edge Cases + +### What if My HTML References External Images? + +Aspose.HTML은 `input.html`이 위치한 폴더를 기준으로 상대 URL을 따라갑니다. 이미지가 다른 곳에 저장돼 있다면 다음 중 하나를 선택하세요: + +1. 절대 URL 사용(예: `https://example.com/logo.png`). +2. `htmlDocument.BaseUrl`을 자산이 있는 폴더로 지정. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### How Do I Adjust DPI for High‑Resolution Output? + +렌더링 크기를 비율 그대로 확대하거나 `renderingOptions.DPI`(기본값 96)를 설정할 수 있습니다. 인쇄용 PNG에서는 300 DPI가 일반적입니다: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Can I Render Multiple Pages from a Single HTML Document? + +가능합니다. HTML에 CSS 페이지 구분(`@media print { page-break-after: always; }`)이 포함돼 있으면 `MultiPageImageRenderer`를 사용할 때 페이지당 별도의 PNG 파일을 생성합니다. 이는 고급 시나리오이지만 동일한 **convert html to image** 원리가 적용됩니다. + +### What About Memory Consumption? + +수천 픽셀 너비의 거대한 페이지를 렌더링하면 수백 메가바이트가 소모될 수 있습니다. 메모리 사용량을 낮추려면: + +- 가능한 가장 작은 허용 차원으로 렌더링합니다. +- 품질이 크게 중요하지 않다면 `UseAntialiasing`을 끕니다. +- `using` 구문을 사용해 `HTMLDocument`와 `ImageRenderer`를 즉시 해제합니다(예시 참조). + +## Render HTML Document Image – Next Steps + +이제 **render html to png** 기본을 마스터했으니 다음 확장 기능을 고려해 보세요: + +- **Batch conversion:** 폴더에 있는 여러 HTML 파일을 한 번에 순회하며 PNG를 생성합니다. +- **Watermarking:** 렌더링 후 `System.Drawing` 또는 `ImageSharp`으로 PNG를 로드하고 로고를 오버레이합니다. +- **PDF generation:** 동일한 HTML 소스로 PDF를 만들기 위해 `PdfRenderer`(Aspose.HTML의 일부)를 사용합니다. + +이 모든 기능은 방금 배운 핵심 개념을 기반으로 하므로 바로 적용할 수 있습니다. + +## Conclusion + +우리는 *HTML에서 PNG를 어떻게 만들까*라는 문제에서 시작해 **renders HTML to PNG**, **converts HTML to image**, **exports HTML as PNG**를 완전하고 실행 가능한 솔루션으로 제공했습니다. 크기, 안티‑앨리어싱, 텍스트 힌팅을 세밀하게 제어할 수 있습니다. + +자신만의 웹 페이지로 직접 시도해 보고, 차원을 조정하고, 다양한 폰트 스타일을 실험해 보세요. 코드는 짧고 API는 직관적이며, 결과는 브라우저에서 스크린샷을 찍은 것과 동일하지만 더 빠르고 완전 자동화됩니다. + +이 가이드를 즐기셨다면 **render html document image** 조작에 관한 다른 튜토리얼(예: HTML을 PDF로 변환하거나 SVG 스냅샷 생성)도 확인해 보세요. 즐거운 코딩 되시고, PNG가 언제나 픽셀 완벽하길 바랍니다! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/korean/net/html-extensions-and-conversions/_index.md index 38fc3bd7e..35f14a1a2 100644 --- a/html/korean/net/html-extensions-and-conversions/_index.md +++ b/html/korean/net/html-extensions-and-conversions/_index.md @@ -67,12 +67,14 @@ Aspose.HTML for .NET을 사용하여 HTML을 TIFF로 변환하는 방법을 알 .NET용 Aspose.HTML의 힘을 알아보세요: HTML을 XPS로 손쉽게 변환하세요. 필수 조건, 단계별 가이드, FAQ가 포함되어 있습니다. ### [C#에서 HTML을 Zip으로 압축하는 방법 – HTML을 Zip으로 저장](./how-to-zip-html-in-c-save-html-to-zip/) C#과 Aspose.HTML을 사용해 HTML 파일을 ZIP 압축 파일로 저장하는 단계별 가이드를 제공합니다. -### [스타일이 적용된 텍스트로 HTML 문서 만들기 및 PDF로 내보내기 – 전체 가이드](./create-html-document-with-styled-text-and-export-to-pdf-full/) -Aspose.HTML for .NET을 사용하여 스타일이 적용된 텍스트가 포함된 HTML 문서를 만들고 PDF로 내보내는 전체 가이드를 확인하세요. ### [HTML을 ZIP으로 저장 – 전체 C# 튜토리얼](./save-html-as-zip-complete-c-tutorial/) Aspose.HTML for .NET을 사용해 HTML을 ZIP 파일로 저장하는 전체 C# 단계별 튜토리얼. ### [C#에서 HTML을 ZIP으로 저장 – 완전 인메모리 예제](./save-html-to-zip-in-c-complete-in-memory-example/) Aspose.HTML for .NET을 사용하여 메모리 내에서 HTML을 ZIP 파일로 저장하는 방법을 단계별로 안내합니다. +### [HTML을 ZIP으로 저장 – 변환을 위한 전체 C# 가이드](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Aspose.HTML for .NET을 사용하여 HTML을 ZIP 파일로 변환하고 저장하는 전체 C# 단계별 가이드. +### [DOCX에서 HTML을 Zip으로 압축하는 방법 – 완전 C# 가이드](./how-to-zip-html-from-docx-complete-c-guide/) +Aspose.HTML for .NET을 사용해 DOCX 파일에서 HTML을 추출하고 ZIP 파일로 저장하는 전체 C# 단계별 가이드. ## 결론 diff --git a/html/korean/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/korean/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..f8b83e2ee --- /dev/null +++ b/html/korean/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,294 @@ +--- +category: general +date: 2026-04-26 +description: DOCX 파일에서 HTML 출력을 zip하는 방법, docx를 HTML로 변환하는 방법, 이미지 크기 설정, 워드를 PNG로 + 내보내는 방법 및 굵은 글꼴을 설정하는 방법을 단계별 코드로 배워보세요. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: ko +og_description: DOCX 파일에서 HTML 출력을 압축하는 방법, docx를 HTML로 변환하는 방법, 이미지 크기 설정, 워드를 PNG로 + 내보내는 방법, 그리고 굵은 글꼴을 설정하는 방법을 명확한 C# 예제로 마스터하세요. +og_title: DOCX에서 HTML을 압축하는 방법 – 완전한 C# 가이드 +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: DOCX에서 HTML을 압축하는 방법 – 완전한 C# 가이드 +url: /ko/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# DOCX에서 HTML을 ZIP으로 압축하는 방법 – 완전한 C# 가이드 + +Word 문서에서 생성한 **HTML을 ZIP으로 압축**하는 방법이 궁금하셨나요? 클라이언트에게 전달하거나 클라우드에 저장하기 위해 파일이 흩어져 있는 폴더 대신 하나의 아카이브가 필요할 때가 있습니다. 이 튜토리얼에서는 .docx 파일을 HTML로 변환하고, 결과물을 ZIP 파일로 묶은 뒤, 같은 문서를 사용자 지정 크기와 굵은 텍스트를 적용한 PNG 이미지로 렌더링하는 과정을 단계별로 살펴봅니다. 진행하면서 *convert docx to html*, *set image size*, *export word to png*, *how to set bold font* 등을 하나의 예제로 모두 다룰 것입니다. + +이 가이드를 끝까지 따라오면 다음과 같은 실행 가능한 C# 프로그램을 얻게 됩니다: + +* 디스크에서 DOCX를 로드합니다. +* HTML로 저장하면서 자동으로 출력물을 ZIP으로 압축합니다. +* 정확한 너비·높이, 안티앨리어싱, 굵은 폰트 스타일을 적용한 PNG를 렌더링합니다. + +외부 스크립트 없이, 손수 구현한 ZIP 로직 없이—오직 Aspose.Words for .NET API(또는 동등한 라이브러리)만으로 모든 작업을 수행합니다. + +--- + +## Prerequisites — 시작하기 전에 준비할 것 + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | 아래 예제에서 사용하는 C# 10 구문을 실행할 런타임을 제공합니다. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | DOCX → HTML 변환, 아카이빙, 이미지 렌더링을 담당합니다. | +| **A DOCX file** named `input.docx` in a folder you control | 변환할 원본 문서입니다. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | `doc.zip`와 `out.png`를 생성하려면 쓰기 권한이 필요합니다. | + +NuGet을 사용한다면 다음 명령으로 패키지를 설치합니다: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** 무료 평가판은 렌더링된 PNG에 워터마크를 삽입합니다. 프로덕션에서는 라이선스를 구매하세요. + +--- + +## Step 1: Load the Source Document + +첫 번째 단계는 Word 파일을 메모리로 읽어들이는 것입니다. 이는 **convert docx to html**과 이후 PNG 렌더링의 기반이 됩니다. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Why this matters:* +`Document`는 핵심 객체로, .docx 패키지를 파싱하고 스타일을 해석하며 HTML 내보내기와 이미지 렌더링에 필요한 리소스를 준비합니다. 파일을 찾을 수 없으면 예외가 발생하니 경로를 정확히 확인하세요. + +--- + +## Step 2: Configure HTML Save Options – The Core of **How to Zip HTML** + +여기서는 Aspose.Words에 HTML을 생성하도록 지시하고, 모든 관련 자산(이미지, CSS)을 사용자 정의 리소스 핸들러를 통해 처리한 뒤, 최종적으로 하나의 ZIP 아카이브에 압축하도록 설정합니다. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### What `MyResourceHandler` Does + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Why we need a handler:* +**convert docx to html** 과정에서 라이브러리는 `image001.png`와 같은 보조 파일을 다수 생성할 수 있습니다. 핸들러는 각 저장 작업을 가로채어 모든 파일이 별도의 폴더가 아니라 ZIP 안에 들어가도록 보장합니다. + +--- + +## Step 3: Save the Document as Zipped HTML + +이제 마법이 일어납니다. HTML 파일과 그 리소스가 바로 `doc.zip`에 기록됩니다. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Result:** +`YOUR_DIRECTORY/doc.zip` 안에는 다음이 포함됩니다: + +* `document.html` – 메인 마크업 파일. +* `document_files/` – 이미지, CSS 및 임베디드 미디어가 들어 있는 서브 폴더. + +구조를 확인하려면 압축을 풀어 보거나, 웹 API에서 ZIP을 직접 제공할 수 있습니다. + +--- + +## Step 4: Set Up Image Rendering Options – Controlling **Set Image Size** and **How to Set Bold Font** + +Word 파일의 시각적 스냅샷이 필요하다면 PNG로 렌더링하면 됩니다. 아래 블록은 정확한 차원 지정, 안티앨리어싱 활성화, 모든 텍스트에 굵은 스타일을 강제 적용하는 방법을 보여줍니다. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Why these flags matter:* +- **Width/Height**는 PNG를 UI 레이아웃에 맞게 조정할 수 있게 해줍니다. +- **UseAntialiasing**은 가장자리를 부드럽게 하여 거친 라인을 방지합니다. +- **FontStyle = Bold**는 DOCX에 있는 인라인 스타일을 무시하고, PNG가 굵은 텍스트로 표시되도록 강제합니다. + +--- + +## Step 5: Render the Document to PNG – The **Export Word to PNG** Step + +마지막으로 모든 설정을 적용해 이미지 파일을 생성합니다. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**What you’ll see:** +800 × 600 크기의 선명한 `out.png`가 생성되며, 모든 텍스트가 굵게 렌더링되고 벡터 그래픽은 안티앨리어싱 처리됩니다. + +--- + +## Full Working Example – Copy, Paste, Run + +아래는 콘솔 앱에 바로 붙여넣어 실행할 수 있는 전체 프로그램 코드입니다. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Expected Output + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | Zipped HTML + resources (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, all text bold, antialiased. | + +`doc.zip`을 任意의 압축 프로그램으로 열어 `document.html`을 추출하고 브라우저에서 확인할 수 있습니다. 이미지 역시 원본 Word 파일에서 렌더링된 그대로 표시됩니다. + +--- + +## Common Questions & Edge Cases + +### What if I need a different image format? +`ImageRenderer` 생성자에 파일 확장자를 (`out.jpg`, `out.tiff` 등) 바꾸고 `ImageSavingOptions`를 적절히 조정하면 됩니다. API가 자동으로 올바른 인코더를 선택합니다. + +### Can I control the compression level of the ZIP? +`HtmlSaveOptions`에는 `ZipCompressionLevel` 속성이 있습니다(예: `CompressionLevel.BestCompression`). `Save` 호출 전에 설정하세요. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### My DOCX contains large high‑resolution pictures—will the PNG be huge? +예, 고정 픽셀 크기를 강제하기 때문에 파일이 커집니다. 파일 크기를 줄이려면 `Width`/`Height`를 낮추거나 `ImageRenderingOptions` 안에 `ImageResizeOptions`를 활성화하세요. + +### How do I keep the original font weight instead of forcing bold? +`FontStyle = WebFontStyle.Bold` 라인을 삭제하거나, 사용자 플래그에 따라 조건부로 적용하면 원본 폰트 굵기를 유지할 수 있습니다. + +### Does this work on Linux/macOS? +전혀 문제 없습니다. Aspose.Words는 크로스‑플랫폼이며, 해당 .NET 런타임만 설치되어 있으면 됩니다. + +--- + +## Troubleshooting Checklist + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Wrong path or missing file | Verify `YOUR_DIRECTORY/input.docx` exists; use absolute paths for testing. | +| `OutOfMemoryException` during PNG render | Very large document or huge image dimensions | Reduce `Width`/`Height` or render pages individually (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returned a different file name or threw | Ensure `ResourceSaving` does not cancel the save (`args.Cancel = false`). | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/korean/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..12c6d0410 --- /dev/null +++ b/html/korean/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTML를 사용하여 HTML을 ZIP으로 빠르게 저장하세요. 사용자 지정 리소스 핸들러를 이용해 HTML을 ZIP으로 + 변환하고 몇 단계만으로 HTML을 ZIP으로 렌더링하는 방법을 배워보세요. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: ko +og_description: Aspose.HTML를 사용하여 HTML을 ZIP으로 저장합니다. 이 가이드는 사용자 정의 리소스 핸들러를 활용해 HTML을 + 효율적으로 ZIP으로 변환하는 방법을 보여줍니다. +og_title: HTML을 ZIP으로 저장 – 단계별 C# 튜토리얼 +tags: +- Aspose.HTML +- C# +- HTML rendering +title: HTML을 ZIP으로 저장 – HTML을 ZIP으로 변환하는 완전한 C# 가이드 +url: /ko/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML을 ZIP으로 저장 – HTML을 ZIP으로 변환하는 완전 C# 가이드 + +HTML을 **ZIP으로 저장**해야 할 때, 어떤 API 호출을 연결해야 할지 몰라 고민한 적 있나요? 당신만 그런 것이 아닙니다. 많은 개발자들이 HTML 페이지와 그 CSS, 이미지, 폰트를 하나의 아카이브로 묶으려 할 때, 특히 그 전체를 메모리 상에 유지하면서 나중에 어떻게 할지 결정하고 싶을 때 벽에 부딪히곤 합니다. + +좋은 소식은? Aspose.HTML을 사용하면 `HtmlSaveOptions` 클래스와 **맞춤형 리소스 핸들러** 덕분에 몇 줄만으로 **HTML을 ZIP으로 변환**할 수 있습니다. 이 튜토리얼에서는 **HTML을 ZIP으로 렌더링**하고, 모든 데이터를 메모리에 저장한 뒤 필요에 따라 디스크에 파일을 기록하는 정확한 단계를 살펴봅니다. 마지막까지 하면 .NET 프로젝트 어디에든 삽입할 수 있는 재사용 가능한 코드 스니펫을 얻게 됩니다. + +## 이 튜토리얼에서 다루는 내용 + +* HTML 소스 문자열을 정의하는 방법(또는 파일에서 로드하는 방법). +* Aspose.HTML을 사용해 `HTMLDocument`를 인스턴스화하는 방법. +* 각 리소스에 대해 `MemoryStream`을 반환하는 **맞춤형 리소스 핸들러**를 만드는 방법. +* HTML과 모든 종속 파일을 포함하는 **ZIP 아카이브**를 생성하도록 `HtmlSaveOptions`를 구성하는 방법. +* 문서를 저장하고, 원한다면 메모리 내 데이터를 디스크의 폴더에 기록하는 방법. + +외부 도구도, 수동 압축도 필요 없습니다—순수 C#와 Aspose.HTML만 있으면 됩니다. + +> **Pro tip:** 이미 Aspose.PDF 또는 Aspose.Words를 사용하고 있다면, 동일한 `ResourceHandler` 패턴을 그곳에서도 사용할 수 있으므로 이 코드를 여러 문서 유형에 재사용할 수 있습니다. + +--- + +## 단계 1: HTML을 ZIP으로 저장 – HTML 소스 정의 + +먼저 아카이브할 HTML을 담고 있는 문자열이 필요합니다. 실제 프로젝트에서는 파일, 데이터베이스, API 응답 등에서 읽어올 수 있지만, 여기서는 이해를 돕기 위해 작은 예제를 하드코딩하겠습니다. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **왜 중요한가:** `HTMLDocument` 생성자는 파일 경로나 원시 HTML 중 하나를 기대합니다. 문자열을 직접 전달하면 전체 과정이 메모리 내에서 이루어져, 이후 ZIP을 클라이언트로 바로 스트리밍하고 싶을 때 이상적입니다. + +## 단계 2: HTML을 ZIP으로 변환 – HTMLDocument 로드 + +이제 HTML 문자열을 Aspose.HTML에 전달합니다. 두 번째 인수(`"."`)는 라이브러리에게 상대 URL을 어디서 해석할지 알려줍니다; 현재 디렉터리를 사용하는 것이 대부분의 간단한 경우에 작동합니다. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **무슨 일이 일어나나요:** `HTMLDocument`는 마크업을 파싱하고 DOM을 구축하며, 렌더링을 위해 모든 연결된 리소스(CSS, 이미지, 폰트)를 준비합니다. `using` 블록으로 감싸면 네이티브 리소스가 적절히 해제됩니다. + +## 단계 3: HTML을 ZIP으로 렌더링 – 맞춤형 리소스 핸들러 만들기 + +Aspose.HTML은 각 리소스가 **어디에** 기록될지 결정할 수 있게 해줍니다. `ResourceHandler`를 서브클래싱하면 렌더러가 저장해야 하는 각 파일에 대해 새로운 `MemoryStream`을 반환할 수 있습니다. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **왜 맞춤형 핸들러인가?** 기본 동작은 파일 시스템에 파일을 기록합니다. 핸들러를 사용하면 모든 것을 RAM에 유지하고, ZIP을 바로 웹 응답으로 전송하거나 스트림을 실시간으로 암호화할 수도 있습니다. + +## 단계 4: HTML을 ZIP으로 변환 – 저장 옵션 구성 + +이것이 작업의 핵심입니다. `HtmlSaveOptions`는 Aspose.HTML에 모든 것을 ZIP 아카이브(`SaveToArchive = true`)로 묶고, 저장을 위해 우리의 `resourceHandler`를 사용하도록 지시합니다. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **핵심 인사이트:** `ArchiveFileName`은 ZIP 내부에 표시될 이름이며, 디스크상의 경로가 아닙니다. 메모리 기반 핸들러를 사용하기 때문에 ZIP은 우리가 어떻게 할지 결정할 때까지 전적으로 RAM에 존재합니다. + +## 단계 5: HTML을 ZIP으로 저장 – 아카이브 영구 저장 + +마지막으로, 방금 만든 옵션을 사용해 문서 자체를 저장하도록 요청합니다. 이 호출은 렌더링 파이프라인을 트리거하고, 각 리소스에 대해 우리의 핸들러를 호출하며, 최종 ZIP을 제공한 메모리 스트림에 기록합니다. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **결과:** 이제 `resourceHandler`는 메인 HTML 파일에 대한 `MemoryStream`과 참조된 CSS, 이미지, 폰트 등에 대한 추가 스트림을 보유합니다. ZIP 파일은 이러한 스트림 내부에 완전히 조립됩니다. + +## 단계 6: 맞춤형 리소스 핸들러 – 각 리소스에 스트림 제공 + +아래는 `MyResourceHandler` 구현입니다. `HandleResource` 메서드는 리소스당 한 번씩 호출됩니다(HTML, CSS, 이미지, 폰트 등). 우리는 매번 새로운 `MemoryStream`을 반환합니다. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **왜 새로운 스트림인가?** 각 리소스는 자체 컨테이너가 필요합니다; 하나의 스트림을 재사용하면 아카이브가 손상됩니다. `MemoryStream`은 비용이 적고 필요에 따라 자동으로 확장됩니다. + +## 단계 7: 선택 사항 – 저장된 리소스를 디스크에 기록 + +생성된 파일을 확인하거나 서버에 복사본을 보관하고 싶다면, 스트림이 닫힌 후 `ResourceSaved`가 호출됩니다. 여기서는 지정한 폴더(`YOUR_DIRECTORY/Output`)에 메모리 내 내용을 기록합니다. + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **예외 상황 주의:** 쓰기 권한이 없는 환경(예: Azure Functions)에서 실행 중이라면 `ResourceSaved` 구현을 생략하거나 클라우드 스토리지 업로드로 교체하면 됩니다. + +## 전체 실행 가능한 예제 (38 줄) + +아래는 콘솔 앱에 바로 붙여넣을 수 있는 전체 코드입니다. 15‑40줄 제한을 지키며, 설명적인 변수명을 사용하고, 조정 가능한 플레이스홀더를 포함합니다. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### 예상 출력 + +* 메모리 내 아카이브에 `result.zip` 파일이 생성됩니다(`resourceHandler`에 스트림을 노출하는 속성을 추가하면 해당 스트림을 가져올 수 있습니다). +* `ResourceSaved` 구현을 유지했다면, 동일한 파일들이 디스크의 `YOUR_DIRECTORY/Output`에도 기록되어 ZIP 내부 구조와 동일하게 됩니다. + +## 자주 묻는 질문 (FAQ) + +**Q: 대용량 HTML 페이지에서도 작동하나요?** +A: 물론입니다. `MemoryStream`은 필요에 따라 확장되지만, 수 메가바이트 규모의 페이지라면 메모리 부담을 줄이기 위해 `FileStream`으로 직접 스트리밍하는 것이 좋습니다. `HandleResource`를 `File.Create(Path.Combine("temp", info.FileName))`을 반환하도록 바꾸면 됩니다. + +**Q: ZIP을 암호화할 수 있나요?** +A: Aspose.HTML은 기본 암호화를 제공하지 않지만, `MemoryStream`을 얻은 뒤 `System.IO.Compression.ZipArchive`에 비밀번호를 지정해 전달하거나 SharpZipLib 같은 서드파티 라이브러리를 사용할 수 있습니다. + +**Q: HTML 내부의 상대 URL은 어떻게 처리하나요?** +A: `HTMLDocument`의 두 번째 인수(`"."`)는 Aspose.HTML에 현재 디렉터리를 기준으로 상대 경로를 해석하도록 지시합니다. 리소스가 다른 위치에 있다면 적절한 기본 경로나 맞춤형 `UriResolver`를 전달하면 됩니다. + +## 결론 + +우리는 Aspose.HTML, **맞춤형 리소스 핸들러**, 그리고 몇 가지 간단한 설정 단계만으로 **HTML을 ZIP으로 저장**하는 방법을 보여주었습니다. 이 접근 방식은 **HTML을 ZIP으로 변환**을 완전히 메모리 내에서 수행하게 하여, 결과를 웹 클라이언트에 스트리밍하거나 데이터베이스에 저장하거나, 나중에 사용할 수 있도록 디스크에 기록하는 유연성을 제공합니다. + +자유롭게 실험해 보세요: `MemoryStream`을 클라우드 스토리지 스트림으로 교체하거나, 비밀번호 보호를 추가하거나, 수십 개의 페이지를 병렬로 배치 처리할 수 있습니다. 핵심 패턴인 로드 → 핸들 → 구성 → 저장은 변함이 없으며, **HTML을 ZIP으로 렌더링**하거나 **HTML에서 ZIP을 생성**해야 하는 모든 .NET 솔루션에 재사용 가능한 빌딩 블록이 됩니다. + +맞춤형 리소스 핸들링이나 다른 Aspose.HTML 기능에 대해 궁금한 점이 있나요? 아래에 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +![HTML 소스에서 메모리 내 ZIP 아카이브까지의 흐름을 보여주는 다이어그램](placeholder.png "HTML을 ZIP으로 저장 예시") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/polish/net/generate-jpg-and-png-images/_index.md index fff5f7a92..129248b00 100644 --- a/html/polish/net/generate-jpg-and-png-images/_index.md +++ b/html/polish/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Naucz się używać Aspose.HTML dla .NET do manipulowania dokumentami HTML, konw Dowiedz się, jak włączyć antyaliasing przy konwersji dokumentów DOCX do formatów PNG i JPG przy użyciu Aspose.HTML. ### [Konwertuj docx do png – utwórz archiwum zip w C# – samouczek](./convert-docx-to-png-create-zip-archive-c-tutorial/) Dowiedz się, jak konwertować pliki DOCX na obrazy PNG i spakować je do archiwum ZIP przy użyciu C# i Aspose.HTML. +### [Utwórz PNG z HTML w C# – przewodnik krok po kroku](./create-png-from-html-in-c-step-by-step-guide/) +Dowiedz się, jak w prosty sposób konwertować kod HTML na plik PNG przy użyciu C# i Aspose.HTML. ## Wniosek diff --git a/html/polish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/polish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..0162c9869 --- /dev/null +++ b/html/polish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Utwórz PNG z HTML przy użyciu Aspose.HTML. Dowiedz się, jak renderować + HTML do PNG, konwertować HTML na obraz, eksportować HTML jako PNG oraz szybko renderować + obraz dokumentu HTML. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: pl +og_description: Utwórz PNG z HTML w C# przy użyciu Aspose.HTML. Ten przewodnik pokazuje, + jak renderować HTML do PNG, konwertować HTML na obraz oraz eksportować HTML jako + PNG. +og_title: Utwórz PNG z HTML w C# – Kompletny przewodnik programistyczny +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Tworzenie PNG z HTML w C# – Przewodnik krok po kroku +url: /pl/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie PNG z HTML w C# – Kompletny przewodnik programistyczny + +Kiedykolwiek potrzebowałeś **utworzyć PNG z HTML**, ale nie wiedziałeś, która biblioteka zapewni ostre wyniki bez problemów? Nie jesteś sam. Wielu programistów napotyka trudności, gdy próbują przekształcić stronę internetową w bitmapę, szczególnie gdy potrzebne jest wygładzanie krawędzi lub własne wskazówki dotyczące czcionek. + +W tym tutorialu przeprowadzimy Cię przez praktyczne rozwiązanie z użyciem **Aspose.HTML for .NET**. Po zakończeniu będziesz wiedział, jak **renderować HTML do PNG**, **konwertować HTML na obraz**, **eksportować HTML jako PNG**, a także jak dostroić pipeline renderowania, aby uzyskać idealne rezultaty. Bez zbędnych wstępów — tylko działający przykład kodu, wyjaśnienie każdej linii i kilka profesjonalnych wskazówek, które chciałbyś znać wcześniej. + +## Czego będziesz potrzebował + +- .NET 6+ (lub .NET Framework 4.6+). +- Pakiet NuGet `Aspose.HTML` (wersja 23.9 lub nowsza). +- Prosty plik `input.html`, który chcesz zamienić w obraz. +- IDE, np. Visual Studio 2022 (dowolny edytor zdolny do kompilacji C#). + +To wszystko. Bez dodatkowych binarek, usług zewnętrznych i skomplikowanych plików konfiguracyjnych. Gotowy? Zanurzmy się. + +## Tworzenie PNG z HTML – kluczowe kroki + +Poniżej dzielimy cały proces na cztery logiczne części. Każda część odpowiada konkretnemu blokowi kodu, a każdy blok jest opatrzony krótkim wyjaśnieniem „dlaczego”. Postępuj w podanej kolejności, skopiuj kod i w kilka sekund będziesz mieć PNG w `YOUR_DIRECTORY/output.png`. + +### Krok 1: Załadowanie dokumentu HTML + +Pierwszą rzeczą, którą musimy zrobić, jest przekazanie Aspose.HTML obiektu dokumentu do pracy. To jak podanie rendererowi świeżego płótna, które już zawiera wszystkie znaczniki, CSS i obrazy odwoływane w pliku HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Dlaczego to ważne:* `HTMLDocument` parsuje plik, rozwiązuje względne URL‑e i buduje drzewo DOM. Jeśli plik nie zostanie znaleziony, od razu zostanie rzucony wyjątek — dzięki temu wykrywasz problemy zanim rozpocznie się renderowanie. + +### Krok 2: Konfiguracja opcji renderowania obrazu + +Następnie informujemy Aspose, jak duży ma być końcowy obraz i czy chcemy włączyć antyaliasing. Te opcje bezpośrednio wpływają na jakość wizualną operacji **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Dlaczego to ważne:* Większe wymiary dają więcej szczegółów, ale zwiększają zużycie pamięci. `UseAntialiasing` to sekret profesjonalnego **export html as png** — bez tego zobaczysz schodkowe artefakty wokół tekstu i grafiki wektorowej. + +### Krok 3: Dostosowanie renderowania tekstu (hinting i styl czcionki) + +Jeśli Twój HTML używa własnych czcionek lub potrzebujesz stylów pogrubionych/pochylonych, warto włączyć hinting i ustawić odpowiedni `WebFontStyle`. Hinting wyrównuje glify do granic pikseli, co jest kluczowe przy **convert html to image** w stałej rozdzielczości. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Dlaczego to ważne:* Hinting zapobiega rozmytym literom, szczególnie na ekranach o niskiej rozdzielczości DPI. Połączenie `Bold` i `Italic` pokazuje, jak można nakładać wiele stylów; oczywiście możesz wybrać tylko jeden lub żaden, w zależności od projektu. + +### Krok 4: Renderowanie pliku PNG + +Na koniec tworzymy `ImageRenderer`, wskazujemy dokument, podajemy ścieżkę wyjściową i przekazujemy zbudowane opcje. Wywołanie `Render()` wykonuje całą ciężką pracę. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Dlaczego to ważne:* `ImageRenderer` respektuje wszystkie ustawienia zdefiniowane wcześniej — rozmiar, antyaliasing, hinting tekstu, styl czcionki. Gdy `Render()` zakończy się, masz w pełni zgodny plik PNG, który można wyświetlić w przeglądarkach, przesłać do chmury lub osadzić w raportach. + +> **Pro tip:** Jeśli potrzebujesz innego formatu obrazu (JPEG, BMP, GIF), po prostu zmień rozszerzenie w ścieżce wyjściowej. Aspose automatycznie wybierze odpowiedni enkoder. + +## Renderowanie HTML do PNG z Aspose.HTML – pełny przykład + +Złożenie wszystkich elementów razem daje jedną, samodzielną aplikację. Skopiuj poniższy blok do nowej aplikacji konsolowej i uruchom ją; zobaczysz `output.png` obok źródłowego HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Oczekiwany rezultat + +Po uruchomieniu powinien pojawić się plik podobny do poniższego mock‑upu (wygląd zależy od Twojej zawartości HTML). + +![Przykład tworzenia PNG z HTML](/images/html-to-png-sample.png "Przykładowy wynik przy tworzeniu PNG z HTML przy użyciu Aspose.HTML") + +PNG zachowa układ, kolory i czcionki dokładnie tak, jak przeglądarka wyświetliłaby stronę — dzięki silnikowi **render html document image** w Aspose. + +## Często zadawane pytania i przypadki brzegowe + +### Co zrobić, gdy mój HTML odwołuje się do zewnętrznych obrazów? + +Aspose.HTML podąża za względnymi URL‑ami w oparciu o folder `input.html`. Jeśli obrazy znajdują się w innym miejscu, możesz: + +1. Użyć bezwzględnych URL‑ów (np. `https://example.com/logo.png`). +2. Ustawić `htmlDocument.BaseUrl`, aby wskazywał na folder zawierający zasoby. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Jak dostosować DPI dla wyjścia wysokiej rozdzielczości? + +Możesz skalować rozmiar renderowania, zachowując proporcje, lub ustawić `renderingOptions.DPI` (domyślnie 96). Dla PNG gotowych do druku często używa się 300 DPI: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Czy mogę renderować wiele stron z jednego dokumentu HTML? + +Tak. Jeśli HTML zawiera podziały stron w CSS (`@media print { page-break-after: always; }`), Aspose wygeneruje osobne pliki PNG dla każdej strony przy użyciu `MultiPageImageRenderer`. To scenariusz zaawansowany, ale zasada **convert html to image** pozostaje taka sama. + +### Co z zużyciem pamięci? + +Renderowanie ogromnej strony (kilka tysięcy pikseli szerokości) może pochłonąć setki megabajtów. Aby ograniczyć zużycie pamięci: + +- Renderuj w najmniejszych akceptowalnych wymiarach. +- Wyłącz `UseAntialiasing`, jeśli jakość nie jest krytyczna. +- Szybko zwalniaj `HTMLDocument` i `ImageRenderer` przy pomocy instrukcji `using` (jak pokazano). + +## Renderowanie obrazu dokumentu HTML – kolejne kroki + +Teraz, gdy opanowałeś podstawy **render html to png**, rozważ następujące rozszerzenia: + +- **Konwersja wsadowa:** Przejdź pętlą po folderze plików HTML i generuj PNG jednocześnie. +- **Dodawanie znaków wodnych:** Po renderowaniu wczytaj PNG przy pomocy `System.Drawing` lub `ImageSharp` i nałóż logo. +- **Generowanie PDF:** Skorzystaj z `PdfRenderer` (również część Aspose.HTML), aby tworzyć PDF‑y z tego samego źródła HTML. + +Każde z nich opiera się na tych samych podstawowych koncepcjach, które właśnie poznałeś, więc poczujesz się jak w domu. + +## Zakończenie + +Przeszliśmy od problemu — *jak stworzyć PNG z HTML* — do kompletnego, gotowego do uruchomienia rozwiązania, które **renders HTML to PNG**, **converts HTML to image** i **exports HTML as PNG** z precyzyjną kontrolą rozmiaru, antyaliasingu i hintingu tekstu. + +Wypróbuj to na własnej stronie, zmień wymiary i eksperymentuj ze stylami czcionek. Kod jest krótki, API intuicyjne, a wyniki wyglądają dokładnie jak zrzut ekranu z przeglądarki — tylko szybszy i w pełni zautomatyzowany. + +Jeśli podobał Ci się ten przewodnik, sprawdź nasze inne tutoriale o manipulacji **render html document image**, takie jak konwersja HTML do PDF czy generowanie migawków SVG. Szczęśliwego kodowania i niech Twoje PNG zawsze będą piksel‑perfekcyjne! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/polish/net/html-extensions-and-conversions/_index.md index 5b553b002..81af3b781 100644 --- a/html/polish/net/html-extensions-and-conversions/_index.md +++ b/html/polish/net/html-extensions-and-conversions/_index.md @@ -71,8 +71,12 @@ Dowiedz się, jak spakować plik HTML do archiwum ZIP w C# przy użyciu Aspose.H Dowiedz się, jak stworzyć dokument HTML z formatowanym tekstem i wyeksportować go do PDF przy użyciu Aspose.HTML dla .NET. ### [Zapisz HTML jako ZIP – Kompletny samouczek C#](./save-html-as-zip-complete-c-tutorial/) Zapisz dokument HTML jako archiwum ZIP w C# przy użyciu Aspose.HTML – kompletny przewodnik krok po kroku. +### [Zapisz HTML jako ZIP – Kompletny przewodnik C# konwertujący HTML do ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Pełny przewodnik C# pokazujący, jak skonwertować plik HTML do archiwum ZIP przy użyciu Aspose.HTML. ### [Zapisz HTML do ZIP w C# – Kompletny przykład w pamięci](./save-html-to-zip-in-c-complete-in-memory-example/) Zapisz dokument HTML do archiwum ZIP w pamięci przy użyciu Aspose.HTML w C#. +### [Jak spakować HTML z DOCX – Kompletny przewodnik C#](./how-to-zip-html-from-docx-complete-c-guide/) +Pełny przewodnik C# wyjaśniający, jak spakować plik HTML pochodzący z DOCX do archiwum ZIP przy użyciu Aspose.HTML. ## Wniosek diff --git a/html/polish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/polish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..d864f1c52 --- /dev/null +++ b/html/polish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Dowiedz się, jak spakować wyjście HTML z pliku DOCX, konwertować docx + na HTML, ustawiać rozmiar obrazu, eksportować dokument Word do PNG oraz jak ustawić + pogrubioną czcionkę – krok po kroku w kodzie. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: pl +og_description: Opanuj, jak spakować wynik HTML z pliku DOCX, konwertować docx na + HTML, ustawiać rozmiar obrazu, eksportować Word do PNG oraz jak ustawić pogrubioną + czcionkę, z przejrzystymi przykładami w C#. +og_title: Jak spakować HTML z DOCX – Kompletny przewodnik C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Jak spakować HTML z DOCX – Kompletny przewodnik C# +url: /pl/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak spakować HTML z DOCX – Kompletny przewodnik C# + +Zastanawiałeś się kiedyś **jak spakować html**, który generujesz z dokumentu Word? Być może potrzebujesz jednego archiwum do wysłania klientowi lub przechowania w chmurze i nie chcesz mieć folderu pełnego luźnych plików. W tym samouczku przeprowadzimy Cię przez konwersję pliku .docx do HTML, spakowanie wyniku do pliku ZIP, a następnie renderowanie tego samego dokumentu do obrazu PNG o niestandardowym rozmiarze i pogrubionym tekście. Po drodze omówimy także *convert docx to html*, *set image size*, *export word to png* oraz *how to set bold font* — wszystko w jednym spójnym przykładzie. + +Po zakończeniu tego przewodnika będziesz mieć gotowy do uruchomienia program w C#, który: + +* Ładuje DOCX z dysku. +* Zapisuje go jako HTML, automatycznie pakując wynik do ZIP. +* Renderuje PNG o precyzyjnej szerokości, wysokości, antyaliasingu i stylu pogrubionej czcionki. + +Bez zewnętrznych skryptów, bez własnoręcznej logiki zip — tylko API Aspose.Words for .NET (lub dowolna równoważna biblioteka) wykonująca ciężką pracę. + +--- + +## Prerequisites — What You Need Before You Start + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (lub .NET Framework 4.7.2) | Zapewnia środowisko uruchomieniowe dla składni C# 10 użytej poniżej. | +| **Aspose.Words for .NET** (lub podobna biblioteka obsługująca `HtmlSaveOptions` i `ImageRenderer`) | Obsługuje konwersję DOCX → HTML, archiwizację i renderowanie obrazu. | +| **Plik DOCX** o nazwie `input.docx` w folderze, którym zarządzasz | Dokument źródłowy, który przekształcimy. | +| **Uprawnienia zapisu** do katalogu wyjściowego (`YOUR_DIRECTORY`) | Potrzebne do utworzenia `doc.zip` i `out.png`. | + +If you’re using NuGet, install the package with: + +```bash +dotnet add package Aspose.Words +``` + +> **Wskazówka:** Darmowa wersja ewaluacyjna dodaje znak wodny do renderowanego PNG. Uzyskaj licencję do użytku produkcyjnego. + +--- + +## Step 1: Load the Source Document + +Pierwszą rzeczą, którą robimy, jest odczytanie pliku Word do pamięci. To podstawa dla **convert docx to html** oraz późniejszego renderowania PNG. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Why this matters:* +`Document` jest centralnym obiektem; parsuje pakiet .docx, rozwiązuje style i przygotowuje zasoby zarówno do eksportu HTML, jak i renderowania obrazu. Jeśli plik nie zostanie znaleziony, zostanie wyrzucony wyjątek — dlatego upewnij się, że ścieżka jest prawidłowa. + +--- + +## Step 2: Configure HTML Save Options – The Core of **How to Zip HTML** + +Tutaj instruujemy Aspose.Words, aby wygenerował HTML, przechowywał wszystkie powiązane zasoby (obrazy, CSS) za pomocą własnego handlera zasobów i ostatecznie spakował wszystko do jednego archiwum. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### What `MyResourceHandler` Does + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Why we need a handler:* +Podczas konwersji **convert docx to html** biblioteka może wygenerować wiele dodatkowych plików (np. `image001.png`). Handler przechwytuje każdą operację zapisu, zapewniając, że wszystko trafia do ZIP zamiast do luźnego folderu. + +--- + +## Step 3: Save the Document as Zipped HTML + +Teraz dzieje się magia. Pliki HTML i ich zasoby są zapisywane bezpośrednio do `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Result:** +`YOUR_DIRECTORY/doc.zip` teraz zawiera: + +* `document.html` – główny markup. +* `document_files/` – podfolder z obrazami, CSS i wszelkimi osadzonymi mediami. + +Możesz rozpakować go, aby zweryfikować strukturę, lub serwować ZIP bezpośrednio z API webowego. + +--- + +## Step 4: Set Up Image Rendering Options – Controlling **Set Image Size** and **How to Set Bold Font** + +Jeśli potrzebujesz wizualnego zrzutu pliku Word, możesz go wyrenderować do PNG. Poniższy blok pokazuje, jak zdefiniować dokładne wymiary, włączyć antyaliasing i wymusić pogrubiony styl dla całego tekstu. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Why these flags matter:* +- **Width/Height** pozwalają dopasować PNG do układu UI. +- **UseAntialiasing** wygładza krawędzie, zapobiegając ząbkowanym liniom. +- **FontStyle = Bold** nadpisuje wszelkie style inline w DOCX, zapewniając, że PNG będzie miał pogrubiony wygląd niezależnie od oryginalnego formatowania. + +--- + +## Step 5: Render the Document to PNG – The **Export Word to PNG** Step + +Na koniec łączymy wszystko i tworzymy plik obrazu. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**What you’ll see:** +Wyraźny `out.png` o rozmiarze 800 × 600, z całym tekstem pogrubionym i wszelkimi grafikami wektorowymi antyaliasowanymi. + +--- + +## Full Working Example – Copy, Paste, Run + +Poniżej znajduje się kompletny program, gotowy do wklejenia do aplikacji konsolowej. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Expected Output + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML spakowane + zasoby (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, cały tekst pogrubiony, wygładzony. | + +Możesz otworzyć `doc.zip` dowolnym narzędziem archiwizującym, wyodrębnić `document.html` i wyświetlić go w przeglądarce. Obraz pojawi się dokładnie tak, jak został wyrenderowany z oryginalnego pliku Word. + +--- + +## Common Questions & Edge Cases + +### Co zrobić, jeśli potrzebuję innego formatu obrazu? +Zamień rozszerzenie pliku w konstruktorze `ImageRenderer` (`out.jpg`, `out.tiff`) i odpowiednio dostosuj `ImageSavingOptions`. API automatycznie wybierze właściwy enkoder. + +### Czy mogę kontrolować poziom kompresji ZIP? +`HtmlSaveOptions` udostępnia właściwość `ZipCompressionLevel` (np. `CompressionLevel.BestCompression`). Ustaw ją przed wywołaniem `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Mój DOCX zawiera duże obrazy wysokiej rozdzielczości — czy PNG będzie ogromny? +Tak, ponieważ wymuszamy stały rozmiar w pikselach. Aby zmniejszyć rozmiar pliku, obniż `Width`/`Height` lub włącz `ImageResizeOptions` w `ImageRenderingOptions`. + +### Jak zachować oryginalną grubość czcionki zamiast wymuszania pogrubienia? +Po prostu usuń linię `FontStyle = WebFontStyle.Bold` lub ustaw ją warunkowo na podstawie flagi udostępnionej użytkownikowi. + +### Czy to działa na Linux/macOS? +Oczywiście. Aspose.Words jest wieloplatformowy; wystarczy mieć odpowiednie środowisko .NET zainstalowane. + +--- + +## Troubleshooting Checklist + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Wrong path or missing file | Verify `YOUR_DIRECTORY/input.docx` exists; use absolute paths for testing. | +| `OutOfMemoryException` during PNG render | Very large document or huge image dimensions | Reduce `Width`/`Height` or render pages individually (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returned a different file name or threw | Ensure `ResourceSaving` does not cancel the save (`args.Cancel = false`). | +| Text not bold in PNG | ` | | + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/polish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..49ee9f2dc --- /dev/null +++ b/html/polish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Szybko zapisz HTML jako ZIP za pomocą Aspose.HTML. Dowiedz się, jak konwertować + HTML na ZIP przy użyciu własnego obsługującego zasoby i renderować HTML do ZIP w + kilku prostych krokach. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: pl +og_description: Zapisz HTML jako ZIP przy użyciu Aspose.HTML. Ten przewodnik pokazuje, + jak konwertować HTML na ZIP, używając niestandardowego obsługiwacza zasobów, aby + wydajnie renderować HTML do ZIP. +og_title: Zapisz HTML jako ZIP – Samouczek C# krok po kroku +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Zapisz HTML jako ZIP – Kompletny przewodnik C# konwertujący HTML na ZIP +url: /pl/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Zapisz HTML jako ZIP – Kompletny przewodnik C# konwertujący HTML na ZIP + +Kiedykolwiek potrzebowałeś **zapisz HTML jako ZIP**, ale nie byłeś pewien, które wywołania API połączyć? Nie jesteś sam. Wielu programistów napotyka problem, gdy chcą spakować stronę HTML razem z jej CSS, obrazkami i czcionkami w jedną archiwum — szczególnie gdy chcą, aby wszystko pozostało w pamięci, dopóki nie zdecydują, co z tym zrobić. + +Dobre wieści? Dzięki Aspose.HTML możesz **convert HTML to ZIP** w kilku linijkach, dzięki klasie `HtmlSaveOptions` oraz **custom resource handler**, który daje pełną kontrolę nad tym, gdzie trafia każdy zasób. W tym samouczku przejdziemy krok po kroku przez **render HTML to ZIP**, przechowamy wszystko w pamięci i opcjonalnie zapiszemy pliki na dysku. Na końcu będziesz mieć gotowy fragment kodu, który możesz wkleić do dowolnego projektu .NET. + +## Co obejmuje ten samouczek + +* Jak zdefiniować łańcuch źródłowy HTML (lub wczytać go z pliku). +* Jak utworzyć `HTMLDocument` przy użyciu Aspose.HTML. +* Jak stworzyć **custom resource handler**, który zwraca `MemoryStream` dla każdego zasobu. +* Jak skonfigurować `HtmlSaveOptions`, aby wygenerować **ZIP archive** zawierające HTML i wszystkie zależne pliki. +* Jak zapisać dokument i, jeśli chcesz, zapisać dane w pamięci do folderu na dysku. + +Brak zewnętrznych narzędzi, brak ręcznego pakowania — tylko czysty C# i Aspose.HTML. + +> **Pro tip:** Jeśli już używasz Aspose.PDF lub Aspose.Words, ten sam wzorzec `ResourceHandler` działa tam również, więc możesz ponownie wykorzystać ten kod w różnych typach dokumentów. + +--- + +## Krok 1: Zapisz HTML jako ZIP – Zdefiniuj źródło HTML + +Najpierw potrzebujemy łańcucha, który przechowuje HTML, który chcemy zarchiwizować. W prawdziwym projekcie możesz wczytać go z pliku, bazy danych lub odpowiedzi API, ale dla przejrzystości zakodujemy mały przykład. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Why this matters:** Konstruktor `HTMLDocument` oczekuje albo ścieżki do pliku, albo surowego HTML. Podanie łańcucha bezpośrednio utrzymuje cały proces w pamięci, co jest idealne, gdy później chcesz strumieniowo przesłać ZIP bezpośrednio do klienta. + +--- + +## Krok 2: Convert HTML to ZIP – Load the HTMLDocument + +Teraz przekazujemy łańcuch HTML do Aspose.HTML. Drugi argument (`"."`) informuje bibliotekę, gdzie rozwiązywać względne URL‑e; użycie bieżącego katalogu działa w większości prostych przypadków. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **What’s happening:** `HTMLDocument` parsuje znacznik, buduje DOM i przygotowuje wszystkie powiązane zasoby (CSS, obrazy, czcionki) do renderowania. Umieszczenie go w bloku `using` zapewnia prawidłowe zwolnienie zasobów natywnych. + +--- + +## Krok 3: Render HTML to ZIP – Create a Custom Resource Handler + +Aspose.HTML pozwala zdecydować **gdzie** zapisywany jest każdy zasób. Dziedzicząc po `ResourceHandler` możemy zwrócić nowy `MemoryStream` dla każdego pliku, który renderer musi zapisać. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Why a custom handler?** Domyślne zachowanie zapisuje pliki w systemie plików. Dzięki własnemu handlerowi możesz trzymać wszystko w RAM, przesłać ZIP bezpośrednio w odpowiedzi webowej lub nawet szyfrować strumienie w locie. + +--- + +## Krok 4: Convert HTML to ZIP – Configure Save Options + +Oto serce operacji. `HtmlSaveOptions` instruuje Aspose.HTML, aby spakował wszystko do archiwum ZIP (`SaveToArchive = true`) i użył naszego `resourceHandler` do przechowywania. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Key insight:** `ArchiveFileName` to nazwa, która pojawi się wewnątrz ZIP, a nie ścieżka na dysku. Ponieważ używamy handlera opartego na pamięci, ZIP istnieje całkowicie w RAM, dopóki nie zdecydujemy, co z nim zrobić. + +--- + +## Krok 5: Zapisz HTML jako ZIP – Persist the Archive + +Na koniec prosimy dokument, aby zapisał się przy użyciu opcji, które właśnie skonfigurowaliśmy. To wywołanie uruchamia pipeline renderowania, wywołuje nasz handler dla każdego zasobu i zapisuje finalny ZIP do podanych strumieni pamięci. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Result:** W tym momencie `resourceHandler` przechowuje `MemoryStream` dla głównego pliku HTML oraz dodatkowe strumienie dla każdego CSS, obrazu lub czcionki, które zostały odwołane. Plik ZIP jest w pełni złożony wewnątrz tych strumieni. + +--- + +## Krok 6: Custom Resource Handler – Provide a Stream for Each Resource + +Poniżej znajduje się implementacja `MyResourceHandler`. Metoda `HandleResource` jest wywoływana raz dla każdego zasobu (HTML, CSS, obrazy, czcionki, …). Po prostu zwracamy nowy `MemoryStream` przy każdym wywołaniu. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Why a fresh stream?** Każdy zasób potrzebuje własnego kontenera; ponowne użycie jednego strumienia zepsułoby archiwum. `MemoryStream` jest lekki i automatycznie rośnie w razie potrzeby. + +--- + +## Krok 7: Opcjonalnie – Zapisz zapisane zasoby na dysk + +Jeśli chcesz przejrzeć wygenerowane pliki lub zachować ich kopię na serwerze, `ResourceSaved` jest wywoływane po zamknięciu strumienia. Tutaj zapisujemy zawartość z pamięci do folderu, który określisz (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Edge case note:** Jeśli działasz w środowisku bez uprawnień do zapisu (np. Azure Functions), po prostu pomiń implementację `ResourceSaved` lub zamień ją na upload do chmury. + +--- + +## Pełny, uruchamialny przykład (38 linii) + +Poniżej znajduje się kompletny kod gotowy do wklejenia do aplikacji konsolowej. Spełnia limit 15‑40 linii, używa opisowych nazw zmiennych i zawiera miejsca, które możesz dostosować. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Oczekiwany wynik + +* Plik `result.zip` pojawia się wewnątrz archiwum w pamięci (możesz go pobrać z `resourceHandler`, jeśli dodasz właściwość udostępniającą strumień). +* Jeśli zachowałeś implementację `ResourceSaved`, te same pliki są również zapisywane do `YOUR_DIRECTORY/Output` na dysku, odzwierciedlając wewnętrzną strukturę ZIP‑a. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Czy to działa z dużymi stronami HTML?** +A: Absolutnie. `MemoryStream` rozszerza się w miarę potrzeb, ale dla wielomegabajtowych stron możesz chcieć strumieniowo zapisywać bezpośrednio do `FileStream`, aby uniknąć dużego obciążenia pamięci. Wystarczy zmienić `HandleResource`, aby zwracał `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Czy mogę zaszyfrować ZIP?** +A: Aspose.HTML nie oferuje wbudowanego szyfrowania, ale po pobraniu `MemoryStream` możesz przekazać go do `System.IO.Compression.ZipArchive` z hasłem lub użyć biblioteki zewnętrznej, takiej jak SharpZipLib. + +**Q: Co z względnymi URL‑ami w HTML?** +A: Drugi argument do `HTMLDocument` (`"."`) mówi Aspose.HTML, aby rozwiązywał względne ścieżki względem bieżącego katalogu. Jeśli Twoje zasoby znajdują się w innym miejscu, przekaż odpowiednią bazową ścieżkę lub własny `UriResolver`. + +--- + +## Zakończenie + +Właśnie pokazaliśmy, jak **save HTML as ZIP** przy użyciu Aspose.HTML, **custom resource handler** i kilku prostych kroków konfiguracyjnych. Podejście pozwala **convert HTML to ZIP** całkowicie w pamięci, dając elastyczność strumieniowego przesyłania wyniku do klienta webowego, przechowywania w bazie danych lub zapisu na dysku do późniejszego użycia. + +Śmiało eksperymentuj: zamień `MemoryStream` na strumień przechowywania w chmurze, dodaj ochronę hasłem lub przetwarzaj setki stron równolegle. Podstawowy wzorzec — load, handle, configure, save — pozostaje taki sam, co czyni go wielokrotnego użytku elementem budulcowym dla każdej aplikacji .NET, która potrzebuje **render HTML to ZIP** lub **create ZIP from HTML**. + +Masz więcej pytań o obsługę zasobów lub inne funkcje Aspose.HTML? zostaw komentarz poniżej i powodzenia w kodowaniu! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/portuguese/net/generate-jpg-and-png-images/_index.md index 25a4d8da7..30bbaf12c 100644 --- a/html/portuguese/net/generate-jpg-and-png-images/_index.md +++ b/html/portuguese/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Aprenda a usar Aspose.HTML para .NET para manipular documentos HTML, converter H Aprenda a ativar antialiasing ao converter documentos DOCX em imagens PNG ou JPG usando Aspose.HTML para .NET. ### [Converter docx para png – criar arquivo zip em C# tutorial](./convert-docx-to-png-create-zip-archive-c-tutorial/) Aprenda a converter documentos DOCX em imagens PNG e compactá-los em um arquivo ZIP usando C# e Aspose.HTML. +### [Criar PNG a partir de HTML em C# – Guia passo a passo](./create-png-from-html-in-c-step-by-step-guide/) +Aprenda a gerar PNG a partir de HTML em C# usando Aspose.HTML, com instruções passo a passo. ## Conclusão diff --git a/html/portuguese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/portuguese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..d4aa18a47 --- /dev/null +++ b/html/portuguese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: Crie PNG a partir de HTML usando Aspose.HTML. Aprenda como renderizar + HTML para PNG, converter HTML em imagem, exportar HTML como PNG e renderizar rapidamente + a imagem de um documento HTML. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: pt +og_description: Crie PNG a partir de HTML em C# com Aspose.HTML. Este guia mostra + como renderizar HTML para PNG, converter HTML em imagem e exportar HTML como PNG. +og_title: Criar PNG a partir de HTML em C# – Guia Completo de Programação +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Criar PNG a partir de HTML em C# – Guia passo a passo +url: /pt/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar PNG a partir de HTML em C# – Guia de Programação Completo + +Já precisou **criar PNG a partir de HTML** mas não tinha certeza de qual biblioteca lhe daria uma saída nítida sem dor de cabeça? Você não está sozinho. Muitos desenvolvedores tropeçam ao tentar transformar uma página da web em um bitmap, especialmente quando precisam de anti‑aliasing ou dicas de fontes personalizadas. + +Neste tutorial vamos percorrer uma solução prática usando **Aspose.HTML for .NET**. Ao final você saberá como **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, e ainda ajustar o pipeline de renderização para resultados perfeitos. Sem enrolação — apenas um exemplo de código funcional, por que cada linha importa, e algumas dicas de especialista que você gostaria de ter conhecido antes. + +## O que você precisará + +- .NET 6+ (ou .NET Framework 4.6+). +- O pacote NuGet `Aspose.HTML` (versão 23.9 ou mais recente). +- Um simples arquivo `input.html` que você deseja transformar em imagem. +- Uma IDE como Visual Studio 2022 (qualquer editor que compile C# serve). + +É isso. Sem binários extras, sem serviços externos e sem arquivos de configuração obscuros. Pronto? Vamos mergulhar. + +## Criar PNG a partir de HTML – Etapas Principais + +A seguir dividimos todo o processo em quatro blocos lógicos. Cada bloco corresponde a um trecho de código concreto, e cada trecho vem acompanhado de uma breve explicação “por quê”. Siga a ordem, copie o código, e você terá um PNG em `YOUR_DIRECTORY/output.png` em segundos. + +### Etapa 1: Carregar o Documento HTML + +A primeira coisa que precisamos fazer é fornecer ao Aspose.HTML um objeto de documento para trabalhar. Pense nisso como entregar ao renderizador uma tela nova que já contém todo o markup, CSS e imagens referenciadas pelo arquivo HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Por que isso importa:* `HTMLDocument` analisa o arquivo, resolve URLs relativas e constrói uma árvore DOM. Se o arquivo não for encontrado, uma exceção é lançada aqui mesmo — assim você captura problemas cedo, antes de iniciar qualquer renderização. + +### Etapa 2: Configurar Opções de Renderização de Imagem + +Em seguida informamos ao Aspose o tamanho final da imagem e se queremos anti‑aliasing. Essas opções afetam diretamente a fidelidade visual da operação **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Por que isso importa:* Dimensões maiores dão mais detalhe, mas aumentam o uso de memória. `UseAntialiasing` é o ingrediente secreto para um **export html as png** com aspecto profissional — sem ele você verá artefatos em degraus ao redor de texto e gráficos vetoriais. + +### Etapa 3: Ajustar Renderização de Texto (Hinting & Font Style) + +Se o seu HTML usa fontes personalizadas ou você precisa de estilos negrito/itálico, será necessário habilitar o hinting e definir o `WebFontStyle` apropriado. O hinting alinha os glifos aos limites de pixel, o que é crucial ao **convert html to image** em resolução fixa. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Por que isso importa:* O hinting evita letras borradas, especialmente em telas de baixa DPI. Combinar `Bold` e `Italic` demonstra como você pode sobrepor múltiplos estilos; é claro que pode escolher apenas um ou nenhum, conforme o design. + +### Etapa 4: Renderizar o Arquivo PNG + +Por fim instanciamos `ImageRenderer`, apontamos para o documento, definimos o caminho de saída e passamos as opções que configuramos. A chamada `Render()` faz todo o trabalho pesado. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Por que isso importa:* `ImageRenderer` respeita cada configuração definida anteriormente — tamanho, anti‑aliasing, hinting de texto, estilo de fonte. Quando `Render()` termina, você tem um PNG totalmente compatível que pode ser exibido em navegadores, enviado para armazenamento em nuvem ou incorporado em relatórios. + +> **Dica de especialista:** Se precisar de outro formato de imagem (JPEG, BMP, GIF), basta mudar a extensão do arquivo no caminho de saída. O Aspose seleciona automaticamente o codificador correto. + +## Render HTML to PNG com Aspose.HTML – Exemplo Completo + +Juntando todas as peças, você obtém um programa único e autocontido. Copie o bloco abaixo para um novo aplicativo console e execute; você verá `output.png` aparecer ao lado do seu HTML de origem. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Resultado Esperado + +Após a execução você deverá ver um arquivo semelhante ao mock‑up abaixo (a aparência real depende do conteúdo do seu HTML). + +![Criar PNG a partir de HTML exemplo](/images/html-to-png-sample.png "Exemplo de saída ao criar PNG a partir de HTML usando Aspose.HTML") + +O PNG preservará layout, cores e fontes exatamente como o navegador exibiria a página — graças ao motor **render html document image** interno do Aspose. + +## Perguntas Frequentes & Casos de Borda + +### E se meu HTML referenciar imagens externas? + +O Aspose.HTML segue URLs relativas com base na pasta de `input.html`. Se você tem imagens armazenadas em outro local, faça uma das opções: + +1. Use URLs absolutas (ex.: `https://example.com/logo.png`). +2. Defina `htmlDocument.BaseUrl` apontando para a pasta que contém os recursos. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Como ajustar o DPI para saída de alta resolução? + +Você pode escalar o tamanho de renderização mantendo a mesma proporção, ou definir `renderingOptions.DPI` (o padrão é 96). Para PNGs prontos para impressão, 300 DPI é comum: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Posso renderizar múltiplas páginas de um único documento HTML? + +Sim. Se o HTML contém quebras de página CSS (`@media print { page-break-after: always; }`), o Aspose gerará arquivos PNG separados por página ao usar `MultiPageImageRenderer`. Este é um cenário avançado, mas o mesmo princípio **convert html to image** se aplica. + +### E quanto ao consumo de memória? + +Renderizar uma página enorme (vários milhares de pixels de largura) pode consumir centenas de megabytes. Para manter o uso de memória baixo: + +- Renderize nas menores dimensões aceitáveis. +- Desative `UseAntialiasing` se a qualidade não for crítica. +- Libere `HTMLDocument` e `ImageRenderer` rapidamente usando instruções `using` (como mostrado). + +## Render HTML Document Image – Próximos Passos + +Agora que você dominou o básico de **render html to png**, considere estas extensões: + +- **Conversão em lote:** Percorra uma pasta de arquivos HTML e gere PNGs de uma só vez. +- **Marca d'água:** Após a renderização, carregue o PNG com `System.Drawing` ou `ImageSharp` e sobreponha um logotipo. +- **Geração de PDF:** Use `PdfRenderer` (também parte do Aspose.HTML) para criar PDFs a partir da mesma fonte HTML. + +Cada uma dessas funcionalidades se baseia nos mesmos conceitos centrais que você acabou de aprender, então você se sentirá em casa. + +## Conclusão + +Levamos você do problema inicial — *como criar PNG a partir de HTML* — até uma solução completa e executável que **renders HTML to PNG**, **converts HTML to image** e **exports HTML as PNG** com controle fino sobre tamanho, anti‑aliasing e hinting de texto. + +Experimente com sua própria página web, ajuste as dimensões e teste diferentes estilos de fonte. O código é curto, a API é intuitiva e os resultados se parecem exatamente com uma captura de tela feita no navegador — só que mais rápido e totalmente automatizável. + +Se gostou deste guia, confira nossos outros tutoriais sobre manipulação de **render html document image**, como converter HTML para PDF ou gerar snapshots SVG. Boa codificação, e que seus PNGs sejam sempre pixel‑perfect! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/portuguese/net/html-extensions-and-conversions/_index.md index 8971d46a5..bf260c59e 100644 --- a/html/portuguese/net/html-extensions-and-conversions/_index.md +++ b/html/portuguese/net/html-extensions-and-conversions/_index.md @@ -72,11 +72,14 @@ Aprenda como converter HTML para TIFF com Aspose.HTML para .NET. Siga nosso guia Descubra o poder do Aspose.HTML para .NET: Converta HTML para XPS sem esforço. Pré-requisitos, guia passo a passo e FAQs inclusos. ### [Salvar HTML como ZIP – Tutorial Completo em C#](./save-html-as-zip-complete-c-tutorial/) Aprenda a salvar documentos HTML em arquivos ZIP usando Aspose.HTML para .NET com um tutorial passo a passo em C#. - ### [Como compactar HTML em C# – Salvar HTML em ZIP](./how-to-zip-html-in-c-save-html-to-zip/) Aprenda a criar um arquivo ZIP contendo arquivos HTML usando Aspose.HTML para .NET em C#. ### [Salvar HTML em ZIP em C# – Exemplo Completo em Memória](./save-html-to-zip-in-c-complete-in-memory-example/) Aprenda a salvar arquivos HTML em um arquivo ZIP usando C# com um exemplo completo totalmente em memória. +### [Salvar HTML como ZIP – Guia Completo em C# para Converter HTML em ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Aprenda a converter HTML em arquivos ZIP com um guia completo em C# usando Aspose.HTML para .NET. +### [Como compactar HTML de DOCX – Guia completo em C#](./how-to-zip-html-from-docx-complete-c-guide/) +Aprenda a compactar HTML extraído de arquivos DOCX em um arquivo ZIP usando Aspose.HTML para .NET com um tutorial completo em C#. ## Conclusão diff --git a/html/portuguese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/portuguese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..b1e44a750 --- /dev/null +++ b/html/portuguese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Aprenda a compactar a saída HTML de um arquivo DOCX, converter docx para + HTML, definir o tamanho da imagem, exportar Word para PNG e como definir fonte em + negrito – código passo a passo. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: pt +og_description: Domine como compactar a saída HTML de um arquivo DOCX, converter DOCX + para HTML, definir o tamanho da imagem, exportar Word para PNG e como definir fonte + em negrito com exemplos claros em C#. +og_title: Como zipar HTML de DOCX – Guia completo de C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Como Compactar HTML de DOCX – Guia Completo de C# +url: /pt/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Compactar HTML a partir de DOCX – Guia Completo em C# + +Já se perguntou **como compactar html** que você gera a partir de um documento Word? Talvez você precise de um único arquivo para enviar a um cliente ou armazenar na nuvem, e não queira uma pasta cheia de arquivos soltos. Neste tutorial vamos percorrer a conversão de um .docx para HTML, agrupar o resultado em um arquivo ZIP e, em seguida, renderizar o mesmo documento para uma imagem PNG com tamanho personalizado e texto em negrito. Ao longo do caminho também abordaremos *convert docx to html*, *set image size*, *export word to png* e *how to set bold font* — tudo em um exemplo coeso. + +Ao final deste guia você terá um programa C# pronto‑para‑executar que: + +* Carrega um DOCX do disco. +* Salva como HTML enquanto compacta automaticamente a saída. +* Renderiza um PNG com largura e altura precisas, antialiasing e estilo de fonte em negrito. + +Sem scripts externos, sem lógica de compactação manual — apenas a API Aspose.Words for .NET (ou qualquer biblioteca equivalente) fazendo o trabalho pesado. + +--- + +## Pré-requisitos — O que você precisa antes de começar + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Fornece o runtime para a sintaxe C# 10 usada abaixo. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | Gerencia a conversão DOCX → HTML, arquivamento e renderização de imagens. | +| **A DOCX file** named `input.docx` in a folder you control | O documento fonte que iremos transformar. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Necessária para criar `doc.zip` e `out.png`. | + +Se você estiver usando NuGet, instale o pacote com: + +```bash +dotnet add package Aspose.Words +``` + +> **Dica:** A versão de avaliação gratuita adiciona uma marca d'água ao PNG renderizado. Adquira uma licença para uso em produção. + +--- + +## Etapa 1: Carregar o Documento Fonte + +A primeira coisa que fazemos é ler o arquivo Word na memória. Esta é a base para **convert docx to html** e para renderizar o PNG posteriormente. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Por que isso importa:* +`Document` é o objeto central; ele analisa o pacote .docx, resolve estilos e prepara recursos tanto para exportação HTML quanto para renderização de imagem. Se o arquivo não for encontrado, uma exceção é lançada — portanto, certifique‑se de que o caminho está correto. + +--- + +## Etapa 2: Configurar as Opções de Salvamento HTML – O Núcleo de **How to Zip HTML** + +Aqui informamos ao Aspose.Words para gerar HTML, armazenar todos os recursos relacionados (imagens, CSS) via um manipulador de recursos personalizado e, finalmente, compactar tudo em um único arquivo. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### O que `MyResourceHandler` Faz + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Por que precisamos de um manipulador:* +Ao converter **convert docx to html**, a biblioteca pode gerar muitos arquivos auxiliares (por exemplo, `image001.png`). O manipulador intercepta cada operação de salvamento, garantindo que tudo termine dentro do ZIP ao invés de uma pasta solta. + +--- + +## Etapa 3: Salvar o Documento como HTML Compactado + +Agora a mágica acontece. Os arquivos HTML e seus recursos são gravados diretamente em `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Resultado:** +`YOUR_DIRECTORY/doc.zip` agora contém: + +* `document.html` – a marcação principal. +* `document_files/` – uma subpasta com imagens, CSS e quaisquer mídias incorporadas. + +Você pode descompactar para verificar a estrutura ou servir o ZIP diretamente de uma API web. + +--- + +## Etapa 4: Configurar as Opções de Renderização de Imagem – Controlando **Set Image Size** e **How to Set Bold Font** + +Se você precisar de uma captura visual do arquivo Word, pode renderiz‑lo para PNG. O bloco a seguir mostra como definir as dimensões exatas, habilitar antialiasing e forçar estilo negrito para todo o texto. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Por que essas opções são importantes:* +- **Width/Height** permitem ajustar o PNG ao layout da sua UI. +- **UseAntialiasing** suaviza as bordas, evitando linhas serrilhadas. +- **FontStyle = Bold** substitui qualquer estilo embutido no DOCX, garantindo que o PNG apresente um visual em negrito independentemente da formatação original. + +--- + +## Etapa 5: Renderizar o Documento para PNG – A Etapa **Export Word to PNG** + +Finalmente, juntamos tudo e produzimos o arquivo de imagem. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**O que você verá:** +Um `out.png` nítido que corresponde ao tamanho 800 × 600, com todo o texto renderizado em negrito e quaisquer gráficos vetoriais antialiasados. + +--- + +## Exemplo Completo – Copiar, Colar, Executar + +Abaixo está o programa completo, pronto para ser inserido em um aplicativo de console. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Saída Esperada + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML compactado + recursos (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, todo o texto em negrito, antialiasado. | + +Você pode abrir `doc.zip` com qualquer ferramenta de arquivamento, extrair `document.html` e visualizá‑lo em um navegador. A imagem aparecerá exatamente como renderizada a partir do arquivo Word original. + +--- + +## Perguntas Frequentes & Casos de Borda + +### E se eu precisar de um formato de imagem diferente? +Altere a extensão do arquivo no construtor `ImageRenderer` (`out.jpg`, `out.tiff`) e ajuste `ImageSavingOptions` conforme necessário. A API seleciona automaticamente o codificador correto. + +### Posso controlar o nível de compressão do ZIP? +`HtmlSaveOptions` expõe a propriedade `ZipCompressionLevel` (por exemplo, `CompressionLevel.BestCompression`). Defina‑a antes de chamar `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Meu DOCX contém imagens de alta resolução e grandes — o PNG será enorme? +Sim, porque forçamos um tamanho fixo em pixels. Para manter o tamanho do arquivo baixo, reduza `Width`/`Height` ou habilite `ImageResizeOptions` dentro de `ImageRenderingOptions`. + +### Como manter o peso da fonte original em vez de forçar negrito? +Basta remover a linha `FontStyle = WebFontStyle.Bold`, ou defini‑la condicionalmente com base em uma flag que você expõe ao usuário. + +### Isso funciona em Linux/macOS? +Com certeza. Aspose.Words é multiplataforma; basta garantir que você tenha o runtime .NET apropriado instalado. + +--- + +## Lista de Verificação de Solução de Problemas + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Caminho errado ou arquivo ausente | Verifique se `YOUR_DIRECTORY/input.docx` existe; use caminhos absolutos para teste. | +| `OutOfMemoryException` during PNG render | Documento muito grande ou dimensões de imagem enormes | Reduza `Width`/`Height` ou renderize páginas individualmente (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` retornou um nome de arquivo diferente ou lançou uma exceção | Garanta que `ResourceSaving` não cancele o salvamento (`args.Cancel = false`). | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/portuguese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..8b2f2febe --- /dev/null +++ b/html/portuguese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Salve HTML como ZIP rapidamente com Aspose.HTML. Aprenda como converter + HTML para ZIP usando um manipulador de recursos personalizado e renderizar HTML + para ZIP em apenas alguns passos. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: pt +og_description: Salve HTML como ZIP com Aspose.HTML. Este guia mostra como converter + HTML para ZIP, usando um manipulador de recursos personalizado para renderizar HTML + em ZIP de forma eficiente. +og_title: Salvar HTML como ZIP – Tutorial C# passo a passo +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Salvar HTML como ZIP – Guia Completo em C# para Converter HTML em ZIP +url: /pt/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Salvar HTML como ZIP – Guia Completo em C# para Converter HTML em ZIP + +Já precisou **salvar HTML como ZIP** mas não sabia quais chamadas de API encadear? Você não está sozinho. Muitos desenvolvedores encontram dificuldades quando querem agrupar uma página HTML com seu CSS, imagens e fontes em um único arquivo—especialmente quando desejam que tudo permaneça na memória até decidirem o que fazer com ele. + +Boa notícia? Com Aspose.HTML você pode **converter HTML em ZIP** em poucas linhas, graças à classe `HtmlSaveOptions` e a um **manipulador de recursos personalizado** que lhe dá controle total sobre onde cada recurso será salvo. Neste tutorial vamos percorrer os passos exatos para **renderizar HTML em ZIP**, armazenar tudo na memória e, opcionalmente, gravar os arquivos no disco. Ao final, você terá um trecho reutilizável que pode ser inserido em qualquer projeto .NET. + +> **Dica profissional:** Se você já está usando Aspose.PDF ou Aspose.Words, o mesmo padrão `ResourceHandler` funciona lá também, permitindo reutilizar este código em vários tipos de documentos. + +## O que este tutorial cobre + +* Como definir a string de origem HTML (ou carregá‑la a partir de um arquivo). +* Como instanciar um `HTMLDocument` com Aspose.HTML. +* Como criar um **manipulador de recursos personalizado** que retorna um `MemoryStream` para cada recurso. +* Como configurar `HtmlSaveOptions` para gerar um **arquivo ZIP** contendo o HTML e todos os arquivos dependentes. +* Como salvar o documento e, se desejar, gravar os dados em memória em uma pasta no disco. + +Sem ferramentas externas, sem compactação manual—apenas C# puro e Aspose.HTML. + +--- + +## Etapa 1: Salvar HTML como ZIP – Definir a Fonte HTML + +Primeiro precisamos de uma string que contenha o HTML que queremos arquivar. Em um projeto real você pode ler isso de um arquivo, de um banco de dados ou de uma resposta de API, mas para clareza vamos codificar um pequeno exemplo. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Por que isso importa:** O construtor `HTMLDocument` aceita um caminho de arquivo ou HTML bruto. Fornecer a string diretamente mantém todo o processo na memória, o que é perfeito quando você deseja transmitir o ZIP diretamente a um cliente posteriormente. + +--- + +## Etapa 2: Converter HTML em ZIP – Carregar o HTMLDocument + +Agora passamos a string HTML para o Aspose.HTML. O segundo argumento (`"."`) indica à biblioteca onde resolver URLs relativas; usar o diretório atual funciona na maioria dos casos simples. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **O que está acontecendo:** `HTMLDocument` analisa a marcação, constrói um DOM e prepara todos os recursos vinculados (CSS, imagens, fontes) para renderização. Envolvê‑lo em um bloco `using` garante a liberação adequada dos recursos nativos. + +--- + +## Etapa 3: Renderizar HTML em ZIP – Criar um Manipulador de Recursos Personalizado + +Aspose.HTML permite que você decida **onde** cada recurso será gravado. Ao estender `ResourceHandler` podemos devolver um novo `MemoryStream` para cada arquivo que o renderizador precisar salvar. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Por que um manipulador personalizado?** O comportamento padrão grava arquivos no sistema de arquivos. Com um manipulador você pode manter tudo na RAM, enviar o ZIP diretamente para uma resposta web ou até mesmo criptografar os streams em tempo real. + +--- + +## Etapa 4: Converter HTML em ZIP – Configurar Opções de Salvamento + +Aqui está o núcleo da operação. `HtmlSaveOptions` instrui o Aspose.HTML a agrupar tudo em um arquivo ZIP (`SaveToArchive = true`) e a usar nosso `resourceHandler` para armazenamento. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Insight chave:** `ArchiveFileName` é o nome que aparecerá dentro do ZIP, não um caminho no disco. Como estamos usando um manipulador baseado em memória, o ZIP reside totalmente na RAM até decidirmos o que fazer com ele. + +--- + +## Etapa 5: Salvar HTML como ZIP – Persistir o Arquivo + +Finalmente, pedimos ao documento que se salve usando as opções que acabamos de criar. Essa chamada dispara o pipeline de renderização, invoca nosso manipulador para cada recurso e grava o ZIP final nos streams de memória que fornecemos. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Resultado:** Neste ponto `resourceHandler` contém um `MemoryStream` para o arquivo HTML principal, além de streams adicionais para quaisquer CSS, imagens ou fontes referenciadas. O arquivo ZIP está totalmente montado dentro desses streams. + +--- + +## Etapa 6: Manipulador de Recursos Personalizado – Fornecer um Stream para Cada Recurso + +Abaixo está a implementação de `MyResourceHandler`. O método `HandleResource` é chamado uma vez por recurso (HTML, CSS, imagens, fontes, …). Simplesmente devolvemos um novo `MemoryStream` a cada chamada. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Por que um stream novo?** Cada recurso precisa de seu próprio contêiner; reutilizar um único stream corromperia o arquivo. `MemoryStream` é barato e cresce automaticamente conforme necessário. + +--- + +## Etapa 7: Opcional – Gravar Recursos Salvos no Disco + +Se você quiser inspecionar os arquivos gerados ou manter uma cópia no servidor, `ResourceSaved` é chamado após o fechamento de um stream. Aqui gravamos o conteúdo em memória em uma pasta que você especificar (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Observação de caso extremo:** Se você estiver executando em um ambiente sem permissões de gravação (por exemplo, Azure Functions), basta pular a implementação de `ResourceSaved` ou substituí‑la por um upload para armazenamento em nuvem. + +--- + +## Exemplo Completo e Executável (38 Linhas) + +Abaixo está o código completo pronto para ser colado em um aplicativo console. Ele respeita o limite de 15‑40 linhas, usa nomes de variáveis descritivos e inclui placeholders que você pode ajustar. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Saída Esperada + +* Um arquivo `result.zip` aparece dentro do arquivo em memória (você pode recuperá‑lo de `resourceHandler` se adicionar uma propriedade para expor o stream). +* Se você manteve a implementação de `ResourceSaved`, os mesmos arquivos também são gravados em `YOUR_DIRECTORY/Output` no disco, espelhando a estrutura interna do ZIP. + +--- + +## Perguntas Frequentes (FAQ) + +**Q: Isso funciona com páginas HTML grandes?** +A: Absolutamente. `MemoryStream` expande conforme necessário, mas para páginas de vários megabytes você pode querer transmitir diretamente para um `FileStream` para evitar alta pressão de memória. Basta mudar `HandleResource` para retornar `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Posso criptografar o ZIP?** +A: Aspose.HTML não oferece criptografia nativa, mas depois de obter o `MemoryStream` você pode passá‑lo para `System.IO.Compression.ZipArchive` com senha, ou usar uma biblioteca de terceiros como SharpZipLib. + +**Q: E quanto às URLs relativas dentro do HTML?** +A: O segundo argumento para `HTMLDocument` (`"."`) indica ao Aspose.HTML que resolva caminhos relativos em relação ao diretório atual. Se seus recursos estiverem em outro local, passe o caminho base apropriado ou um `UriResolver` personalizado. + +--- + +## Conclusão + +Acabamos de mostrar como **salvar HTML como ZIP** usando Aspose.HTML, um **manipulador de recursos personalizado** e alguns passos de configuração simples. A abordagem permite **converter HTML em ZIP** totalmente na memória, proporcionando flexibilidade para transmitir o resultado a um cliente web, armazená‑lo em um banco de dados ou gravá‑lo no disco para uso posterior. + +Sinta‑se à vontade para experimentar: troque `MemoryStream` por um stream de armazenamento em nuvem, adicione proteção por senha ou processe em lote dezenas de páginas em paralelo. O padrão central—carregar, manipular, configurar, salvar—permanece o mesmo, tornando este bloco de construção reutilizável para qualquer solução .NET que precise **renderizar HTML em ZIP** ou **criar ZIP a partir de HTML**. + +Tem mais perguntas sobre manipulação de recursos personalizada ou outros recursos do Aspose.HTML? Deixe um comentário abaixo e boa codificação! + +![Diagrama mostrando o fluxo da fonte HTML para o arquivo ZIP em memória](placeholder.png "exemplo de salvar html como zip") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/russian/net/generate-jpg-and-png-images/_index.md index 74f005949..fc6c11549 100644 --- a/html/russian/net/generate-jpg-and-png-images/_index.md +++ b/html/russian/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Aspose.HTML для .NET предлагает простой метод прео Узнайте, как включить сглаживание при преобразовании DOCX в PNG или JPG с помощью Aspose.HTML для .NET. ### [Конвертация DOCX в PNG – создание ZIP-архива на C#](./convert-docx-to-png-create-zip-archive-c-tutorial/) Узнайте, как преобразовать файлы DOCX в PNG и упаковать их в ZIP-архив с помощью C# и Aspose.HTML. +### [Создание PNG из HTML на C# – пошаговое руководство](./create-png-from-html-in-c-step-by-step-guide/) +Подробное руководство по созданию PNG‑изображений из HTML с помощью C# и Aspose.HTML. ## Заключение diff --git a/html/russian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/russian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..27326d480 --- /dev/null +++ b/html/russian/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-26 +description: Создайте PNG из HTML с помощью Aspose.HTML. Узнайте, как преобразовать + HTML в PNG, конвертировать HTML в изображение, экспортировать HTML как PNG и быстро + отобразить изображение HTML‑документа. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: ru +og_description: Создайте PNG из HTML в C# с помощью Aspose.HTML. Это руководство покажет, + как отрендерить HTML в PNG, преобразовать HTML в изображение и экспортировать HTML + как PNG. +og_title: Создание PNG из HTML в C# – Полное руководство по программированию +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Создание PNG из HTML на C# – пошаговое руководство +url: /ru/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание PNG из HTML в C# – Полное руководство по программированию + +Когда‑то вам нужно **создать PNG из HTML**, но вы не знали, какая библиотека даст чёткий результат без лишних хлопот? Вы не одиноки. Многие разработчики сталкиваются с проблемой преобразования веб‑страницы в растровое изображение, особенно когда требуется сглаживание или специальные подсказки шрифтов. + +В этом руководстве мы пошагово рассмотрим решение с использованием **Aspose.HTML for .NET**. К концу вы будете знать, как **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, а также как настроить конвейер рендеринга для идеального результата. Без лишних слов — только рабочий пример кода, объяснение каждой строки и несколько профессиональных советов, о которых вы бы хотели знать раньше. + +## Что понадобится + +- .NET 6+ (или .NET Framework 4.6+). +- Пакет NuGet `Aspose.HTML` (версия 23.9 или новее). +- Простой файл `input.html`, который вы хотите превратить в изображение. +- IDE, например Visual Studio 2022 (любой редактор, способный компилировать C#). + +Это всё. Никаких дополнительных бинарных файлов, внешних сервисов и странных конфигурационных файлов. Готовы? Поехали. + +## Создание PNG из HTML – основные шаги + +Ниже процесс разбит на четыре логических блока. Каждый блок соответствует конкретному фрагменту кода, и каждый фрагмент сопровождается коротким объяснением «почему». Следуйте порядку, копируйте код, и у вас через секунды появится PNG в `YOUR_DIRECTORY/output.png`. + +### Шаг 1: Загрузка HTML‑документа + +Первое, что нужно сделать, — предоставить Aspose.HTML объект документа. Представьте, что вы передаёте рендереру чистый холст, уже содержащий всю разметку, CSS и изображения, указанные в HTML‑файле. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Почему это важно:* `HTMLDocument` парсит файл, разрешает относительные URL и строит дерево DOM. Если файл не найден, здесь сразу бросается исключение — вы ловите проблему до начала рендеринга. + +### Шаг 2: Настройка параметров рендеринга изображения + +Далее мы указываем Aspose, какого размера должно быть конечное изображение и нужно ли сглаживание. Эти параметры напрямую влияют на визуальное качество операции **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Почему это важно:* Большие размеры дают больше деталей, но увеличивают потребление памяти. `UseAntialiasing` — секретный ингредиент для профессионального **export html as png**; без него вокруг текста и векторной графики появятся ступенчатые артефакты. + +### Шаг 3: Точная настройка рендеринга текста (Hinting & Font Style) + +Если ваш HTML использует пользовательские шрифты или нужны стили жирный/курсив, включите подсказки (hinting) и задайте соответствующий `WebFontStyle`. Hinting выравнивает глифы по пиксельным границам, что критично при **convert html to image** с фиксированным разрешением. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Почему это важно:* Hinting предотвращает размытость букв, особенно на экранах с низким DPI. Комбинация `Bold` и `Italic` демонстрирует, как можно накладывать несколько стилей; при желании можно выбрать только один или вовсе не использовать. + +### Шаг 4: Рендеринг PNG‑файла + +Наконец, создаём `ImageRenderer`, указываем документ, путь к выходному файлу и передаём собранные параметры. Вызов `Render()` делает всю тяжёлую работу. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Почему это важно:* `ImageRenderer` учитывает каждую настройку, заданную ранее — размер, сглаживание, подсказки текста, стиль шрифта. Когда `Render()` завершится, у вас будет полностью готовый PNG, который можно показывать в браузерах, загружать в облако или встраивать в отчёты. + +> **Pro tip:** Если нужен другой формат изображения (JPEG, BMP, GIF), просто измените расширение в пути выхода. Aspose автоматически выберет нужный кодировщик. + +## Render HTML to PNG with Aspose.HTML – полный пример + +Собрав все части вместе, получаем единый, автономный пример программы. Скопируйте блок ниже в новое консольное приложение и запустите его; файл `output.png` появится рядом с исходным HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Ожидаемый результат + +После выполнения вы должны увидеть файл, похожий на макет ниже (конечный вид зависит от вашего HTML‑контента). + +![Create PNG from HTML example](/images/html-to-png-sample.png "Sample output when you create PNG from HTML using Aspose.HTML") + +PNG сохранит макет, цвета и шрифты точно так же, как браузер отображает страницу, благодаря движку **render html document image** внутри Aspose. + +## Часто задаваемые вопросы и особые случаи + +### Что делать, если мой HTML ссылается на внешние изображения? + +Aspose.HTML использует относительные URL, основанные на папке `input.html`. Если изображения находятся в другом месте, сделайте одно из следующего: + +1. Используйте абсолютные URL (например, `https://example.com/logo.png`). +2. Установите `htmlDocument.BaseUrl`, указывая папку с ресурсами. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Как изменить DPI для вывода высокого разрешения? + +Можно масштабировать размер рендеринга, сохраняя соотношение сторон, либо задать `renderingOptions.DPI` (по умолчанию 96). Для печатных PNG часто используют 300 DPI: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Можно ли рендерить несколько страниц из одного HTML‑документа? + +Да. Если в HTML есть CSS‑разрывы страниц (`@media print { page-break-after: always; }`), Aspose создаст отдельные PNG‑файлы для каждой страницы при использовании `MultiPageImageRenderer`. Это продвинутый сценарий, но принцип **convert html to image** остаётся тем же. + +### Что насчёт потребления памяти? + +Рендеринг огромной страницы (несколько тысяч пикселей в ширину) может потребовать сотни мегабайт памяти. Чтобы снизить расход: + +- Рендерьте в минимально приемлемых размерах. +- Отключайте `UseAntialiasing`, если качество не критично. +- Быстро освобождайте `HTMLDocument` и `ImageRenderer` с помощью `using` (как показано). + +## Render HTML Document Image – дальнейшие шаги + +Теперь, когда вы освоили основы **render html to png**, рассмотрите следующие расширения: + +- **Пакетная конверсия:** Пройдитесь по папке с HTML‑файлами и генерируйте PNG за один проход. +- **Водяные знаки:** После рендеринга загрузите PNG через `System.Drawing` или `ImageSharp` и наложите логотип. +- **Генерация PDF:** Используйте `PdfRenderer` (тоже часть Aspose.HTML) для создания PDF из того же HTML‑источника. + +Все эти возможности базируются на тех же базовых концепциях, которые вы только что изучили, так что вы будете чувствовать себя как дома. + +## Заключение + +Мы прошли путь от постановки задачи — *как создать PNG из HTML* — до полного, готового к запуску решения, которое **renders HTML to PNG**, **converts HTML to image** и **exports HTML as PNG** с тонкой настройкой размера, сглаживания и подсказок текста. + +Попробуйте на своей веб‑странице, поиграйте с размерами и экспериментируйте с различными стилями шрифтов. Код короткий, API интуитивный, а результат выглядит точно как скриншот из браузера — только быстрее и полностью автоматизируемо. + +Если вам понравилось это руководство, загляните в наши другие туториалы по манипуляциям с **render html document image**, таким как конверсия HTML в PDF или создание SVG‑снимков. Приятного кодинга, и пусть ваши PNG всегда будут пиксельно‑идеальными! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/russian/net/html-extensions-and-conversions/_index.md index 00354e673..bed344fb7 100644 --- a/html/russian/net/html-extensions-and-conversions/_index.md +++ b/html/russian/net/html-extensions-and-conversions/_index.md @@ -73,6 +73,10 @@ Aspose.HTML для .NET — это не просто библиотека; эт Узнайте, как сохранить HTML‑страницу в архив ZIP с помощью Aspose.HTML для .NET, используя C# в полном пошаговом руководстве. ### [Сохраните HTML в ZIP в C# – Полный пример в памяти](./save-html-to-zip-in-c-complete-in-memory-example/) Сохраните HTML в архив ZIP полностью в памяти с помощью Aspose.HTML для .NET, используя C#. +### [Сохраните HTML в ZIP – Полный учебник C# по конвертации HTML в ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Узнайте, как сохранить HTML‑страницу в архив ZIP с помощью полного руководства на C# и Aspose.HTML. +### [Как заархивировать HTML из DOCX – Полный учебник C#](./how-to-zip-html-from-docx-complete-c-guide/) +Узнайте, как извлечь HTML из DOCX и упаковать его в ZIP с помощью Aspose.HTML и C# в полном пошаговом руководстве. ## Заключение diff --git a/html/russian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/russian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..5cccbc440 --- /dev/null +++ b/html/russian/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,281 @@ +--- +category: general +date: 2026-04-26 +description: Узнайте, как упаковать HTML‑вывод из файла DOCX, конвертировать docx + в HTML, задать размер изображения, экспортировать Word в PNG и как установить полужирный + шрифт — пошаговый код. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: ru +og_description: Освойте, как упаковать HTML‑вывод из DOCX‑файла, конвертировать docx + в HTML, задать размер изображения, экспортировать Word в PNG и как установить полужирный + шрифт с понятными примерами на C#. +og_title: Как упаковать HTML из DOCX в ZIP – Полное руководство по C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Как архивировать HTML из DOCX – Полное руководство по C# +url: /ru/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как упаковать HTML из DOCX – Полное руководство на C# + +Когда‑нибудь задавались вопросом **how to zip html**, которую вы генерируете из документа Word? Возможно, вам нужен один архив для передачи клиенту или хранения в облаке, и вы не хотите папку с разрозненными файлами. В этом руководстве мы пройдём процесс преобразования .docx в HTML, упакуем результат в ZIP‑файл и затем отрендерим тот же документ в PNG‑изображение с пользовательским размером и жирным шрифтом. По пути мы также рассмотрим *convert docx to html*, *set image size*, *export word to png* и *how to set bold font* — всё в одном цельном примере. + +К концу этого руководства у вас будет готовая к запуску программа на C#, которая: + +* Загружает DOCX с диска. +* Сохраняет его как HTML, автоматически упаковывая вывод в ZIP. +* Рендерит PNG с точными шириной, высотой, сглаживанием и жирным оформлением шрифта. + +Никаких внешних скриптов, без собственного кода для zip — только API Aspose.Words for .NET (или любая аналогичная библиотека), выполняющая всю тяжёлую работу. + +--- + +## Необходимые условия — Что вам нужно перед началом + +| Требование | Почему это важно | +|------------|------------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Обеспечивает среду выполнения для синтаксиса C# 10, используемого ниже. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | Обрабатывает преобразование DOCX → HTML, архивирование и рендеринг изображений. | +| **A DOCX file** named `input.docx` in a folder you control | Исходный документ, который мы будем преобразовывать. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Необходима для создания `doc.zip` и `out.png`. | + +Если вы используете NuGet, установите пакет с помощью: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** Бесплатная оценочная версия добавляет водяной знак к отрендеренному PNG. Приобретите лицензию для использования в продакшене. + +## Шаг 1: Загрузка исходного документа + +Первое, что мы делаем, — читаем файл Word в память. Это основа для **convert docx to html** и последующего рендеринга PNG. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Почему это важно:* +`Document` — центральный объект; он разбирает пакет .docx, разрешает стили и подготавливает ресурсы как для экспорта в HTML, так и для рендеринга изображений. Если файл не найден, будет выброшено исключение — убедитесь, что путь указан правильно. + +## Шаг 2: Настройка параметров сохранения HTML — ядро **How to Zip HTML** + +Здесь мы указываем Aspose.Words генерировать HTML, сохранять все связанные ресурсы (изображения, CSS) через пользовательский обработчик ресурсов и в конце упаковать всё в один архив. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Что делает `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Почему нужен обработчик:* +При преобразовании **convert docx to html** библиотека может создавать множество вспомогательных файлов (например, `image001.png`). Обработчик перехватывает каждую операцию сохранения, гарантируя, что всё попадает в ZIP, а не в отдельную папку. + +## Шаг 3: Сохранение документа как упакованного HTML + +Теперь происходит магия. Файлы HTML и их ресурсы записываются напрямую в `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Результат:** +`YOUR_DIRECTORY/doc.zip` теперь содержит: + +* `document.html` — основной разметочный файл. +* `document_files/` — подпапка с изображениями, CSS и любыми встроенными медиа. + +Вы можете распаковать архив, чтобы проверить структуру, или отдавать ZIP напрямую из веб‑API. + +## Шаг 4: Настройка параметров рендеринга изображения — управление **Set Image Size** и **How to Set Bold Font** + +Если вам нужен визуальный снимок Word‑файла, вы можете отрендерить его в PNG. Ниже показано, как задать точные размеры, включить сглаживание и принудительно применить жирный стиль ко всему тексту. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Почему эти флаги важны:* +- **Width/Height** позволяют адаптировать PNG под ваш UI‑макет. +- **UseAntialiasing** сглаживает края, предотвращая зубчатость. +- **FontStyle = Bold** переопределяет любые встроенные стили в DOCX, гарантируя, что PNG будет отображать жирный шрифт независимо от исходного форматирования. + +## Шаг 5: Рендеринг документа в PNG — шаг **Export Word to PNG** + +Наконец, мы связываем всё вместе и получаем файл изображения. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Что вы увидите:** +Чёткий `out.png` размером 800 × 600, со всем текстом, отрендеренным жирным, а любые векторные графики — сглаженными. + +## Полный рабочий пример — копировать, вставить, запустить + +Ниже полная программа, готовая к вставке в консольное приложение. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Ожидаемый вывод + +| Файл | Расположение | Описание | +|------|--------------|----------| +| `doc.zip` | `YOUR_DIRECTORY` | Упакованный HTML + ресурсы (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, весь текст жирный, сглаженный. | + +Вы можете открыть `doc.zip` любой программой-архиватором, извлечь `document.html` и просмотреть его в браузере. Изображение будет выглядеть точно так же, как отрендерено из оригинального Word‑файла. + +## Часто задаваемые вопросы и особые случаи + +### Что если мне нужен другой формат изображения? +Замените расширение файла в конструкторе `ImageRenderer` (`out.jpg`, `out.tiff`) и соответственно настройте `ImageSavingOptions`. API автоматически выбирает нужный кодировщик. + +### Можно ли управлять уровнем сжатия ZIP? +`HtmlSaveOptions` предоставляет свойство `ZipCompressionLevel` (например, `CompressionLevel.BestCompression`). Установите его перед вызовом `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Мой DOCX содержит большие изображения высокого разрешения — будет ли PNG огромным? +Да, потому что мы задаём фиксированный размер в пикселях. Чтобы уменьшить размер файла, либо уменьшите `Width`/`Height`, либо включите `ImageResizeOptions` внутри `ImageRenderingOptions`. + +### Как сохранить исходный вес шрифта вместо принудительного жирного? +Просто удалите строку `FontStyle = WebFontStyle.Bold`, либо задайте её условно, основываясь на флаге, который вы предоставляете пользователю. + +### Работает ли это на Linux/macOS? +Абсолютно. Aspose.Words кроссплатформенен; просто убедитесь, что установлен соответствующий .NET‑runtime. + +## Список проверки при устранении неполадок + +| Симптом | Вероятная причина | Решение | +|---------|-------------------|---------| +| `FileNotFoundException` on `input.docx` | Неправильный путь или отсутствующий файл | Проверьте, что `YOUR_DIRECTORY/input.docx` существует; используйте абсолютные пути для тестирования. | +| `OutOfMemoryException` during PNG render | Очень большой документ или огромные размеры изображения | Уменьшите `Width`/`Height` или рендерите страницы по отдельности (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` вернул другое имя файла или выбросил исключение | Убедитесь, что `ResourceSaving` не отменяет сохранение (`args.Cancel = false`). | +| Text not bold in PNG | | | +` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/russian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..71c91b558 --- /dev/null +++ b/html/russian/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Сохраняйте HTML в ZIP быстро с Aspose.HTML. Узнайте, как преобразовать + HTML в ZIP, используя пользовательский обработчик ресурсов, и как отрисовать HTML + в ZIP за несколько шагов. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: ru +og_description: Сохраните HTML в виде ZIP с помощью Aspose.HTML. Это руководство показывает, + как преобразовать HTML в ZIP, используя пользовательский обработчик ресурсов для + эффективного рендеринга HTML в ZIP. +og_title: Сохранить HTML в ZIP – пошаговое руководство по C# +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Сохранение HTML в ZIP – Полное руководство C# по конвертации HTML в ZIP +url: /ru/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Сохранить HTML как ZIP – Полное руководство C# по конвертации HTML в ZIP + +Когда‑нибудь вам нужно было **сохранить HTML как ZIP**, но вы не знали, какие вызовы API соединять? Вы не одиноки. Многие разработчики сталкиваются с проблемой, когда нужно упаковать HTML‑страницу вместе с её CSS, изображениями и шрифтами в один архив — особенно когда требуется, чтобы всё оставалось в памяти до тех пор, пока не решите, что с этим делать. + +Хорошая новость? С Aspose.HTML вы можете **конвертировать HTML в ZIP** в несколько строк, благодаря классу `HtmlSaveOptions` и **пользовательскому обработчику ресурсов**, который даёт полный контроль над тем, куда помещается каждый ресурс. В этом руководстве мы пройдём по точным шагам, как **рендерить HTML в ZIP**, хранить всё в памяти и при желании записать файлы на диск. К концу вы получите переиспользуемый фрагмент кода, который можно вставить в любой .NET‑проект. + +## Что покрывает это руководство + +* Как определить строку‑источник HTML (или загрузить её из файла). +* Как создать экземпляр `HTMLDocument` с помощью Aspose.HTML. +* Как создать **пользовательский обработчик ресурсов**, который возвращает `MemoryStream` для каждого ресурса. +* Как настроить `HtmlSaveOptions` для генерации **ZIP‑архива**, содержащего HTML и все его зависимые файлы. +* Как сохранить документ и, при желании, записать данные из памяти в папку на диске. + +Никаких внешних инструментов, никакого ручного архивирования — только чистый C# и Aspose.HTML. + +> **Pro tip:** Если вы уже используете Aspose.PDF или Aspose.Words, тот же шаблон `ResourceHandler` работает и там, так что вы можете переиспользовать этот код для разных типов документов. + +--- + +## Шаг 1: Сохранить HTML как ZIP – определить источник HTML + +Сначала нам нужна строка, содержащая HTML, который мы хотим заархивировать. В реальном проекте вы, возможно, будете читать её из файла, базы данных или ответа API, но для ясности мы зажёстим небольшой пример. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Почему это важно:** Конструктор `HTMLDocument` принимает либо путь к файлу, либо «сырой» HTML. Передача строки напрямую держит весь процесс в памяти, что идеально, когда позже нужно напрямую передать ZIP клиенту. + +--- + +## Шаг 2: Конвертировать HTML в ZIP – загрузить HTMLDocument + +Теперь передаём строку HTML в Aspose.HTML. Второй аргумент (`"."`) указывает библиотеке, где разрешать относительные URL; использование текущего каталога работает в большинстве простых случаев. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Что происходит:** `HTMLDocument` разбирает разметку, строит DOM и подготавливает все связанные ресурсы (CSS, изображения, шрифты) к рендерингу. Оборачивание в `using` гарантирует корректное освобождение нативных ресурсов. + +--- + +## Шаг 3: Рендерить HTML в ZIP – создать пользовательский обработчик ресурсов + +Aspose.HTML позволяет решить **куда** записывать каждый ресурс. Наследуя `ResourceHandler`, мы можем возвращать свежий `MemoryStream` для каждого файла, который рендерер пытается сохранить. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Зачем нужен кастомный обработчик?** Поведение по умолчанию пишет файлы в файловую систему. С обработчиком вы можете держать всё в RAM, сразу отправлять ZIP в веб‑ответ или даже шифровать потоки «на лету». + +--- + +## Шаг 4: Конвертировать HTML в ZIP – настроить параметры сохранения + +Вот сердце операции. `HtmlSaveOptions` указывает Aspose.HTML собрать всё в ZIP‑архив (`SaveToArchive = true`) и использовать наш `resourceHandler` для хранения. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Ключевой момент:** `ArchiveFileName` — это имя, которое появится внутри ZIP, а не путь на диске. Поскольку мы используем обработчик, основанный на памяти, ZIP полностью живёт в RAM, пока вы не решите, что с ним делать. + +--- + +## Шаг 5: Сохранить HTML как ZIP – зафиксировать архив + +Наконец, просим документ сохранить себя, используя только что построенные параметры. Этот вызов запускает конвейер рендеринга, вызывает наш обработчик для каждого ресурса и записывает окончательный ZIP в предоставленные нами потоки памяти. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Результат:** На данный момент `resourceHandler` содержит `MemoryStream` для главного HTML‑файла, а также дополнительные потоки для любого CSS, изображений или шрифтов, которые были упомянуты. ZIP‑файл полностью собран внутри этих потоков. + +--- + +## Шаг 6: Пользовательский обработчик ресурсов – предоставить поток для каждого ресурса + +Ниже реализация `MyResourceHandler`. Метод `HandleResource` вызывается один раз для каждого ресурса (HTML, CSS, изображения, шрифты, …). Мы просто возвращаем новый `MemoryStream` каждый раз. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Почему каждый раз новый поток?** Каждый ресурс нуждается в собственном контейнере; повторное использование одного потока испортит архив. `MemoryStream` дешёвый и автоматически растёт по мере необходимости. + +--- + +## Шаг 7: Необязательно – записать сохранённые ресурсы на диск + +Если хотите проверить сгенерированные файлы или сохранить копию на сервере, `ResourceSaved` вызывается после закрытия потока. Здесь мы записываем содержимое из памяти в указанную папку (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Примечание о граничных случаях:** Если вы работаете в среде без прав записи (например, Azure Functions), просто пропустите реализацию `ResourceSaved` или замените её загрузкой в облачное хранилище. + +--- + +## Полный, готовый к запуску пример (38 строк) + +Ниже полностью готовый код, который можно вставить в консольное приложение. Он укладывается в диапазон 15‑40 строк, использует понятные имена переменных и содержит места‑заполнители, которые вы можете настроить. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Ожидаемый вывод + +* Файл `result.zip` появляется внутри архива в памяти (вы можете получить его из `resourceHandler`, добавив свойство для доступа к потоку). +* Если вы оставили реализацию `ResourceSaved`, те же файлы также записываются в `YOUR_DIRECTORY/Output` на диске, повторяя внутреннюю структуру ZIP. + +--- + +## Часто задаваемые вопросы (FAQ) + +**Q: Работает ли это с большими HTML‑страницами?** +A: Абсолютно. `MemoryStream` расширяется по мере необходимости, но для страниц в несколько мегабайт может быть разумнее стримить напрямую в `FileStream`, чтобы избежать высокого давления на память. Просто измените `HandleResource`, чтобы он возвращал `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Можно ли зашифровать ZIP?** +A: Aspose.HTML не предоставляет встроенного шифрования, но после получения `MemoryStream` вы можете передать его в `System.IO.Compression.ZipArchive` с паролем или воспользоваться сторонней библиотекой, например SharpZipLib. + +**Q: Что насчёт относительных URL внутри HTML?** +A: Второй аргумент конструктора `HTMLDocument` (`"."`) указывает Aspose.HTML разрешать относительные пути относительно текущего каталога. Если ваши ресурсы находятся в другом месте, передайте соответствующий базовый путь или кастомный `UriResolver`. + +--- + +## Заключение + +Мы только что показали, как **сохранить HTML как ZIP** с помощью Aspose.HTML, **пользовательского обработчика ресурсов** и нескольких простых настроек. Такой подход позволяет **конвертировать HTML в ZIP** полностью в памяти, давая гибкость передавать результат клиенту, хранить в базе данных или записывать на диск для последующего использования. + +Экспериментируйте: замените `MemoryStream` на поток облачного хранилища, добавьте защиту паролем или обработайте десятки страниц параллельно. Основной шаблон — загрузить, обработать, настроить, сохранить — остается тем же, делая его переиспользуемым строительным блоком для любого .NET‑решения, которому нужно **рендерить HTML в ZIP** или **создавать ZIP из HTML**. + +Есть вопросы о пользовательской обработке ресурсов или других возможностях Aspose.HTML? Оставляйте комментарий ниже, и happy coding! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/spanish/net/generate-jpg-and-png-images/_index.md index 4323c4591..7d99acd47 100644 --- a/html/spanish/net/generate-jpg-and-png-images/_index.md +++ b/html/spanish/net/generate-jpg-and-png-images/_index.md @@ -44,7 +44,9 @@ Aprenda a utilizar Aspose.HTML para .NET para manipular documentos HTML, convert ### [Cómo habilitar el antialiasing al convertir DOCX a PNG/JPG](./how-to-enable-antialiasing-when-converting-docx-to-png-jpg/) Aprenda a activar el antialiasing al convertir documentos DOCX a imágenes PNG o JPG usando Aspose.HTML para .NET. ### [Convertir docx a PNG – crear archivo ZIP con C# tutorial](./convert-docx-to-png-create-zip-archive-c-tutorial/) -Aprenda a convertir documentos DOCX a imágenes PNG y empaquetarlos en un archivo ZIP usando C#. +Aprende a convertir documentos DOCX a imágenes PNG y empaquetarlos en un archivo ZIP usando C#. +### [Crear PNG a partir de HTML en C# – Guía paso a paso](./create-png-from-html-in-c-step-by-step-guide/) +Aprenda a generar imágenes PNG desde HTML usando C# con Aspose.HTML, siguiendo una guía paso a paso. ## Conclusión diff --git a/html/spanish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/spanish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..b7a57ec77 --- /dev/null +++ b/html/spanish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: Crear PNG a partir de HTML usando Aspose.HTML. Aprende cómo renderizar + HTML a PNG, convertir HTML a imagen, exportar HTML como PNG y renderizar rápidamente + la imagen del documento HTML. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: es +og_description: Crear PNG a partir de HTML en C# con Aspose.HTML. Esta guía le muestra + cómo renderizar HTML a PNG, convertir HTML a imagen y exportar HTML como PNG. +og_title: Crear PNG a partir de HTML en C# – Guía completa de programación +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Crear PNG a partir de HTML en C# – Guía paso a paso +url: /es/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear PNG a partir de HTML en C# – Guía completa de programación + +¿Alguna vez necesitaste **crear PNG a partir de HTML** pero no estabas seguro de qué biblioteca te daría una salida nítida sin complicaciones? No estás solo. Muchos desarrolladores tropiezan cuando intentan convertir una página web en un bitmap, especialmente cuando necesitan anti‑aliasing o indicaciones de fuentes personalizadas. + +En este tutorial recorreremos una solución práctica usando **Aspose.HTML for .NET**. Al final sabrás cómo **renderizar HTML a PNG**, **convertir HTML a imagen**, **exportar HTML como PNG**, e incluso ajustar la cadena de renderizado para obtener resultados perfectos. Sin rodeos—solo un ejemplo de código funcional, por qué cada línea es importante y algunos consejos profesionales que desearías haber sabido antes. + +## Lo que necesitarás + +- .NET 6+ (o .NET Framework 4.6+). +- El paquete NuGet `Aspose.HTML` (versión 23.9 o superior). +- Un archivo `input.html` sencillo que quieras convertir en una imagen. +- Un IDE como Visual Studio 2022 (cualquier editor que pueda compilar C# servirá). + +Eso es todo. Sin binarios extra, sin servicios externos y sin archivos de configuración obscuros. ¿Listo? Vamos a sumergirnos. + +## Crear PNG a partir de HTML – Pasos principales + +A continuación dividimos todo el proceso en cuatro bloques lógicos. Cada bloque corresponde a un fragmento de código concreto, y cada fragmento va acompañado de una breve explicación de “por qué”. Sigue el orden, copia el código y tendrás un PNG en `YOUR_DIRECTORY/output.png` en segundos. + +### Paso 1: Cargar el documento HTML + +Lo primero que debemos hacer es proporcionar a Aspose.HTML un objeto de documento con el que trabajar. Piensa en ello como entregar al renderizador un lienzo fresco que ya contiene todo el marcado, CSS e imágenes referenciadas por el archivo HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Por qué es importante:* `HTMLDocument` analiza el archivo, resuelve URLs relativas y construye un árbol DOM. Si el archivo no se encuentra, se lanza una excepción aquí mismo, de modo que detectas problemas temprano antes de que comience cualquier trabajo de renderizado. + +### Paso 2: Configurar las opciones de renderizado de imagen + +A continuación indicamos a Aspose qué tan grande debe ser la imagen final y si queremos anti‑aliasing. Estas opciones afectan directamente la fidelidad visual de la operación **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Por qué es importante:* Dimensiones mayores te dan más detalle pero aumentan el uso de memoria. `UseAntialiasing` es la salsa secreta para un **export html as png** de aspecto profesional—sin ella verás artefactos en escalones alrededor del texto y los gráficos vectoriales. + +### Paso 3: Ajustar el renderizado de texto (Hinting y estilo de fuente) + +Si tu HTML usa fuentes personalizadas o necesitas estilos negrita/cursiva, querrás habilitar el hinting y establecer el `WebFontStyle` apropiado. El hinting alinea los glifos a los límites de píxeles, lo cual es crucial cuando **convert html to image** a una resolución fija. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Por qué es importante:* El hinting evita letras borrosas, especialmente en pantallas de baja DPI. Combinar `Bold` e `Italic` muestra cómo puedes superponer varios estilos; por supuesto, puedes elegir solo uno o ninguno, según tu diseño. + +### Paso 4: Renderizar el archivo PNG + +Finalmente instanciamos `ImageRenderer`, lo apuntamos al documento, le damos la ruta de salida y le pasamos las opciones que construimos. La llamada a `Render()` hace todo el trabajo pesado. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Por qué es importante:* `ImageRenderer` respeta cada configuración que definimos antes—tamaño, anti‑aliasing, hinting de texto, estilo de fuente. Cuando `Render()` termina, tienes un PNG totalmente conforme que puede mostrarse en navegadores, subirse a almacenamiento en la nube o incrustarse en informes. + +> **Consejo profesional:** Si necesitas un formato de imagen diferente (JPEG, BMP, GIF), simplemente cambia la extensión del archivo en la ruta de salida. Aspose selecciona automáticamente el codificador correcto. + +## Renderizar HTML a PNG con Aspose.HTML – Ejemplo completo + +Unir todas las piezas te da un programa único y autocontenido. Copia el bloque a continuación en una nueva aplicación de consola y ejecútalo; verás `output.png` aparecer junto a tu HTML fuente. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Resultado esperado + +Después de la ejecución deberías ver un archivo similar al mock‑up a continuación (el aspecto real depende de tu contenido HTML). + +![Crear PNG a partir de HTML ejemplo](/images/html-to-png-sample.png "Ejemplo de salida al crear PNG a partir de HTML usando Aspose.HTML") + +El PNG preservará el diseño, colores y fuentes exactamente como el navegador mostraría la página—gracias al motor **render html document image** dentro de Aspose. + +## Preguntas frecuentes y casos límite + +### ¿Qué pasa si mi HTML referencia imágenes externas? + +Aspose.HTML sigue URLs relativas basadas en la carpeta de `input.html`. Si tienes imágenes almacenadas en otro lugar, puedes: + +1. Usar URLs absolutas (p. ej., `https://example.com/logo.png`). +2. Establecer `htmlDocument.BaseUrl` para apuntar a la carpeta que contiene los recursos. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### ¿Cómo ajusto la DPI para una salida de alta resolución? + +Puedes escalar el tamaño de renderizado manteniendo la misma relación de aspecto, o puedes establecer `renderingOptions.DPI` (el valor predeterminado es 96). Para PNG listos para impresión, 300 DPI es común: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### ¿Puedo renderizar varias páginas de un solo documento HTML? + +Sí. Si el HTML contiene saltos de página CSS (`@media print { page-break-after: always; }`), Aspose generará archivos PNG separados por página cuando uses `MultiPageImageRenderer`. Este es un escenario avanzado, pero el mismo principio **convert html to image** se aplica. + +### ¿Qué pasa con el consumo de memoria? + +Renderizar una página masiva (varios miles de píxeles de ancho) puede consumir cientos de megabytes. Para mantener bajo el uso de memoria: + +- Renderiza con las dimensiones mínimas aceptables. +- Desactiva `UseAntialiasing` si la calidad no es crítica. +- Elimina `HTMLDocument` y `ImageRenderer` rápidamente usando sentencias `using` (como se muestra). + +## Renderizar imagen de documento HTML – Próximos pasos + +Ahora que dominas los conceptos básicos de **render html to png**, considera estas extensiones: + +- **Conversión por lotes:** Recorrer una carpeta de archivos HTML y generar PNGs de una sola vez. +- **Marca de agua:** Después de renderizar, carga el PNG con `System.Drawing` o `ImageSharp` y superpone un logotipo. +- **Generación de PDF:** Usa `PdfRenderer` (también parte de Aspose.HTML) para crear PDFs desde la misma fuente HTML. + +Cada una de estas se basa en los mismos conceptos centrales que acabas de aprender, así que te sentirás como en casa. + +## Conclusión + +Te hemos llevado desde la declaración del problema—*cómo crear PNG a partir de HTML*—hasta una solución completa y ejecutable que **renderiza HTML a PNG**, **convierte HTML a imagen** y **exporta HTML como PNG** con control granular sobre tamaño, anti‑aliasing y hinting de texto. + +Pruébalo con tu propia página web, ajusta las dimensiones y experimenta con diferentes estilos de fuente. El código es breve, la API es intuitiva y los resultados se ven exactamente como una captura de pantalla tomada en un navegador—solo que más rápido y totalmente automatizable. + +Si te gustó esta guía, consulta nuestros otros tutoriales sobre manipulación de **render html document image**, como convertir HTML a PDF o generar instantáneas SVG. ¡Feliz codificación, y que tus PNGs siempre sean perfectos a nivel de píxel! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/spanish/net/html-extensions-and-conversions/_index.md index 58e38eec4..e3acb327d 100644 --- a/html/spanish/net/html-extensions-and-conversions/_index.md +++ b/html/spanish/net/html-extensions-and-conversions/_index.md @@ -65,6 +65,8 @@ Convierta HTML a MHTML en .NET con Aspose.HTML: una guía paso a paso para archi Descubra cómo utilizar Aspose.HTML para .NET para manipular y convertir documentos HTML. Guía paso a paso para un desarrollo .NET eficaz. ### [Guardar HTML como ZIP – Tutorial completo en C#](./save-html-as-zip-complete-c-tutorial/) Aprenda a guardar documentos HTML como archivos ZIP usando Aspose.HTML para .NET con este tutorial paso a paso en C#. +### [Guardar HTML como ZIP – Guía completa en C# para convertir HTML a ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Aprenda a guardar documentos HTML como archivos ZIP usando C# con una guía paso a paso completa. ### [Convierte HTML a TIFF en .NET con Aspose.HTML](./convert-html-to-tiff/) Aprenda a convertir HTML a TIFF con Aspose.HTML para .NET. Siga nuestra guía paso a paso para optimizar eficazmente el contenido web. ### [Convierta HTML a XPS en .NET con Aspose.HTML](./convert-html-to-xps/) @@ -73,6 +75,8 @@ Descubra el poder de Aspose.HTML para .NET: convierta HTML a XPS sin esfuerzo. R Aprenda a empaquetar archivos HTML en un archivo ZIP usando C# y Aspose.HTML. Guía paso a paso con ejemplos de código. ### [Guardar HTML en ZIP en C# – Ejemplo completo en memoria](./save-html-to-zip-in-c-complete-in-memory-example/) Aprenda a guardar HTML en un archivo ZIP usando C# con un ejemplo completo en memoria. +### [Cómo comprimir HTML desde DOCX – Guía completa en C#](./how-to-zip-html-from-docx-complete-c-guide/) +Aprenda a extraer HTML de un DOCX y guardarlo en un archivo ZIP usando C# y Aspose.HTML. Guía paso a paso con ejemplos de código. ## Conclusión diff --git a/html/spanish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/spanish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..2c5005e7b --- /dev/null +++ b/html/spanish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Aprende a comprimir la salida HTML de un archivo DOCX, convertir docx + a HTML, establecer el tamaño de la imagen, exportar Word a PNG y cómo aplicar fuente + en negrita, paso a paso con código. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: es +og_description: Domina cómo comprimir la salida HTML de un archivo DOCX, convertir + docx a HTML, establecer el tamaño de la imagen, exportar Word a PNG y cómo aplicar + fuente en negrita con claros ejemplos en C#. +og_title: Cómo comprimir HTML desde DOCX – Guía completa de C# +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Cómo comprimir HTML de DOCX – Guía completa de C# +url: /es/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo Zip HTML desde DOCX – Guía completa en C# + +¿Alguna vez te has preguntado **cómo zip html** que generas a partir de un documento de Word? Tal vez necesites un único archivo para enviar a un cliente o almacenar en la nube, y no quieras una carpeta llena de archivos sueltos. En este tutorial recorreremos la conversión de un .docx a HTML, empaquetaremos el resultado en un archivo ZIP y luego renderizaremos el mismo documento a una imagen PNG con un tamaño personalizado y texto en negrita. A lo largo del camino también cubriremos *convert docx to html*, *set image size*, *export word to png* y *how to set bold font*, todo en un ejemplo cohesivo. + +Al final de esta guía tendrás un programa C# listo‑para‑ejecutar que: + +* Carga un DOCX desde disco. +* Lo guarda como HTML mientras lo comprime automáticamente. +* Renderiza un PNG con ancho y alto precisos, antialiasing y estilo de fuente en negrita. + +Sin scripts externos, sin lógica de zip manual—solo la API de Aspose.Words for .NET (o cualquier biblioteca equivalente) haciendo el trabajo pesado. + +--- + +## Requisitos previos — Lo que necesitas antes de comenzar + +| Requisito | Por qué es importante | +|-------------|----------------| +| **.NET 6.0+** (o .NET Framework 4.7.2) | Proporciona el runtime para la sintaxis de C# 10 usada a continuación. | +| **Aspose.Words for .NET** (o una biblioteca similar que soporte `HtmlSaveOptions` y `ImageRenderer`) | Gestiona la conversión DOCX → HTML, el archivado y la renderización de imágenes. | +| **Un archivo DOCX** llamado `input.docx` en una carpeta que controlas | El documento fuente que transformaremos. | +| **Permiso de escritura** en el directorio de salida (`YOUR_DIRECTORY`) | Necesario para crear `doc.zip` y `out.png`. | + +Si utilizas NuGet, instala el paquete con: + +```bash +dotnet add package Aspose.Words +``` + +> **Consejo profesional:** La versión de evaluación gratuita añade una marca de agua al PNG renderizado. Obtén una licencia para uso en producción. + +--- + +## Paso 1: Cargar el documento fuente + +Lo primero que hacemos es leer el archivo de Word en memoria. Esta es la base para **convert docx to html** y para renderizar el PNG más adelante. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Por qué esto es importante:* +`Document` es el objeto central; analiza el paquete .docx, resuelve estilos y prepara recursos tanto para la exportación a HTML como para la renderización de imágenes. Si el archivo no se encuentra, se lanza una excepción—asegúrate de que la ruta sea correcta. + +--- + +## Paso 2: Configurar las opciones de guardado HTML – El núcleo de **How to Zip HTML** + +Aquí indicamos a Aspose.Words que genere HTML, almacene todos los recursos relacionados (imágenes, CSS) mediante un manejador de recursos personalizado y, finalmente, comprima todo en un único archivo ZIP. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Qué hace `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Por qué necesitamos un manejador:* +Al convertir **convert docx to html**, la biblioteca puede generar muchos archivos auxiliares (p. ej., `image001.png`). El manejador intercepta cada operación de guardado, asegurando que todo termine dentro del ZIP en lugar de una carpeta suelta. + +--- + +## Paso 3: Guardar el documento como HTML comprimido + +Ahora ocurre la magia. Los archivos HTML y sus recursos se escriben directamente en `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Resultado:** +`YOUR_DIRECTORY/doc.zip` ahora contiene: + +* `document.html` – el marcado principal. +* `document_files/` – una subcarpeta con imágenes, CSS y cualquier medio incrustado. + +Puedes descomprimirlo para verificar la estructura, o servir el ZIP directamente desde una API web. + +--- + +## Paso 4: Configurar las opciones de renderizado de imagen – Controlando **Set Image Size** y **How to Set Bold Font** + +Si necesitas una captura visual del archivo Word, puedes renderizarlo a PNG. El bloque siguiente muestra cómo definir dimensiones exactas, habilitar antialiasing y forzar estilo de fuente en negrita para todo el texto. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Por qué estas banderas son importantes:* +- **Width/Height** te permiten adaptar el PNG a tu diseño UI. +- **UseAntialiasing** suaviza los bordes, evitando líneas dentadas. +- **FontStyle = Bold** sobrescribe cualquier estilo en línea del DOCX, garantizando que el PNG tenga un aspecto en negrita sin importar el formato original. + +--- + +## Paso 5: Renderizar el documento a PNG – El paso **Export Word to PNG** + +Finalmente, unimos todo y producimos el archivo de imagen. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Lo que verás:** +Un nítido `out.png` que coincide con el tamaño 800 × 600, con todo el texto en negrita y cualquier gráfico vectorial antialiasado. + +--- + +## Ejemplo completo – Copiar, pegar, ejecutar + +A continuación tienes el programa completo, listo para que lo insertes en una aplicación de consola. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Salida esperada + +| Archivo | Ubicación | Descripción | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML comprimido + recursos (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, todo el texto en negrita, antialiasado. | + +Puedes abrir `doc.zip` con cualquier herramienta de archivado, extraer `document.html` y verlo en un navegador. La imagen aparecerá exactamente como se renderizó desde el archivo Word original. + +--- + +## Preguntas frecuentes y casos límite + +### ¿Qué pasa si necesito un formato de imagen diferente? +Cambia la extensión del archivo en el constructor de `ImageRenderer` (`out.jpg`, `out.tiff`) y ajusta `ImageSavingOptions` en consecuencia. La API selecciona automáticamente el codificador correcto. + +### ¿Puedo controlar el nivel de compresión del ZIP? +`HtmlSaveOptions` expone una propiedad `ZipCompressionLevel` (p. ej., `CompressionLevel.BestCompression`). Establécela antes de llamar a `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Mi DOCX contiene imágenes de alta resolución—¿el PNG será enorme? +Sí, porque forzamos un tamaño de píxel fijo. Para mantener bajo el tamaño del archivo, reduce `Width`/`Height` o habilita `ImageResizeOptions` dentro de `ImageRenderingOptions`. + +### ¿Cómo mantengo el grosor de fuente original en lugar de forzar negrita? +Simplemente elimina la línea `FontStyle = WebFontStyle.Bold`, o establécela de forma condicional según una bandera que expongas al usuario. + +### ¿Esto funciona en Linux/macOS? +Absolutamente. Aspose.Words es multiplataforma; solo asegúrate de tener el runtime .NET adecuado instalado. + +--- + +## Lista de verificación de solución de problemas + +| Síntoma | Causa probable | Solución | +|---------|----------------|----------| +| `FileNotFoundException` en `input.docx` | Ruta incorrecta o archivo faltante | Verifica que `YOUR_DIRECTORY/input.docx` exista; usa rutas absolutas para pruebas. | +| `OutOfMemoryException` durante el renderizado PNG | Documento muy grande o dimensiones de imagen enormes | Reduce `Width`/`Height` o renderiza páginas individualmente (`ImageRenderer.Render(pageIndex)`). | +| ZIP contiene carpeta `document_files` vacía | `MyResourceHandler` devolvió un nombre de archivo diferente o lanzó una excepción | Asegúrate de que `ResourceSaving` no cancele el guardado (`args.Cancel = false`). | +| Texto no negrita en PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/spanish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..20d0b0cf5 --- /dev/null +++ b/html/spanish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Guarda HTML como ZIP rápidamente con Aspose.HTML. Aprende cómo convertir + HTML a ZIP usando un controlador de recursos personalizado y renderizar HTML a ZIP + en solo unos pocos pasos. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: es +og_description: Guarda HTML como ZIP con Aspose.HTML. Esta guía muestra cómo convertir + HTML a ZIP, utilizando un controlador de recursos personalizado para renderizar + HTML a ZIP de manera eficiente. +og_title: Guardar HTML como ZIP – Tutorial paso a paso de C# +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Guardar HTML como ZIP – Guía completa de C# para convertir HTML a ZIP +url: /es/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Guardar HTML como ZIP – Guía completa de C# para convertir HTML a ZIP + +¿Alguna vez necesitaste **guardar HTML como ZIP** pero no estabas seguro de qué llamadas a la API encadenar? No estás solo. Muchos desarrolladores se topan con un obstáculo cuando quieren empaquetar una página HTML junto con su CSS, imágenes y fuentes en un solo archivo —especialmente cuando desean que todo permanezca en memoria hasta decidir qué hacer con él. + +¿La buena noticia? Con Aspose.HTML puedes **convertir HTML a ZIP** en unas cuantas líneas, gracias a la clase `HtmlSaveOptions` y a un **manejador de recursos personalizado** que te brinda control total sobre dónde termina cada recurso. En este tutorial recorreremos paso a paso los pasos exactos para **renderizar HTML a ZIP**, almacenar todo en memoria y, opcionalmente, escribir los archivos en disco. Al final tendrás un fragmento reutilizable que podrás insertar en cualquier proyecto .NET. + +## Qué cubre este tutorial + +* Cómo definir la cadena fuente de HTML (o cargarla desde un archivo). +* Cómo instanciar un `HTMLDocument` con Aspose.HTML. +* Cómo crear un **manejador de recursos personalizado** que devuelva un `MemoryStream` para cada recurso. +* Cómo configurar `HtmlSaveOptions` para generar un **archivo ZIP** que contenga el HTML y todos sus archivos dependientes. +* Cómo guardar el documento y, si lo deseas, escribir los datos en memoria a una carpeta en disco. + +Sin herramientas externas, sin zip manual —solo C# puro y Aspose.HTML. + +> **Consejo profesional:** Si ya estás usando Aspose.PDF o Aspose.Words, el mismo patrón `ResourceHandler` funciona allí también, por lo que puedes reutilizar este código en varios tipos de documentos. + +--- + +## Paso 1: Guardar HTML como ZIP – Definir la fuente HTML + +Primero necesitamos una cadena que contenga el HTML que queremos archivar. En un proyecto real podrías leerla desde un archivo, una base de datos o la respuesta de una API, pero para mayor claridad la codificaremos directamente. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Por qué es importante:** El constructor de `HTMLDocument` acepta ya sea una ruta de archivo o HTML sin procesar. Proveer la cadena directamente mantiene todo el proceso en memoria, lo cual es perfecto cuando luego quieres transmitir el ZIP directamente a un cliente. + +--- + +## Paso 2: Convertir HTML a ZIP – Cargar el HTMLDocument + +Ahora entregamos la cadena HTML a Aspose.HTML. El segundo argumento (`"."`) indica a la biblioteca dónde resolver URLs relativas; usar el directorio actual funciona para la mayoría de los casos simples. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Qué está sucediendo:** `HTMLDocument` analiza el marcado, construye un DOM y prepara todos los recursos vinculados (CSS, imágenes, fuentes) para la renderización. Envolverlo en un bloque `using` garantiza la correcta liberación de recursos nativos. + +--- + +## Paso 3: Renderizar HTML a ZIP – Crear un manejador de recursos personalizado + +Aspose.HTML te permite decidir **dónde** se escribe cada recurso. Al subclasificar `ResourceHandler` podemos devolver un nuevo `MemoryStream` para cada archivo que el renderizador necesite guardar. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **¿Por qué un manejador personalizado?** El comportamiento predeterminado escribe los archivos en el sistema de archivos. Con un manejador puedes mantener todo en RAM, enviar el ZIP directamente a una respuesta web o incluso cifrar los streams sobre la marcha. + +--- + +## Paso 4: Convertir HTML a ZIP – Configurar opciones de guardado + +Aquí está el corazón de la operación. `HtmlSaveOptions` indica a Aspose.HTML que agrupe todo en un archivo ZIP (`SaveToArchive = true`) y que utilice nuestro `resourceHandler` para el almacenamiento. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Idea clave:** `ArchiveFileName` es el nombre que aparecerá dentro del ZIP, no una ruta en disco. Como estamos usando un manejador basado en memoria, el ZIP vive completamente en RAM hasta que decidamos qué hacer con él. + +--- + +## Paso 5: Guardar HTML como ZIP – Persistir el archivo + +Finalmente, le pedimos al documento que se guarde usando las opciones que acabamos de crear. Esta llamada activa la cadena de renderizado, invoca a nuestro manejador para cada recurso y escribe el ZIP final en los streams de memoria que proporcionamos. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Resultado:** En este punto `resourceHandler` contiene un `MemoryStream` para el archivo HTML principal, más streams adicionales para cualquier CSS, imágenes o fuentes que se hayan referenciado. El archivo ZIP está completamente ensamblado dentro de esos streams. + +--- + +## Paso 6: Manejador de recursos personalizado – Proveer un stream para cada recurso + +A continuación se muestra la implementación de `MyResourceHandler`. El método `HandleResource` se llama una vez por recurso (HTML, CSS, imágenes, fuentes, …). Simplemente devolvemos un nuevo `MemoryStream` cada vez. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **¿Por qué un stream nuevo?** Cada recurso necesita su propio contenedor; reutilizar un único stream corrompería el archivo. `MemoryStream` es liviano y crece automáticamente según sea necesario. + +--- + +## Paso 7: Opcional – Escribir los recursos guardados en disco + +Si deseas inspeccionar los archivos generados o mantener una copia en el servidor, `ResourceSaved` se llama después de que se cierra un stream. Aquí escribimos el contenido en memoria a una carpeta que especifiques (`TU_DIRECTORIO/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Nota de caso límite:** Si ejecutas en un entorno sin permisos de escritura (p. ej., Azure Functions), simplemente omite la implementación de `ResourceSaved` o reemplázala por una carga a almacenamiento en la nube. + +--- + +## Ejemplo completo y ejecutable (38 líneas) + +A continuación tienes el código completo listo para pegar en una aplicación de consola. Respeta el límite de 15‑40 líneas, usa nombres de variables descriptivos e incluye marcadores de posición que puedes ajustar. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Salida esperada + +* Aparecerá un archivo `result.zip` dentro del archivo en memoria (puedes recuperarlo desde `resourceHandler` si añades una propiedad para exponer el stream). +* Si mantuviste la implementación de `ResourceSaved`, los mismos archivos también se escribirán en `TU_DIRECTORIO/Output` en disco, replicando la estructura interna del ZIP. + +--- + +## Preguntas frecuentes (FAQ) + +**P: ¿Esto funciona con páginas HTML grandes?** +R: Absolutamente. `MemoryStream` se expande según sea necesario, pero para páginas de varios megabytes podrías querer transmitir directamente a un `FileStream` para evitar alta presión de memoria. Simplemente cambia `HandleResource` para que devuelva `File.Create(Path.Combine("temp", info.FileName))`. + +**P: ¿Puedo cifrar el ZIP?** +R: Aspose.HTML no incluye cifrado incorporado, pero después de obtener el `MemoryStream` puedes pasarlo a `System.IO.Compression.ZipArchive` con una contraseña, o usar una biblioteca de terceros como SharpZipLib. + +**P: ¿Qué pasa con las URLs relativas dentro del HTML?** +R: El segundo argumento de `HTMLDocument` (`"."`) indica a Aspose.HTML que resuelva rutas relativas contra el directorio actual. Si tus recursos están en otro lugar, pasa la ruta base adecuada o un `UriResolver` personalizado. + +--- + +## Conclusión + +Acabamos de mostrar cómo **guardar HTML como ZIP** usando Aspose.HTML, un **manejador de recursos personalizado** y unos pocos pasos de configuración sencillos. El enfoque te permite **convertir HTML a ZIP** completamente en memoria, dándote la flexibilidad de transmitir el resultado a un cliente web, almacenarlo en una base de datos o escribirlo en disco para uso posterior. + +Siéntete libre de experimentar: sustituir `MemoryStream` por un stream de almacenamiento en la nube, añadir protección con contraseña o procesar en paralelo docenas de páginas. El patrón central —cargar, manejar, configurar, guardar— permanece igual, convirtiéndolo en un bloque reutilizable para cualquier solución .NET que necesite **renderizar HTML a ZIP** o **crear ZIP a partir de HTML**. + +¿Tienes más preguntas sobre el manejo de recursos personalizados u otras funciones de Aspose.HTML? Deja un comentario abajo, ¡y feliz codificación! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/swedish/net/generate-jpg-and-png-images/_index.md index 39785fb46..cf8c51234 100644 --- a/html/swedish/net/generate-jpg-and-png-images/_index.md +++ b/html/swedish/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Lär dig att använda Aspose.HTML för .NET för att manipulera HTML-dokument, k Lär dig hur du aktiverar kantutjämning för att förbättra bildkvaliteten när du konverterar DOCX-dokument till PNG eller JPG med Aspose.HTML. ### [Konvertera DOCX till PNG – skapa zip‑arkiv C#‑handledning](./convert-docx-to-png-create-zip-archive-c-tutorial/) Lär dig hur du konverterar DOCX-filer till PNG-bilder och packar dem i ett zip‑arkiv med C# och Aspose.HTML. +### [Skapa PNG från HTML i C# – Steg‑för‑steg‑guide](./create-png-from-html-in-c-step-by-step-guide/) +Lär dig hur du konverterar HTML till PNG-bilder i C# med en detaljerad steg‑för‑steg‑handledning. ## Slutsats diff --git a/html/swedish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/swedish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..1b5131c75 --- /dev/null +++ b/html/swedish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: Skapa PNG från HTML med Aspose.HTML. Lär dig hur du renderar HTML till + PNG, konverterar HTML till bild, exporterar HTML som PNG och renderar HTML-dokumentets + bild snabbt. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: sv +og_description: Skapa PNG från HTML i C# med Aspose.HTML. Denna guide visar hur du + renderar HTML till PNG, konverterar HTML till bild och exporterar HTML som PNG. +og_title: Skapa PNG från HTML i C# – Komplett programmeringsguide +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Skapa PNG från HTML i C# – Steg‑för‑steg guide +url: /sv/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa PNG från HTML i C# – Komplett programmeringsguide + +Har du någonsin behövt **create PNG from HTML** men varit osäker på vilket bibliotek som ger dig skarpt resultat utan huvudvärk? Du är inte ensam. Många utvecklare snubblar när de försöker omvandla en webbsida till en bitmap, särskilt när de behöver anti‑aliasing eller anpassade fonthintar. + +I den här handledningen går vi igenom en praktisk lösning med **Aspose.HTML for .NET**. I slutet kommer du att veta hur du **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, och till och med finjusterar renderingspipeline för perfekta resultat. Inga onödiga detaljer—bara ett fungerande kodexempel, varför varje rad är viktig, och några proffstips du önskar att du hade känt till tidigare. + +## Vad du behöver + +- .NET 6+ (eller .NET Framework 4.6+). +- `Aspose.HTML` NuGet‑paketet (version 23.9 eller nyare). +- En enkel `input.html`‑fil som du vill omvandla till en bild. +- En IDE såsom Visual Studio 2022 (valfri editor som kan kompilera C# fungerar). + +Det är allt. Inga extra binärer, inga externa tjänster och inga kryptiska konfigurationsfiler. Är du redo? Låt oss dyka ner. + +## Skapa PNG från HTML – Grundsteg + +Nedan delar vi upp hela processen i fyra logiska delar. Varje del motsvarar ett konkret kodblock, och varje block följs av en kort “varför”-förklaring. Följ ordningen, kopiera koden, så har du en PNG som ligger i `YOUR_DIRECTORY/output.png` på några sekunder. + +### Steg 1: Ladda HTML‑dokumentet + +Det första vi måste göra är att ge Aspose.HTML ett dokumentobjekt att arbeta med. Tänk på det som att ge renderaren en tom duk som redan innehåller all markup, CSS och bilder som refereras av HTML‑filen. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Varför detta är viktigt:* `HTMLDocument` parsar filen, löser relativa URL:er och bygger ett DOM‑träd. Om filen inte kan hittas kastas ett undantag här—så du fångar problem tidigt innan någon renderingsarbete påbörjas. + +### Steg 2: Konfigurera bildrenderingsalternativ + +Därefter talar vi om för Aspose hur stor den slutgiltiga bilden ska vara och om vi vill ha anti‑aliasing. Dessa alternativ påverkar direkt den visuella troheten i **render html to png**‑operationen. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Varför detta är viktigt:* Större dimensioner ger mer detalj men ökar minnesanvändningen. `UseAntialiasing` är den hemliga ingrediensen för en professionell **export html as png**—utan den ser du trappstegartefakter runt text och vektorgrafik. + +### Steg 3: Finjustera textrendering (Hinting & Font Style) + +Om ditt HTML använder anpassade teckensnitt eller du behöver fet/kursiv stil, vill du aktivera hinting och sätta rätt `WebFontStyle`. Hinting justerar glyfer till pixelgränser, vilket är avgörande när du **convert html to image** med en fast upplösning. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Varför detta är viktigt:* Hinting förhindrar suddiga bokstäver, särskilt på låg‑DPI‑skärmar. Att kombinera `Bold` och `Italic` visar hur du kan stapla flera stilar; du kan naturligtvis välja bara en eller ingen, beroende på din design. + +### Steg 4: Rendera PNG‑filen + +Till sist instansierar vi `ImageRenderer`, pekar den på dokumentet, anger utsökvägen och överlämnar de alternativ vi byggt. Anropet `Render()` gör allt tungt arbete. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Varför detta är viktigt:* `ImageRenderer` respekterar varje inställning vi definierade tidigare—storlek, anti‑aliasing, texthinting, teckensnittsstil. När `Render()` är klar har du en fullt kompatibel PNG som kan visas i webbläsare, laddas upp till molnlagring eller bäddas in i rapporter. + +> **Proffstips:** Om du behöver ett annat bildformat (JPEG, BMP, GIF), ändra bara filändelsen i utsökvägen. Aspose väljer automatiskt rätt kodare. + +## Rendera HTML till PNG med Aspose.HTML – Fullt exempel + +När du sätter ihop alla bitar får du ett enda, självständigt program. Kopiera blocket nedan till en ny konsolapp och kör den; du kommer att se `output.png` dyka upp bredvid din käll‑HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Förväntat resultat + +Efter körning bör du se en fil liknande mock‑upen nedan (det faktiska utseendet beror på ditt HTML‑innehåll). + +![Skapa PNG från HTML‑exempel](/images/html-to-png-sample.png "Exempel på utdata när du skapar PNG från HTML med Aspose.HTML") + +PNG‑filen kommer att bevara layout, färger och teckensnitt exakt som webbläsaren skulle visa sidan—tack vare **render html document image**‑motorn i Aspose. + +## Vanliga frågor & specialfall + +### Vad händer om mitt HTML refererar till externa bilder? + +Aspose.HTML följer relativa URL:er baserat på mappen för `input.html`. Om du har bilder lagrade någon annanstans, antingen: + +1. Använd absoluta URL:er (t.ex. `https://example.com/logo.png`). +2. Sätt `htmlDocument.BaseUrl` så att den pekar på mappen som innehåller resurserna. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Hur justerar jag DPI för högupplöst utdata? + +Du kan skala renderingsstorleken samtidigt som du behåller samma bildförhållande, eller så kan du sätta `renderingOptions.DPI` (standard är 96). För utskriftsklara PNG‑filer är 300 DPI vanligt: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Kan jag rendera flera sidor från ett enda HTML‑dokument? + +Ja. Om HTML‑filen innehåller CSS‑sidbrytningar (`@media print { page-break-after: always; }`), kommer Aspose att generera separata PNG‑filer per sida när du använder `MultiPageImageRenderer`. Detta är ett avancerat scenario, men samma **convert html to image**‑princip gäller. + +### Vad gäller minnesanvändning? + +Att rendera en massiv sida (flera tusen pixlar bred) kan förbruka hundratals megabyte. För att hålla minnesanvändningen låg: + +- Rendera med de minsta acceptabla dimensionerna. +- Stäng av `UseAntialiasing` om kvaliteten inte är kritisk. +- Avsluta (`Dispose`) `HTMLDocument` och `ImageRenderer` omedelbart med `using`‑satser (som visas). + +## Rendera HTML‑dokumentbild – Nästa steg + +Nu när du behärskar grunderna i **render html to png**, överväg dessa tillägg: + +- **Batchkonvertering:** Loopa igenom en mapp med HTML‑filer och generera PNG‑filer på en gång. +- **Vattenstämpel:** Efter rendering, ladda PNG‑filen med `System.Drawing` eller `ImageSharp` och lägg över en logotyp. +- **PDF‑generering:** Använd `PdfRenderer` (också en del av Aspose.HTML) för att skapa PDF‑filer från samma HTML‑källa. + +Var och en av dessa bygger på samma grundkoncept som du just lärt dig, så du kommer att känna dig som hemma. + +## Slutsats + +Vi har tagit dig från problemformuleringen—*how to create PNG from HTML*—till en komplett, körbar lösning som **renders HTML to PNG**, **converts HTML to image**, och **exports HTML as PNG** med finjusterad kontroll över storlek, anti‑aliasing och texthinting. + +Prova det med din egen webbsida, justera dimensionerna och experimentera med olika teckensnittsstilar. Koden är kort, API:et är intuitivt, och resultaten ser exakt ut som en skärmdump tagen i en webbläsare—bara snabbare och helt automatiserbart. + +Om du gillade den här guiden, kolla in våra andra handledningar om **render html document image**‑manipulation, såsom att konvertera HTML till PDF eller generera SVG‑ögonblicksbilder. Lycka till med kodandet, och må dina PNG‑filer alltid vara pixelperfekta! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/swedish/net/html-extensions-and-conversions/_index.md index 6d01c9b96..585bfcca2 100644 --- a/html/swedish/net/html-extensions-and-conversions/_index.md +++ b/html/swedish/net/html-extensions-and-conversions/_index.md @@ -71,8 +71,12 @@ Lär dig skapa ett HTML-dokument med stiliserad text och konvertera det till PDF Skapa PDF från HTML med C# och Aspose.HTML för .NET. Följ vår steg‑för‑steg‑guide för enkel PDF‑generering. ### [Spara HTML som ZIP – Komplett C#-handledning](./save-html-as-zip-complete-c-tutorial/) Lär dig hur du sparar HTML som en ZIP-fil med en komplett C#-kodexempel och steg-för-steg-instruktioner. +### [Spara HTML som ZIP – Komplett C#-guide för att konvertera HTML till ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Lär dig konvertera HTML till ZIP med en komplett C#-guide, inklusive kodexempel och steg‑för‑steg‑instruktioner. ### [Spara HTML till ZIP i C# – Komplett minnesexempel](./save-html-to-zip-in-c-complete-in-memory-example/) Lär dig hur du sparar HTML-filer i ett ZIP‑arkiv i minnet med C# och Aspose.HTML. +### [Hur du zippar HTML från DOCX – Komplett C#-guide](./how-to-zip-html-from-docx-complete-c-guide/) +Lär dig hur du zippar HTML som extraheras från DOCX-filer med en komplett C#‑guide och kodexempel. ## Slutsats diff --git a/html/swedish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/swedish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..ec412bea9 --- /dev/null +++ b/html/swedish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: Lär dig hur du zippar HTML-utdata från en DOCX-fil, konverterar docx + till HTML, ställer in bildstorlek, exporterar Word till PNG och hur du sätter fet + stil – steg‑för‑steg kod. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: sv +og_description: Behärska hur du zippar HTML-utdata från en DOCX-fil, konverterar docx + till HTML, anger bildstorlek, exporterar Word till PNG och hur du sätter fet stil + med tydliga C#‑exempel. +og_title: Hur man zippar HTML från DOCX – Komplett C#‑guide +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Hur man zippar HTML från DOCX – Komplett C#-guide +url: /sv/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man zippar HTML från DOCX – Komplett C#-guide + +Har du någonsin undrat **how to zip html** som du genererar från ett Word-dokument? Kanske behöver du ett enda arkiv att skicka till en kund eller lagra i molnet, och du vill inte ha en mapp full av lösa filer. I den här handledningen går vi igenom hur man konverterar en .docx‑fil till HTML, packar resultatet i en ZIP‑fil och sedan renderar samma dokument till en PNG‑bild med anpassad storlek och fet text. På vägen täcker vi även *convert docx to html*, *set image size*, *export word to png* och *how to set bold font*—allt i ett sammanhängande exempel. + +Vid slutet av den här guiden har du ett färdigt C#‑program som: + +* Laddar en DOCX från disk. +* Sparar den som HTML samtidigt som utdata automatiskt zippar. +* Renderar en PNG med exakt bredd, höjd, kantutjämning och fet teckensnittsstil. + +Ingen extern skript, ingen egen zip‑logik—bara Aspose.Words for .NET API (eller något motsvarande bibliotek) som gör det tunga arbetet. + +--- + +## Förutsättningar — Vad du behöver innan du börjar + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Tillhandahåller runtime för C# 10‑syntax som används nedan. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | Hanterar DOCX → HTML‑konvertering, arkivering och bildrendering. | +| **A DOCX file** named `input.docx` in a folder you control | Källdokumentet vi ska transformera. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Behövs för att skapa `doc.zip` och `out.png`. | + +Om du använder NuGet, installera paketet med: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** Den kostnadsfria utvärderingsversionen lägger till ett vattenmärke på den renderade PNG‑filen. Skaffa en licens för produktionsbruk. + +--- + +## Steg 1: Ladda källdokumentet + +Det första vi gör är att läsa Word‑filen till minnet. Detta är grunden för **convert docx to html** och för att rendera PNG‑filen senare. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Varför detta är viktigt:* +`Document` är det centrala objektet; det parsar .docx‑paketet, löser upp stilar och förbereder resurser för både HTML‑export och bildrendering. Om filen inte kan hittas kastas ett undantag—så se till att sökvägen är korrekt. + +--- + +## Steg 2: Konfigurera HTML‑spara‑alternativ – Kärnan i **How to Zip HTML** + +Här instruerar vi Aspose.Words att generera HTML, lagra alla relaterade resurser (bilder, CSS) via en anpassad resurs‑hanterare och slutligen zip‑a allt till ett enda arkiv. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Vad `MyResourceHandler` gör + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Varför vi behöver en hanterare:* +När vi konverterar **convert docx to html** kan biblioteket skapa många bifogade filer (t.ex. `image001.png`). Hanteraren avbryter varje sparoperation och ser till att allt hamnar i ZIP‑filen istället för i en lös mapp. + +--- + +## Steg 3: Spara dokumentet som zip‑HTML + +Nu händer magin. HTML‑filerna och deras resurser skrivs direkt in i `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Resultat:** +`YOUR_DIRECTORY/doc.zip` innehåller nu: + +* `document.html` – huvudmarkupen. +* `document_files/` – en undermapp med bilder, CSS och eventuell inbäddad media. + +Du kan packa upp den för att verifiera strukturen, eller leverera ZIP‑filen direkt från ett web‑API. + +--- + +## Steg 4: Ställ in bildrenderingsalternativ – Styr **Set Image Size** och **How to Set Bold Font** + +Om du behöver ett visuellt ögonblick av Word‑filen kan du rendera den till PNG. Följande kodblock visar hur du definierar exakta dimensioner, aktiverar kantutjämning och tvingar fet stil för all text. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Varför dessa flaggor är viktiga:* +- **Width/Height** låter dig anpassa PNG:n till ditt UI‑layout. +- **UseAntialiasing** mjukar upp kanter och förhindrar hackiga linjer. +- **FontStyle = Bold** åsidosätter eventuell inline‑stil i DOCX‑filen, så att PNG:n alltid visas i fet stil oavsett originalformatering. + +--- + +## Steg 5: Rendera dokumentet till PNG – Steget **Export Word to PNG** + +Till sist binder vi ihop allt och producerar bildfilen. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**Vad du kommer att se:** +En skarp `out.png` som matchar storleken 800 × 600, med all text renderad i fet stil och eventuella vektorgrafiker kantutjämnade. + +--- + +## Fullt fungerande exempel – Kopiera, klistra in, kör + +Nedan är det kompletta programmet, redo för dig att släppa in i en konsolapp. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Förväntad output + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | Zippad HTML + resurser (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, all text bold, antialiased. | + +Du kan öppna `doc.zip` med vilket arkivverktyg som helst, extrahera `document.html` och visa den i en webbläsare. Bilden kommer att visas exakt som den renderades från den ursprungliga Word‑filen. + +--- + +## Vanliga frågor & edge‑cases + +### Vad gör jag om jag behöver ett annat bildformat? +Byt filändelsen i `ImageRenderer`‑konstruktorn (`out.jpg`, `out.tiff`) och justera `ImageSavingOptions` därefter. API:t väljer automatiskt rätt kodare. + +### Kan jag styra komprimeringsnivån för ZIP‑filen? +`HtmlSaveOptions` exponerar en `ZipCompressionLevel`‑egenskap (t.ex. `CompressionLevel.BestCompression`). Sätt den innan du anropar `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### Min DOCX innehåller stora högupplösta bilder—kommer PNG‑filen att bli enorm? +Ja, eftersom vi tvingar en fast pixelstorlek. För att hålla filstorleken låg, antingen minska `Width`/`Height` eller aktivera `ImageResizeOptions` i `ImageRenderingOptions`. + +### Hur behåller jag originalens teckenvikt istället för att tvinga fet stil? +Ta helt enkelt bort raden `FontStyle = WebFontStyle.Bold`, eller sätt den villkorligt baserat på en flagga du exponerar för användaren. + +### Fungerar detta på Linux/macOS? +Absolut. Aspose.Words är plattformsoberoende; se bara till att du har rätt .NET‑runtime installerad. + +--- + +## Felsökningschecklista + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Fel sökväg eller saknad fil | Verifiera att `YOUR_DIRECTORY/input.docx` finns; använd absoluta sökvägar för testning. | +| `OutOfMemoryException` during PNG render | Mycket stort dokument eller enorma bilddimensioner | Minska `Width`/`Height` eller rendera sidor individuellt (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returnerade ett annat filnamn eller kastade ett undantag | Säkerställ att `ResourceSaving` inte avbryter sparandet (`args.Cancel = false`). | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/swedish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..9f25348fc --- /dev/null +++ b/html/swedish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-04-26 +description: Spara HTML som ZIP snabbt med Aspose.HTML. Lär dig hur du konverterar + HTML till ZIP med en anpassad resurs‑hanterare och renderar HTML till ZIP på bara + några steg. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: sv +og_description: Spara HTML som ZIP med Aspose.HTML. Den här guiden visar hur du konverterar + HTML till ZIP, med en anpassad resurshanterare för att rendera HTML till ZIP effektivt. +og_title: Spara HTML som ZIP – Steg‑för‑steg C#‑handledning +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Spara HTML som ZIP – Komplett C#-guide för att konvertera HTML till ZIP +url: /sv/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save HTML as ZIP – Complete C# Guide to Convert HTML to ZIP + +Har du någonsin behövt **spara HTML som ZIP** men varit osäker på vilka API‑anrop du ska kedja ihop? Du är inte ensam. Många utvecklare fastnar när de vill paketera en HTML‑sida tillsammans med dess CSS, bilder och typsnitt i ett enda arkiv—särskilt när de vill att allt ska ligga i minnet tills de bestämmer vad de ska göra med det. + +Den goda nyheten? Med Aspose.HTML kan du **konvertera HTML till ZIP** på några få rader, tack vare `HtmlSaveOptions`‑klassen och en **anpassad resurs‑hanterare** som ger dig total kontroll över var varje resurs hamnar. I den här handledningen går vi igenom de exakta stegen för att **rendera HTML till ZIP**, lagra allt i minnet och eventuellt skriva filerna till disk. I slutet har du ett återanvändbart kodsnutt som du kan klistra in i vilket .NET‑projekt som helst. + +## What This Tutorial Covers + +* Hur du definierar HTML‑källsträngen (eller laddar den från en fil). +* Hur du instansierar ett `HTMLDocument` med Aspose.HTML. +* Hur du skapar en **anpassad resurs‑hanterare** som returnerar en `MemoryStream` för varje resurs. +* Hur du konfigurerar `HtmlSaveOptions` för att generera ett **ZIP‑arkiv** som innehåller HTML‑filen och alla dess beroende filer. +* Hur du sparar dokumentet och, om du vill, skriver de minnes‑baserade data till en mapp på disk. + +Inga externa verktyg, ingen manuell zip‑ning—bara ren C# och Aspose.HTML. + +> **Pro tip:** Om du redan använder Aspose.PDF eller Aspose.Words fungerar samma `ResourceHandler`‑mönster där också, så du kan återanvända den här koden över flera dokumenttyper. + +--- + +## Step 1: Save HTML as ZIP – Define the HTML Source + +Först behöver vi en sträng som innehåller den HTML vi vill arkivera. I ett riktigt projekt kan du läsa detta från en fil, en databas eller ett API‑svar, men för tydlighetens skull hårdkodar vi ett litet exempel. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Why this matters:** `HTMLDocument`‑konstruktorn förväntar sig antingen en filsökväg eller rå HTML. Att leverera strängen direkt håller hela processen i minnet, vilket är perfekt när du senare vill streama ZIP‑filen direkt till en klient. + +--- + +## Step 2: Convert HTML to ZIP – Load the HTMLDocument + +Nu ger vi HTML‑strängen till Aspose.HTML. Det andra argumentet (`"."`) talar om för biblioteket var relativa URL‑er ska lösas; att använda den aktuella katalogen fungerar för de flesta enkla fall. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **What’s happening:** `HTMLDocument` parsar markupen, bygger ett DOM‑träd och förbereder alla länkade resurser (CSS, bilder, typsnitt) för rendering. Att omsluta det i ett `using`‑block garanterar korrekt frigöring av inhemska resurser. + +--- + +## Step 3: Render HTML to ZIP – Create a Custom Resource Handler + +Aspose.HTML låter dig bestämma **var** varje resurs skrivs. Genom att subklassa `ResourceHandler` kan vi returnera en ny `MemoryStream` för varje fil som renderaren behöver spara. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Why a custom handler?** Standardbeteendet skriver filer till filsystemet. Med en egen hanterare kan du hålla allt i RAM, skicka ZIP‑filen direkt till ett webbsvar eller till och med kryptera strömmarna i farten. + +--- + +## Step 4: Convert HTML to ZIP – Configure Save Options + +Här kommer hjärtat i operationen. `HtmlSaveOptions` instruerar Aspose.HTML att paketera allt i ett ZIP‑arkiv (`SaveToArchive = true`) och att använda vår `resourceHandler` för lagring. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Key insight:** `ArchiveFileName` är namnet som kommer att visas inuti ZIP‑filen, inte en sökväg på disk. Eftersom vi använder en minnes‑baserad hanterare lever ZIP‑filen helt i RAM tills vi bestämmer vad vi ska göra med den. + +--- + +## Step 5: Save HTML as ZIP – Persist the Archive + +Till sist ber vi dokumentet att spara sig självt med de alternativ vi just byggt. Detta anrop triggar renderings‑pipeline, anropar vår hanterare för varje resurs och skriver den färdiga ZIP‑filen till de minnes‑strömmar vi tillhandahöll. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Result:** På den här punkten innehåller `resourceHandler` en `MemoryStream` för huvud‑HTML‑filen, samt ytterligare strömmar för eventuella CSS‑, bild‑ eller typsnittsfiler som refererades. ZIP‑filen är fullständigt sammansatt i dessa strömmar. + +--- + +## Step 6: Custom Resource Handler – Provide a Stream for Each Resource + +Nedan är implementationen av `MyResourceHandler`. Metoden `HandleResource` anropas en gång per resurs (HTML, CSS, bilder, typsnitt, …). Vi returnerar helt enkelt en ny `MemoryStream` varje gång. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Why a fresh stream?** Varje resurs behöver sin egen behållare; att återanvända en enda ström skulle korrupta arkivet. `MemoryStream` är billig och växer automatiskt vid behov. + +--- + +## Step 7: Optional – Write Saved Resources to Disk + +Om du vill inspektera de genererade filerna eller behålla en kopia på servern, anropas `ResourceSaved` efter att en ström har stängts. Här skriver vi det minnes‑baserade innehållet till en mapp du anger (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Edge case note:** Om du kör i en miljö utan skrivbehörigheter (t.ex. Azure Functions), hoppa helt enkelt över `ResourceSaved`‑implementationen eller ersätt den med en uppladdning till molnlagring. + +--- + +## Full, Runnable Example (38 Lines) + +Nedan är den kompletta koden klar att klistras in i en konsolapp. Den respekterar 15‑40‑radersgränsen, använder beskrivande variabelnamn och innehåller platshållare du kan justera. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Expected Output + +* En `result.zip`‑fil dyker upp inuti det minnes‑baserade arkivet (du kan hämta den från `resourceHandler` om du lägger till en egenskap för att exponera strömmen). +* Om du behöll `ResourceSaved`‑implementationen skrivs samma filer också till `YOUR_DIRECTORY/Output` på disk, med samma struktur som ZIP‑filens interna innehåll. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with large HTML pages?** +A: Absolutely. `MemoryStream` expands as needed, but for multi‑megabyte pages you might want to stream directly to a `FileStream` to avoid high memory pressure. Just change `HandleResource` to return `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Can I encrypt the ZIP?** +A: Aspose.HTML doesn’t provide built‑in encryption, but after you retrieve the `MemoryStream` you can feed it to `System.IO.Compression.ZipArchive` with a password, or use a third‑party library like SharpZipLib. + +**Q: What about relative URLs inside the HTML?** +A: The second argument to `HTMLDocument` (`"."`) tells Aspose.HTML to resolve relative paths against the current directory. If your resources live elsewhere, pass the appropriate base path or a custom `UriResolver`. + +--- + +## Conclusion + +We’ve just shown how to **save HTML as ZIP** using Aspose.HTML, a **custom resource handler**, and a few straightforward configuration steps. The approach lets you **convert HTML to ZIP** entirely in memory, giving you the flexibility to stream the result to a web client, store it in a database, or write it to disk for later use. + +Feel free to experiment: swap `MemoryStream` for a cloud storage stream, add password protection, or batch‑process dozens of pages in parallel. The core pattern—load, handle, configure, save—remains the same, making this a reusable building block for any .NET solution that needs to **render HTML to ZIP** or **create ZIP from HTML**. + +Got more questions about custom resource handling or other Aspose.HTML features? Drop a comment below, and happy coding! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/thai/net/generate-jpg-and-png-images/_index.md index bb3254275..18bd8120b 100644 --- a/html/thai/net/generate-jpg-and-png-images/_index.md +++ b/html/thai/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Aspose.HTML สำหรับ .NET นำเสนอวิธีการง เรียนรู้วิธีเปิดใช้งาน Antialiasing เพื่อให้ภาพ PNG/JPG ที่แปลงจาก DOCX มีความคมชัดและลื่นไหล ### [แปลง DOCX เป็น PNG – สร้างไฟล์ ZIP ด้วย C#](./convert-docx-to-png-create-zip-archive-c-tutorial/) เรียนรู้วิธีแปลงไฟล์ DOCX เป็น PNG แล้วบีบอัดเป็นไฟล์ ZIP ด้วย C# โดยใช้ Aspose.HTML +### [สร้าง PNG จาก HTML ด้วย C# – คู่มือทีละขั้นตอน](./create-png-from-html-in-c-step-by-step-guide/) +เรียนรู้วิธีแปลง HTML เป็นไฟล์ PNG ด้วย C# อย่างละเอียดตามขั้นตอนในบทช่วยสอนนี้ ## บทสรุป diff --git a/html/thai/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/thai/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..ea70387a9 --- /dev/null +++ b/html/thai/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-26 +description: สร้างไฟล์ PNG จาก HTML ด้วย Aspose.HTML เรียนรู้วิธีเรนเดอร์ HTML เป็น + PNG, แปลง HTML เป็นภาพ, ส่งออก HTML เป็น PNG, และเรนเดอร์ภาพเอกสาร HTML อย่างรวดเร็ว. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: th +og_description: สร้าง PNG จาก HTML ด้วย C# และ Aspose.HTML คู่มือนี้จะแสดงวิธีการเรนเดอร์ + HTML เป็น PNG, แปลง HTML เป็นภาพ, และส่งออก HTML เป็น PNG. +og_title: สร้าง PNG จาก HTML ด้วย C# – คู่มือการเขียนโปรแกรมครบถ้วน +tags: +- Aspose.HTML +- C# +- Image Rendering +title: สร้าง PNG จาก HTML ด้วย C# – คู่มือแบบขั้นตอนต่อขั้นตอน +url: /th/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง PNG จาก HTML ด้วย C# – คู่มือการเขียนโปรแกรมเต็มรูปแบบ + +เคยต้องการ **create PNG from HTML** แต่ไม่แน่ใจว่าห้องสมุดใดจะให้ผลลัพธ์คมชัดโดยไม่มีปัญหาหรือไม่? คุณไม่ได้อยู่คนเดียว นักพัฒนาหลายคนมักประสบปัญหาเมื่อพยายามแปลงหน้าเว็บเป็นบิตแมพ โดยเฉพาะเมื่อจำเป็นต้องใช้การแอนติ‑แอลิอัสหรือการบ่งชี้ฟอนต์แบบกำหนดเอง + +ในบทแนะนำนี้ เราจะพาคุณผ่านโซลูชันเชิงปฏิบัติด้วย **Aspose.HTML for .NET**. เมื่อจบคุณจะรู้วิธี **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, และแม้กระทั่งปรับแต่ง pipeline การเรนเดอร์เพื่อให้ได้ผลลัพธ์ที่สมบูรณ์แบบ ไม่ได้มีเนื้อหาเกินความจำเป็น—เพียงตัวอย่างโค้ดที่ทำงานได้, ทำไมแต่ละบรรทัดถึงสำคัญ, และเคล็ดลับระดับมืออาชีพที่คุณอยากรู้ตั้งแต่แรก + +## สิ่งที่คุณต้องการ + +- .NET 6+ (หรือ .NET Framework 4.6+). +- แพคเกจ NuGet `Aspose.HTML` (เวอร์ชัน 23.9 หรือใหม่กว่า). +- ไฟล์ `input.html` ง่าย ๆ ที่คุณต้องการแปลงเป็นรูปภาพ. +- IDE เช่น Visual Studio 2022 (เครื่องมือแก้ไขใด ๆ ที่สามารถคอมไพล์ C# ได้ก็ใช้ได้). + +เท่านี้แหละ ไม่ต้องมีไบนารีเพิ่มเติม, ไม่ต้องใช้บริการภายนอก, และไม่มีไฟล์การตั้งค่าที่ซับซ้อน พร้อมหรือยัง? ไปดิ่งกันเลย + +## สร้าง PNG จาก HTML – ขั้นตอนหลัก + +ด้านล่างเราจะแบ่งกระบวนการทั้งหมดออกเป็นสี่ส่วนที่มีตรรกะ แต่ละส่วนสอดคล้องกับบล็อกโค้ดที่ชัดเจน และแต่ละบล็อกจะมาพร้อมกับคำอธิบายสั้น ๆ “ทำไม” ให้คุณทำตามลำดับ คัดลอกโค้ด และคุณจะได้ไฟล์ PNG อยู่ใน `YOUR_DIRECTORY/output.png` ภายในไม่กี่วินาที + +### ขั้นตอน 1: โหลดเอกสาร HTML + +สิ่งแรกที่เราต้องทำคือให้ Aspose.HTML มีอ็อบเจกต์เอกสารเพื่อทำงานด้วย คิดว่าเป็นการมอบแคนวาสใหม่ให้กับเรนเดอร์ที่มี markup, CSS, และรูปภาพทั้งหมดที่อ้างอิงจากไฟล์ HTML อยู่แล้ว + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*ทำไมเรื่องนี้สำคัญ:* `HTMLDocument` จะทำการพาร์สไฟล์, แก้ไข URL แบบ relative, และสร้างโครงสร้าง DOM หากไม่พบไฟล์ จะเกิด exception ที่นี่ทันที—ทำให้คุณจับปัญหาได้ตั้งแต่ต้นก่อนเริ่มการเรนเดอร์ใด ๆ + +### ขั้นตอน 2: ตั้งค่าตัวเลือกการเรนเดอร์ภาพ + +ต่อไปเราบอก Aspose ว่าภาพสุดท้ายควรมีขนาดเท่าไหร่และต้องการการแอนติ‑แอลิอัสหรือไม่ ตัวเลือกเหล่านี้ส่งผลโดยตรงต่อความแม่นยำของภาพในการทำ **render html to png** + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*ทำไมเรื่องนี้สำคัญ:* ขนาดที่ใหญ่ขึ้นให้รายละเอียดมากขึ้นแต่ใช้หน่วยความจำเพิ่ม `UseAntialiasing` เป็นส่วนสำคัญที่ทำให้ **export html as png** ดูเป็นมืออาชีพ—หากไม่มีคุณจะเห็นลักษณะบันไดรอบข้อความและกราฟิกเวกเตอร์ + +### ขั้นตอน 3: ปรับแต่งการเรนเดอร์ข้อความ (Hinting & Font Style) + +หาก HTML ของคุณใช้ฟอนต์กำหนดเองหรือคุณต้องการสไตล์ตัวหนา/เอียง คุณควรเปิดใช้งาน hinting และตั้งค่า `WebFontStyle` ที่เหมาะสม Hinting จะจัดตำแหน่ง glyph ให้ตรงกับพิกเซล ซึ่งสำคัญเมื่อคุณ **convert html to image** ที่ความละเอียดคงที่ + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*ทำไมเรื่องนี้สำคัญ:* Hinting ป้องกันตัวอักษรเบลอ โดยเฉพาะบนหน้าจอ DPI ต่ำ การรวม `Bold` กับ `Italic` แสดงให้เห็นว่าคุณสามารถซ้อนหลายสไตล์ได้; คุณก็สามารถเลือกใช้เพียงหนึ่งหรือไม่ใช้ก็ได้ ขึ้นอยู่กับการออกแบบของคุณ + +### ขั้นตอน 4: เรนเดอร์ไฟล์ PNG + +สุดท้ายเราจะสร้างอินสแตนซ์ของ `ImageRenderer`, ชี้ไปที่เอกสาร, ระบุเส้นทางเอาต์พุต, และส่งมอบตัวเลือกที่เราตั้งค่าไว้ การเรียก `Render()` จะทำงานหนักทั้งหมด + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*ทำไมเรื่องนี้สำคัญ:* `ImageRenderer` เคารพทุกการตั้งค่าที่เรากำหนดไว้ก่อนหน้า—ขนาด, anti‑aliasing, text hinting, font style เมื่อ `Render()` เสร็จสิ้น คุณจะได้ PNG ที่สมบูรณ์แบบซึ่งสามารถแสดงในเบราว์เซอร์, อัปโหลดไปยังคลาวด์, หรือฝังในรายงานได้ + +> **เคล็ดลับระดับมืออาชีพ:** หากคุณต้องการรูปแบบภาพอื่น (JPEG, BMP, GIF) เพียงเปลี่ยนนามสกุลไฟล์ในเส้นทางเอาต์พุต Aspose จะเลือก encoder ที่ถูกต้องโดยอัตโนมัติ + +## เรนเดอร์ HTML เป็น PNG ด้วย Aspose.HTML – ตัวอย่างเต็ม + +การรวมส่วนต่าง ๆ เข้าด้วยกันจะให้โปรแกรมเดียวที่ทำงานอิสระ คัดลอกบล็อกด้านล่างไปยังแอปคอนโซลใหม่และรัน; คุณจะเห็น `output.png` ปรากฏข้างไฟล์ HTML ต้นฉบับของคุณ + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### ผลลัพธ์ที่คาดหวัง + +หลังจากรันคุณควรเห็นไฟล์ที่คล้ายกับตัวอย่างด้านล่าง (รูปลักษณ์จริงขึ้นอยู่กับเนื้อหา HTML ของคุณ) + +![ตัวอย่างการสร้าง PNG จาก HTML](/images/html-to-png-sample.png "ผลลัพธ์ตัวอย่างเมื่อคุณสร้าง PNG จาก HTML ด้วย Aspose.HTML") + +PNG จะคงรูปแบบการจัดวาง, สี, และฟอนต์อย่างแม่นยำเหมือนที่เบราว์เซอร์แสดงหน้าเว็บ—ขอบคุณเอนจิน **render html document image** ภายใน Aspose + +## คำถามทั่วไป & กรณีขอบ + +### ถ้า HTML ของฉันอ้างอิงรูปภาพภายนอกล่ะ? + +Aspose.HTML จะตาม URL แบบ relative ตามโฟลเดอร์ของ `input.html`. หากคุณมีรูปภาพเก็บไว้ที่อื่น, คุณสามารถ: + +1. ใช้ URL แบบ absolute (เช่น `https://example.com/logo.png`). +2. ตั้งค่า `htmlDocument.BaseUrl` ให้ชี้ไปยังโฟลเดอร์ที่มีทรัพยากร. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### ฉันจะปรับ DPI สำหรับเอาต์พุตความละเอียดสูงได้อย่างไร? + +คุณสามารถสเกลขนาดการเรนเดอร์โดยคงอัตราส่วนเดิม, หรือกำหนด `renderingOptions.DPI` (ค่าเริ่มต้นคือ 96). สำหรับ PNG ที่พร้อมพิมพ์, 300 DPI เป็นค่าที่พบบ่อย: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### ฉันสามารถเรนเดอร์หลายหน้าจากเอกสาร HTML เดียวได้หรือไม่? + +ได้. หาก HTML มีการแบ่งหน้าใน CSS (`@media print { page-break-after: always; }`), Aspose จะสร้างไฟล์ PNG แยกตามหน้าเมื่อคุณใช้ `MultiPageImageRenderer`. นี่เป็นสถานการณ์ขั้นสูง, แต่หลักการ **convert html to image** ยังคงใช้ได้ + +### เรื่องการใช้หน่วยความจำล่ะ? + +การเรนเดอร์หน้าขนาดใหญ่ (หลายพันพิกเซลกว้าง) อาจใช้หน่วยความจำหลายร้อยเมกะไบต์ เพื่อให้การใช้หน่วยความจำน้อยลง: + +- เรนเดอร์ที่ขนาดที่ยอมรับได้เล็กที่สุด. +- ปิด `UseAntialiasing` หากคุณภาพไม่สำคัญ. +- ปล่อย `HTMLDocument` และ `ImageRenderer` ทันทีโดยใช้คำสั่ง `using` (ตามตัวอย่าง) + +## เรนเดอร์ HTML Document Image – ขั้นตอนต่อไป + +เมื่อคุณเชี่ยวชาญพื้นฐานของ **render html to png** แล้ว, พิจารณาการขยายต่อไปนี้: + +- **การแปลงเป็นกลุ่ม:** วนลูปผ่านโฟลเดอร์ของไฟล์ HTML และสร้าง PNG ทั้งหมดในครั้งเดียว. +- **การใส่ลายน้ำ:** หลังเรนเดอร์, โหลด PNG ด้วย `System.Drawing` หรือ `ImageSharp` แล้ววางโลโก้ทับ. +- **การสร้าง PDF:** ใช้ `PdfRenderer` (ส่วนหนึ่งของ Aspose.HTML) เพื่อสร้าง PDF จากแหล่ง HTML เดียวกัน. + +แต่ละข้อเหล่านี้ต่อยอดจากแนวคิดหลักที่คุณเรียนรู้, ทำให้คุณรู้สึกคุ้นเคย + +## สรุป + +เราได้พาคุณจากปัญหา—*how to create PNG from HTML*—ไปสู่โซลูชันที่สมบูรณ์และทำงานได้จริงที่ **renders HTML to PNG**, **converts HTML to image**, และ **exports HTML as PNG** พร้อมการควบคุมละเอียดของขนาด, anti‑aliasing, และ text hinting + +ลองใช้กับหน้าเว็บของคุณ, ปรับขนาด, และทดลองสไตล์ฟอนต์ต่าง ๆ. โค้ดสั้น, API ใช้งานง่าย, และผลลัพธ์ดูเหมือนภาพหน้าจอที่ถ่ายจากเบราว์เซอร์—แต่เร็วกว่าและสามารถทำอัตโนมัติได้เต็มที่ + +หากคุณชอบคู่มือนี้, ลองดูบทแนะนำอื่น ๆ ของเราที่เกี่ยวกับการจัดการ **render html document image**, เช่นการแปลง HTML เป็น PDF หรือการสร้างสแนปช็อต SVG. ขอให้สนุกกับการเขียนโค้ด, และขอให้ PNG ของคุณเต็มไปด้วยความสมบูรณ์แบบของพิกเซล! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/thai/net/html-extensions-and-conversions/_index.md index 2474ca32c..2557d27c6 100644 --- a/html/thai/net/html-extensions-and-conversions/_index.md +++ b/html/thai/net/html-extensions-and-conversions/_index.md @@ -73,6 +73,10 @@ Aspose.HTML สำหรับ .NET ไม่ใช่แค่ไลบรา บันทึกไฟล์ HTML เป็น ZIP อย่างครบถ้วนด้วย C# ตามขั้นตอนของเรา ### [บันทึก HTML เป็น ZIP ใน C# – ตัวอย่างทำงานในหน่วยความจำเต็มรูปแบบ](./save-html-to-zip-in-c-complete-in-memory-example/) บันทึกไฟล์ HTML เป็นไฟล์ ZIP โดยใช้ C# ด้วยตัวอย่างทำงานในหน่วยความจำเต็มรูปแบบ +### [บันทึก HTML เป็น ZIP – คู่มือเต็ม C# เพื่อแปลง HTML เป็น ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +เรียนรู้วิธีบันทึก HTML เป็นไฟล์ ZIP อย่างละเอียดด้วย C# ตามคำแนะนำทีละขั้นตอน +### [วิธีบีบอัด HTML จาก DOCX – คู่มือเต็ม C#](./how-to-zip-html-from-docx-complete-c-guide/) +เรียนรู้ขั้นตอนการบีบอัดไฟล์ HTML ที่ได้จาก DOCX เป็นไฟล์ Zip ด้วย C# อย่างละเอียดและครบถ้วน ## บทสรุป diff --git a/html/thai/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/thai/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..5f5b5b65f --- /dev/null +++ b/html/thai/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,294 @@ +--- +category: general +date: 2026-04-26 +description: เรียนรู้วิธีบีบอัดผลลัพธ์ HTML จากไฟล์ DOCX, แปลง docx เป็น HTML, ตั้งค่าขนาดภาพ, + ส่งออก Word เป็น PNG และวิธีตั้งฟอนต์หนา – โค้ดทีละขั้นตอน. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: th +og_description: เชี่ยวชาญวิธีบีบอัดผลลัพธ์ HTML จากไฟล์ DOCX, แปลง DOCX เป็น HTML, + ตั้งขนาดรูปภาพ, ส่งออก Word เป็น PNG และวิธีตั้งฟอนต์หนาด้วยตัวอย่าง C# ที่ชัดเจน +og_title: วิธีบีบอัด HTML จาก DOCX – คู่มือ C# ฉบับสมบูรณ์ +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: วิธีบีบอัด HTML จาก DOCX – คู่มือ C# ฉบับสมบูรณ์ +url: /th/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีบีบอัด HTML จาก DOCX – คู่มือ C# ฉบับสมบูรณ์ + +เคยสงสัย **วิธีบีบอัด html** ที่คุณสร้างจากเอกสาร Word ไหม? บางครั้งคุณอาจต้องการไฟล์อาร์ไคฟ์เดียวเพื่อส่งให้ลูกค้าหรือเก็บไว้บนคลาวด์ และไม่ต้องการโฟลเดอร์ที่เต็มไปด้วยไฟล์แยกกัน ในบทแนะนำนี้เราจะอธิบายขั้นตอนการแปลงไฟล์ .docx เป็น HTML, รวมผลลัพธ์ไว้ในไฟล์ ZIP, แล้วแสดงเอกสารเดียวกันเป็นภาพ PNG ด้วยขนาดที่กำหนดและข้อความหนา ระหว่างทางเราจะครอบคลุม *convert docx to html*, *set image size*, *export word to png*, และ *how to set bold font*—ทั้งหมดในตัวอย่างเดียวที่ต่อเนื่องกัน + +เมื่อจบคู่มือนี้คุณจะได้โปรแกรม C# ที่พร้อมรันซึ่ง: + +* โหลด DOCX จากดิสก์ +* บันทึกเป็น HTML พร้อมบีบอัดผลลัพธ์เป็น ZIP โดยอัตโนมัติ +* แสดงผลเป็น PNG ด้วยความกว้าง‑สูงที่แม่นยำ, การทำแอนตี้แอลิอาสิ่ง, และสไตล์ฟอนต์หนา + +ไม่มีสคริปต์ภายนอก, ไม่มีการเขียนโค้ดบีบอัดเอง—เพียงแค่ Aspose.Words for .NET API (หรือไลบรารีที่เทียบเท่า) ทำงานหนักให้คุณ + +--- + +## Prerequisites — สิ่งที่คุณต้องมีก่อนเริ่ม + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (หรือ .NET Framework 4.7.2) | ให้ runtime สำหรับไวยากรณ์ C# 10 ที่ใช้ในตัวอย่าง | +| **Aspose.Words for .NET** (หรือไลบรารีที่สนับสนุน `HtmlSaveOptions` และ `ImageRenderer`) | จัดการการแปลง DOCX → HTML, การบีบอัด, และการเรนเดอร์ภาพ | +| **ไฟล์ DOCX** ชื่อ `input.docx` อยู่ในโฟลเดอร์ที่คุณควบคุม | เอกสารต้นฉบับที่เราจะทำการแปลง | +| **สิทธิ์การเขียน** ไปยังไดเรกทอรีผลลัพธ์ (`YOUR_DIRECTORY`) | จำเป็นสำหรับการสร้าง `doc.zip` และ `out.png` | + +หากคุณใช้ NuGet ให้ติดตั้งแพคเกจด้วย: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** เวอร์ชันทดลองฟรีจะใส่ลายน้ำบน PNG ที่เรนเดอร์ไว้ ลองขอรับลิขสิทธิ์สำหรับการใช้งานในโปรดักชัน + +--- + +## Step 1: Load the Source Document + +สิ่งแรกที่เราทำคืออ่านไฟล์ Word เข้าไปในหน่วยความจำ นี่คือพื้นฐานสำหรับ **convert docx to html** และการเรนเดอร์ PNG ต่อไป + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*ทำไมจึงสำคัญ:* +`Document` คืออ็อบเจ็กต์หลัก; มันจะพาร์สแพ็กเกจ .docx, แก้ไขสไตล์, และเตรียมทรัพยากรสำหรับการส่งออกเป็น HTML และการเรนเดอร์ภาพ หากไฟล์ไม่พบ จะเกิดข้อยกเว้น—ดังนั้นตรวจสอบให้แน่ใจว่าเส้นทางถูกต้อง + +--- + +## Step 2: Configure HTML Save Options – The Core of **How to Zip HTML** + +ที่นี่เราบอก Aspose.Words ให้สร้าง HTML, เก็บทรัพยากรที่เกี่ยวข้องทั้งหมด (รูปภาพ, CSS) ผ่านตัวจัดการทรัพยากรแบบกำหนดเอง, แล้วบีบอัดทุกอย่างเป็นไฟล์อาร์ไคฟ์เดียว + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### What `MyResourceHandler` Does + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*ทำไมต้องมี handler:* +เมื่อทำการ **convert docx to html**, ไลบรารีอาจสร้างไฟล์เสริมหลายไฟล์ (เช่น `image001.png`). ตัวจัดการจะดักจับการบันทึกแต่ละครั้ง, ทำให้ทุกอย่างถูกใส่ไว้ใน ZIP แทนที่จะเป็นโฟลเดอร์แยก + +--- + +## Step 3: Save the Document as Zipped HTML + +ตอนนี้จึงเกิดความมหัศจรรย์ ไฟล์ HTML และทรัพยากรของมันจะถูกเขียนตรงลงใน `doc.zip` + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**ผลลัพธ์:** +`YOUR_DIRECTORY/doc.zip` จะมี: + +* `document.html` – ไฟล์มาร์กอัปหลัก +* `document_files/` – โฟลเดอร์ย่อยที่บรรจุรูปภาพ, CSS, และสื่อฝังอื่น ๆ + +คุณสามารถแตกไฟล์เพื่อตรวจสอบโครงสร้าง หรือให้บริการ ZIP โดยตรงจาก Web API + +--- + +## Step 4: Set Up Image Rendering Options – Controlling **Set Image Size** and **How to Set Bold Font** + +หากคุณต้องการภาพสแนปช็อตของไฟล์ Word, สามารถเรนเดอร์เป็น PNG ได้ บล็อกต่อไปนี้แสดงวิธีกำหนดขนาดที่แน่นอน, เปิดใช้งาน antialiasing, และบังคับให้ข้อความทั้งหมดเป็นแบบหนา + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*ทำไมฟลักเหล่านี้ถึงสำคัญ:* +- **Width/Height** ช่วยให้คุณปรับ PNG ให้ตรงกับเลย์เอาต์ UI ของคุณ +- **UseAntialiasing** ทำให้ขอบภาพเรียบ, ป้องกันเส้นขรุขระ +- **FontStyle = Bold** จะเขียนทับสไตล์อินไลน์ใด ๆ ใน DOCX, ทำให้ PNG แสดงผลเป็นข้อความหนาไม่ว่าต้นฉบับจะเป็นอย่างไร + +--- + +## Step 5: Render the Document to PNG – The **Export Word to PNG** Step + +สุดท้ายเรานำทุกอย่างมารวมกันและสร้างไฟล์ภาพ + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**สิ่งที่คุณจะเห็น:** +ไฟล์ `out.png` คมชัดขนาด 800 × 600, ข้อความทั้งหมดเป็นแบบหนา, และกราฟิกเวกเตอร์ทั้งหมดถูกทำ antialias + +--- + +## Full Working Example – Copy, Paste, Run + +ด้านล่างเป็นโปรแกรมเต็มรูปแบบ พร้อมนำไปวางในแอปคอนโซลได้เลย + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Expected Output + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML ที่บีบอัดพร้อมทรัพยากร (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG ขนาด 800 × 600, ข้อความทั้งหมดเป็นหนา, มี antialias | + +คุณสามารถเปิด `doc.zip` ด้วยเครื่องมือใดก็ได้, แตก `document.html` แล้วดูในเบราว์เซอร์ ภาพจะปรากฏตรงตามที่เรนเดอร์จากไฟล์ Word ต้นฉบับ + +--- + +## Common Questions & Edge Cases + +### ต้องการรูปแบบภาพอื่น? +เปลี่ยนนามสกุลไฟล์ในคอนสตรัคเตอร์ `ImageRenderer` (`out.jpg`, `out.tiff`) และปรับ `ImageSavingOptions` ให้สอดคล้อง API จะเลือกตัวเข้ารหัสที่เหมาะโดยอัตโนมัติ + +### สามารถควบคุมระดับการบีบอัดของ ZIP ได้หรือไม่? +`HtmlSaveOptions` มีคุณสมบัติ `ZipCompressionLevel` (เช่น `CompressionLevel.BestCompression`). ตั้งค่าก่อนเรียก `Save` + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### DOCX มีรูปภาพความละเอียดสูง—PNG จะใหญ่เกินไปหรือไม่? +ใช่, เพราะเราบังคับขนาดพิกเซลคงที่ เพื่อลดขนาดไฟล์ให้ต่ำลง ให้ลด `Width`/`Height` หรือเปิดใช้งาน `ImageResizeOptions` ภายใน `ImageRenderingOptions` + +### อยากให้ฟอนต์ใช้ความหนาตามต้นฉบับแทนการบังคับให้เป็นหนา? +ลบบรรทัด `FontStyle = WebFontStyle.Bold` หรือกำหนดเงื่อนไขตามแฟล็กที่ผู้ใช้ตั้งค่า + +### ทำงานบน Linux/macOS ได้หรือไม่? +ทำได้แน่นอน Aspose.Words รองรับหลายแพลตฟอร์ม; เพียงแค่ติดตั้ง .NET runtime ที่เหมาะ + +--- + +## Troubleshooting Checklist + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | เส้นทางผิดหรือไฟล์หาย | ตรวจสอบให้ `YOUR_DIRECTORY/input.docx` มีอยู่; ใช้เส้นทางเต็มสำหรับการทดสอบ | +| `OutOfMemoryException` ระหว่างการเรนเดอร์ PNG | เอกสารใหญ่เกินไปหรือขนาดภาพใหญ่เกินไป | ลด `Width`/`Height` หรือเรนเดอร์หน้าแยก (`ImageRenderer.Render(pageIndex)`) | +| ZIP มีโฟลเดอร์ `document_files` ว่างเปล่า | `MyResourceHandler` คืนชื่อไฟล์ที่ต่างกันหรือยกเลิกการบันทึก | ตรวจสอบให้ `ResourceSaving` ไม่ตั้ง `args.Cancel = true` | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/thai/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..2ae118757 --- /dev/null +++ b/html/thai/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: บันทึก HTML เป็น ZIP อย่างรวดเร็วด้วย Aspose.HTML. เรียนรู้วิธีแปลง HTML + เป็น ZIP ด้วยตัวจัดการทรัพยากรแบบกำหนดเองและเรนเดอร์ HTML เป็น ZIP เพียงไม่กี่ขั้นตอน. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: th +og_description: บันทึก HTML เป็น ZIP ด้วย Aspose.HTML คู่มือนี้แสดงวิธีแปลง HTML เป็น + ZIP โดยใช้ตัวจัดการทรัพยากรแบบกำหนดเองเพื่อเรนเดอร์ HTML เป็น ZIP อย่างมีประสิทธิภาพ +og_title: บันทึก HTML เป็น ZIP – คำแนะนำ C# ทีละขั้นตอน +tags: +- Aspose.HTML +- C# +- HTML rendering +title: บันทึก HTML เป็น ZIP – คู่มือ C# ครบถ้วนในการแปลง HTML เป็น ZIP +url: /th/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# บันทึก HTML เป็น ZIP – คู่มือ C# ฉบับเต็มสำหรับแปลง HTML เป็น ZIP + +เคยต้องการ **บันทึก HTML เป็น ZIP** แต่ไม่แน่ใจว่าจะต้องเรียก API ใดต่อกันบ้างหรือไม่? คุณไม่ได้เป็นคนเดียวที่เจอปัญหานี้ นักพัฒนาจำนวนมากมักเจออุปสรรคเมื่ออยากรวมหน้า HTML กับ CSS, รูปภาพ, และฟอนต์ไว้ในไฟล์เก็บเดียว—โดยเฉพาะอย่างยิ่งเมื่อพวกเขาต้องการให้ทั้งหมดอยู่ในหน่วยความจำจนกว่าจะตัดสินใจว่าจะทำอย่างไรต่อ + +ข่าวดีคืออะไร? ด้วย Aspose.HTML คุณสามารถ **แปลง HTML เป็น ZIP** ได้ในไม่กี่บรรทัด ด้วยคลาส `HtmlSaveOptions` และ **custom resource handler** ที่ให้คุณควบคุมได้เต็มที่ว่าทรัพยากรแต่ละรายการจะถูกบันทึกไว้ที่ไหน ในบทเรียนนี้เราจะอธิบายขั้นตอนที่แน่นอนเพื่อ **เรนเดอร์ HTML เป็น ZIP**, เก็บทุกอย่างในหน่วยความจำ, และถ้าต้องการก็สามารถเขียนไฟล์ออกไปยังดิสก์ได้ เมื่อเสร็จคุณจะมีโค้ดสั้นที่นำกลับมาใช้ใหม่ได้ในโปรเจกต์ .NET ใดก็ได้ + +## สิ่งที่บทเรียนนี้ครอบคลุม + +* วิธีกำหนดสตริงแหล่งที่มาของ HTML (หรือโหลดจากไฟล์) +* วิธีสร้างอินสแตนซ์ของ `HTMLDocument` ด้วย Aspose.HTML +* วิธีสร้าง **custom resource handler** ที่คืนค่า `MemoryStream` สำหรับแต่ละทรัพยากร +* วิธีกำหนดค่า `HtmlSaveOptions` เพื่อสร้าง **ZIP archive** ที่บรรจุ HTML และไฟล์ที่พึ่งพาทั้งหมด +* วิธีบันทึกเอกสารและหากต้องการ, เขียนข้อมูลในหน่วยความจำออกไปยังโฟลเดอร์บนดิสก์ + +ไม่มีเครื่องมือภายนอก, ไม่มีการบีบอัดด้วยตนเอง—เพียง C# แท้และ Aspose.HTML + +> **เคล็ดลับ:** หากคุณกำลังใช้ Aspose.PDF หรือ Aspose.Words อยู่แล้ว, รูปแบบ `ResourceHandler` เดียวกันก็ทำงานได้ที่นั่นเช่นกัน, ดังนั้นคุณสามารถใช้โค้ดนี้ซ้ำในหลายประเภทเอกสารได้. + +--- + +## ขั้นตอนที่ 1: บันทึก HTML เป็น ZIP – กำหนดแหล่งที่มาของ HTML + +ก่อนอื่นเราต้องมีสตริงที่เก็บ HTML ที่ต้องการเก็บเป็นไฟล์อาร์ไคฟ์. ในโปรเจกต์จริงคุณอาจอ่านจากไฟล์, ฐานข้อมูล, หรือการตอบสนองของ API, แต่เพื่อความชัดเจนเราจะกำหนดตัวอย่างเล็ก ๆ แบบคงที่. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **ทำไมเรื่องนี้สำคัญ:** ตัวสร้าง `HTMLDocument` คาดหวังว่าจะได้รับเส้นทางไฟล์หรือ HTML ดิบ. การส่งสตริงโดยตรงทำให้กระบวนการทั้งหมดอยู่ในหน่วยความจำ, ซึ่งเหมาะอย่างยิ่งเมื่อต้องการสตรีม ZIP ไปยังไคลเอนต์โดยตรงในภายหลัง. + +## ขั้นตอนที่ 2: แปลง HTML เป็น ZIP – โหลด HTMLDocument + +ตอนนี้เราจะส่งสตริง HTML ให้กับ Aspose.HTML. อาร์กิวเมนต์ที่สอง (`"."`) บอกไลบรารีว่าจะทำการแก้ไข URL แบบ relative ที่ใด; การใช้ไดเรกทอรีปัจจุบันทำงานได้ในกรณีส่วนใหญ่ที่ง่าย. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **สิ่งที่เกิดขึ้น:** `HTMLDocument` จะทำการพาร์สมาร์กอัป, สร้าง DOM, และเตรียมทรัพยากรที่เชื่อมโยงทั้งหมด (CSS, รูปภาพ, ฟอนต์) เพื่อการเรนเดอร์. การห่อไว้ในบล็อก `using` รับประกันว่าทรัพยากรพื้นฐานจะถูกทำลายอย่างเหมาะสม. + +## ขั้นตอนที่ 3: เรนเดอร์ HTML เป็น ZIP – สร้าง Custom Resource Handler + +Aspose.HTML ให้คุณกำหนด **ที่ไหน** ที่แต่ละทรัพยากรจะถูกบันทึก. โดยการสืบทอดจาก `ResourceHandler` เราสามารถคืนค่า `MemoryStream` ใหม่สำหรับไฟล์แต่ละไฟล์ที่ตัวเรนเดอร์ต้องการบันทึก. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **ทำไมต้องใช้ handler แบบกำหนดเอง?** พฤติกรรมเริ่มต้นจะเขียนไฟล์ลงระบบไฟล์. ด้วย handler คุณสามารถเก็บทุกอย่างใน RAM, ส่ง ZIP ตรงไปยังการตอบสนองเว็บ, หรือแม้กระทั่งเข้ารหัสสตรีมแบบเรียลไทม์. + +## ขั้นตอนที่ 4: แปลง HTML เป็น ZIP – กำหนดค่า Save Options + +นี่คือหัวใจของการดำเนินการ. `HtmlSaveOptions` บอก Aspose.HTML ให้รวมทุกอย่างเป็นไฟล์ ZIP archive (`SaveToArchive = true`) และใช้ `resourceHandler` ของเราเพื่อจัดเก็บ. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **ข้อสังเกตสำคัญ:** `ArchiveFileName` คือชื่อที่จะแสดงภายใน ZIP, ไม่ใช่เส้นทางบนดิสก์. เนื่องจากเราใช้ handler ที่อิงหน่วยความจำ, ZIP จะอยู่ทั้งหมดใน RAM จนกว่าเราจะตัดสินใจว่าจะทำอย่างไรต่อ. + +## ขั้นตอนที่ 5: บันทึก HTML เป็น ZIP – เก็บอาร์ไคฟ์ + +สุดท้าย เราขอให้เอกสารบันทึกตัวเองโดยใช้ตัวเลือกที่เราตั้งค่าไว้. การเรียกนี้จะกระตุ้น pipeline การเรนเดอร์, เรียก handler ของเราสำหรับแต่ละทรัพยากร, และเขียน ZIP สุดท้ายลงใน memory stream ที่เราให้ไว้. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **ผลลัพธ์:** ณ จุดนี้ `resourceHandler` มี `MemoryStream` สำหรับไฟล์ HTML หลัก, พร้อมกับ stream เพิ่มเติมสำหรับ CSS, รูปภาพ, หรือฟอนต์ที่อ้างอิง. ไฟล์ ZIP ถูกประกอบเต็มรูปแบบภายในสตรีมเหล่านั้น. + +## ขั้นตอนที่ 6: Custom Resource Handler – ให้ Stream สำหรับแต่ละทรัพยากร + +ด้านล่างเป็นการทำงานของ `MyResourceHandler`. เมธอด `HandleResource` จะถูกเรียกหนึ่งครั้งต่อทรัพยากร (HTML, CSS, รูปภาพ, ฟอนต์, …). เราจะคืนค่า `MemoryStream` ใหม่ทุกครั้ง. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **ทำไมต้องใช้ stream ใหม่?** แต่ละทรัพยากรต้องการคอนเทนเนอร์ของตนเอง; การใช้ stream เดียวกันซ้ำจะทำให้ archive เสียหาย. `MemoryStream` มีต้นทุนต่ำและขยายอัตโนมัติตามความต้องการ. + +## ขั้นตอนที่ 7: ตัวเลือก – เขียนทรัพยากรที่บันทึกไว้ลงดิสก์ + +หากคุณต้องการตรวจสอบไฟล์ที่สร้างหรือเก็บสำเนาบนเซิร์ฟเวอร์, `ResourceSaved` จะถูกเรียกหลังจาก stream ปิด. ที่นี่เราจะเขียนเนื้อหาในหน่วยความจำไปยังโฟลเดอร์ที่คุณระบุ (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **หมายเหตุกรณีขอบ:** หากคุณทำงานในสภาพแวดล้อมที่ไม่มีสิทธิ์เขียน (เช่น Azure Functions), เพียงข้ามการทำงานของ `ResourceSaved` หรือแทนที่ด้วยการอัปโหลดไปยังคลาวด์สตอเรจ. + +## ตัวอย่างเต็มที่สามารถรันได้ (38 บรรทัด) + +ด้านล่างเป็นโค้ดเต็มพร้อมวางลงในแอปคอนโซล. โค้ดนี้ปฏิบัติตามขอบเขต 15‑40 บรรทัด, ใช้ชื่อตัวแปรที่อธิบายได้, และมี placeholder ที่คุณสามารถปรับได้. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### ผลลัพธ์ที่คาดหวัง + +- `result.zip` จะปรากฏภายในอาร์ไคฟ์ในหน่วยความจำ (คุณสามารถดึงออกจาก `resourceHandler` หากเพิ่ม property เพื่อเปิดเผย stream) +- หากคุณยังคงใช้การทำงานของ `ResourceSaved`, ไฟล์เดียวกันจะถูกเขียนไปยัง `YOUR_DIRECTORY/Output` บนดิสก์, สะท้อนโครงสร้างภายในของ ZIP + +## คำถามที่พบบ่อย (FAQ) + +**ถาม: วิธีนี้ทำงานกับหน้า HTML ขนาดใหญ่ได้หรือไม่?** +**ตอบ:** แน่นอน. `MemoryStream` จะขยายตามความต้องการ, แต่สำหรับหน้าที่มีหลายเมกะไบต์คุณอาจต้องการสตรีมโดยตรงไปยัง `FileStream` เพื่อหลีกเลี่ยงความกดดันของหน่วยความจำ. เพียงเปลี่ยน `HandleResource` ให้คืนค่า `File.Create(Path.Combine("temp", info.FileName))`. + +**ถาม: สามารถเข้ารหัส ZIP ได้หรือไม่?** +**ตอบ:** Aspose.HTML ไม่ได้ให้การเข้ารหัสในตัว, แต่หลังจากที่คุณดึง `MemoryStream` มาแล้วคุณสามารถส่งต่อให้ `System.IO.Compression.ZipArchive` พร้อมรหัสผ่าน, หรือใช้ไลบรารีของบุคคลที่สามเช่น SharpZipLib. + +**ถาม: จะจัดการกับ URL แบบ relative ภายใน HTML อย่างไร?** +**ตอบ:** อาร์กิวเมนต์ที่สองของ `HTMLDocument` (`"."`) บอก Aspose.HTML ให้แก้ไขเส้นทาง relative เทียบกับไดเรกทอรีปัจจุบัน. หากทรัพยากรของคุณอยู่ที่อื่น, ให้ส่ง base path ที่เหมาะสมหรือ `UriResolver` แบบกำหนดเอง. + +## สรุป + +เราได้แสดงวิธี **บันทึก HTML เป็น ZIP** ด้วย Aspose.HTML, **custom resource handler**, และขั้นตอนการกำหนดค่าที่ง่ายไม่กี่ขั้นตอน. วิธีนี้ทำให้คุณ **แปลง HTML เป็น ZIP** ทั้งหมดในหน่วยความจำ, ให้ความยืดหยุ่นในการสตรีมผลลัพธ์ไปยังเว็บไคลเอนต์, เก็บไว้ในฐานข้อมูล, หรือเขียนลงดิสก์เพื่อใช้ในภายหลัง + +ลองทดลองได้ตามต้องการ: เปลี่ยน `MemoryStream` เป็นสตรีมของคลาวด์สตอเรจ, เพิ่มการป้องกันด้วยรหัสผ่าน, หรือประมวลผลหลายหน้าเป็นกลุ่มพร้อมกัน. รูปแบบหลัก—load, handle, configure, save—ยังคงเหมือนเดิม, ทำให้เป็นบล็อกที่นำกลับมาใช้ใหม่ได้สำหรับโซลูชัน .NET ใด ๆ ที่ต้องการ **เรนเดอร์ HTML เป็น ZIP** หรือ **สร้าง ZIP จาก HTML**. + +มีคำถามเพิ่มเติมเกี่ยวกับการจัดการ resource แบบกำหนดเองหรือฟีเจอร์อื่นของ Aspose.HTML? แสดงความคิดเห็นด้านล่างได้เลย, ขอให้สนุกกับการเขียนโค้ด! + +![แผนภาพแสดงกระบวนการจากแหล่งที่มาของ HTML ไปยัง ZIP archive ในหน่วยความจำ](placeholder.png "ตัวอย่างการบันทึก HTML เป็น ZIP") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/turkish/net/generate-jpg-and-png-images/_index.md index a918363c4..6054a2fe3 100644 --- a/html/turkish/net/generate-jpg-and-png-images/_index.md +++ b/html/turkish/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ HTML belgelerini düzenlemek, HTML'yi resimlere dönüştürmek ve daha fazlası DOCX belgelerini PNG veya JPG formatına dönüştürürken antialiasing'i etkinleştirerek daha net ve pürüzsüz görüntüler elde edin. ### [docx'i png'ye dönüştür – zip arşivi oluşturma C# eğitimi](./convert-docx-to-png-create-zip-archive-c-tutorial/) C# kullanarak docx dosyalarını png formatına dönüştürüp, sonuçları zip arşivi içinde paketlemeyi öğrenin. +### [C# ile HTML'den PNG Oluşturma – Adım Adım Kılavuz](./create-png-from-html-in-c-step-by-step-guide/) +C# kullanarak HTML içeriğini PNG formatına dönüştürmeyi adım adım öğrenin. ## Çözüm diff --git a/html/turkish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/turkish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..7e262981f --- /dev/null +++ b/html/turkish/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTML kullanarak HTML'den PNG oluşturun. HTML'yi PNG'ye nasıl render + edeceğinizi, HTML'yi görüntüye nasıl dönüştüreceğinizi, HTML'yi PNG olarak nasıl + dışa aktaracağınızı ve HTML belgesi görüntüsünü hızlı bir şekilde nasıl render edeceğinizi + öğrenin. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: tr +og_description: C# ile Aspose.HTML kullanarak HTML'den PNG oluşturun. Bu kılavuz, + HTML'yi PNG'ye nasıl render edeceğinizi, HTML'yi görüntüye nasıl dönüştüreceğinizi + ve HTML'yi PNG olarak nasıl dışa aktaracağınızı gösterir. +og_title: C#'ta HTML'den PNG Oluşturma – Tam Programlama Rehberi +tags: +- Aspose.HTML +- C# +- Image Rendering +title: C#'ta HTML'den PNG Oluşturma – Adım Adım Rehber +url: /tr/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML'den PNG Oluşturma C# – Tam Programlama Rehberi + +HTML'den **PNG oluşturma** ihtiyacı hiç duydunuz mu, ancak hangi kütüphanenin sorunsuz bir şekilde net çıktı vereceğinden emin değildiniz? Yalnız değilsiniz. Birçok geliştirici, bir web sayfasını bitmap'e dönüştürmeye çalışırken takılıp kalıyor, özellikle anti‑aliasing veya özel yazı tipi ipuçlarına ihtiyaç duyduklarında. + +Bu öğreticide **Aspose.HTML for .NET** kullanarak uygulamalı bir çözüm üzerinden ilerleyeceğiz. Sonunda **HTML'yi PNG'ye render etme**, **HTML'yi görüntüye dönüştürme**, **HTML'yi PNG olarak dışa aktarma** ve hatta mükemmel sonuçlar için renderleme hattını ince ayar yapma konularını öğreneceksiniz. Gereksiz ayrıntı yok—sadece çalışan bir kod örneği, her satırın önemi ve daha önce bilmek isteyeceğiniz birkaç ipucu. + +## Gereksinimler + +- .NET 6+ (veya .NET Framework 4.6+). +- `Aspose.HTML` NuGet paketi (versiyon 23.9 veya daha yeni). +- Resme dönüştürmek istediğiniz basit bir `input.html` dosyası. +- Visual Studio 2022 gibi bir IDE (C# derleyebilen herhangi bir editör yeterlidir). + +Hepsi bu. Ek bir ikili dosya, harici hizmet veya gizli yapılandırma dosyası yok. Hazır mısınız? Hadi başlayalım. + +## HTML'den PNG Oluşturma – Temel Adımlar + +Aşağıda tüm süreci dört mantıksal parçaya ayırıyoruz. Her parça belirli bir kod bloğuna karşılık gelir ve her bloğa kısa bir “neden” açıklaması eşlik eder. Sırayı izleyin, kodu kopyalayın ve birkaç saniye içinde `YOUR_DIRECTORY/output.png` içinde bir PNG elde edeceksiniz. + +### Adım 1: HTML Belgesini Yükleme + +İlk yapmamız gereken, Aspose.HTML'e çalışacak bir belge nesnesi sağlamaktır. Bunu, renderlayıcıya HTML dosyası tarafından başvurulan tüm işaretleme, CSS ve görselleri içeren yeni bir tuval vermek gibi düşünün. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Neden önemli:* `HTMLDocument` dosyayı ayrıştırır, göreli URL'leri çözer ve bir DOM ağacı oluşturur. Dosya bulunamazsa, burada bir istisna fırlatılır—bu sayede renderleme işlemine başlamadan sorunları erken yakalarsınız. + +### Adım 2: Görüntü Renderleme Seçeneklerini Yapılandırma + +Sonra Aspose'e son resmin ne kadar büyük olması gerektiğini ve anti‑aliasing istiyor musunuz diye bildiririz. Bu seçenekler **render html to png** işleminin görsel doğruluğunu doğrudan etkiler. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Neden önemli:* Daha büyük boyutlar daha fazla detay sağlar ancak bellek kullanımını artırır. `UseAntialiasing`, profesyonel görünümlü bir **export html as png** için gizli sosdur—olmasaydı metin ve vektör grafikler etrafında basamaklı artefaktlar görürdünüz. + +### Adım 3: Metin Renderlemesini İnce Ayarlama (Hinting & Font Style) + +HTML'niz özel yazı tipleri kullanıyorsa veya kalın/eğik stiline ihtiyacınız varsa, hinting'i etkinleştirip uygun `WebFontStyle`'ı ayarlamak isteyeceksiniz. Hinting, glifleri piksel sınırlarına hizalar; bu, sabit bir çözünürlükte **convert html to image** yaparken kritik öneme sahiptir. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Neden önemli:* Hinting, özellikle düşük DPI ekranlarda bulanık harfleri önler. `Bold` ve `Italic` kombinasyonu, birden fazla stili nasıl katmanlayabileceğinizi gösterir; tasarımınıza bağlı olarak sadece birini ya da hiç birini seçebilirsiniz. + +### Adım 4: PNG Dosyasını Renderleme + +Son olarak `ImageRenderer`'ı örnekleyip belgeye yönlendiriyoruz, çıktı yolunu belirtiyoruz ve oluşturduğumuz seçenekleri iletiyoruz. `Render()` çağrısı tüm ağır işi yapar. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Neden önemli:* `ImageRenderer`, daha önce tanımladığımız tüm ayarları—boyut, anti‑aliasing, metin hinting, font stili—saygı gösterir. `Render()` tamamlandığında, tarayıcılarda görüntülenebilen, bulut depolamaya yüklenebilen veya raporlara gömülebilen tam uyumlu bir PNG elde edersiniz. + +> **İpucu:** Farklı bir görüntü formatına (JPEG, BMP, GIF) ihtiyacınız varsa, sadece çıktı yolundaki dosya uzantısını değiştirin. Aspose otomatik olarak doğru kodlayıcıyı seçer. + +## Aspose.HTML ile HTML'yi PNG'ye Render Etme – Tam Örnek + +Tüm parçaları bir araya getirdiğinizde tek bir, bağımsız program elde edersiniz. Aşağıdaki bloğu yeni bir konsol uygulamasına kopyalayıp çalıştırın; `output.png` dosyasının kaynak HTML'nizin yanında belirdiğini göreceksiniz. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Beklenen Sonuç + +Çalıştırdıktan sonra aşağıdaki örnek gibi bir dosya görmelisiniz (gerçek görünüm HTML içeriğinize bağlıdır). + +![HTML'den PNG Oluşturma örneği](/images/html-to-png-sample.png "Aspose.HTML kullanarak HTML'den PNG oluşturduğunuzda örnek çıktı") + +PNG, sayfanın tarayıcıda gösterildiği gibi düzeni, renkleri ve yazı tiplerini tam olarak koruyacaktır—Aspose içindeki **render html document image** motoru sayesinde. + +## Yaygın Sorular & Kenar Durumları + +### HTML'm Dış Resimlere Başvuruyorsa Ne Olur? + +Aspose.HTML, `input.html` klasörüne göre göreli URL'leri izler. Görseller başka bir yerde depolanıyorsa, şu iki yöntemden birini kullanabilirsiniz: + +1. Mutlak URL'ler kullanın (ör. `https://example.com/logo.png`). +2. `htmlDocument.BaseUrl`'yi varlıkların bulunduğu klasöre işaret edecek şekilde ayarlayın. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Yüksek Çözünürlüklü Çıktı İçin DPI'yi Nasıl Ayarlarım? + +Aynı en-boy oranını koruyarak renderleme boyutunu ölçeklendirebilir veya `renderingOptions.DPI`'yi (varsayılan 96) ayarlayabilirsiniz. Baskıya hazır PNG'ler için 300 DPI yaygındır: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Tek Bir HTML Belgesinden Birden Fazla Sayfa Renderleyebilir miyim? + +Evet. HTML, CSS sayfa sonları (`@media print { page-break-after: always; }`) içeriyorsa, `MultiPageImageRenderer` kullandığınızda Aspose her sayfa için ayrı PNG dosyaları oluşturur. Bu gelişmiş bir senaryodur, ancak aynı **convert html to image** prensibi geçerlidir. + +### Bellek Kullanımı Nasıl Etkilenir? + +Binlerce piksel genişliğinde devasa bir sayfa renderlemek yüzlerce megabayt tüketebilir. Bellek kullanımını düşük tutmak için: + +- En küçük kabul edilebilir boyutlarda renderleyin. +- Kalite kritik değilse `UseAntialiasing`'i kapatın. +- `HTMLDocument` ve `ImageRenderer`'ı `using` ifadeleriyle (gösterildiği gibi) hemen serbest bırakın. + +## HTML Belge Görüntüsü Renderleme – Sonraki Adımlar + +Artık **render html to png** temelini kavradığınıza göre, şu uzantıları düşünün: + +- **Toplu dönüşüm:** Bir klasördeki HTML dosyaları üzerinde döngü yaparak tek seferde PNG'ler oluşturun. +- **Filigran ekleme:** Renderlemeden sonra PNG'yi `System.Drawing` veya `ImageSharp` ile yükleyip bir logo ekleyin. +- **PDF oluşturma:** Aynı HTML kaynağından PDF oluşturmak için `PdfRenderer`'ı (Aspose.HTML'in bir parçası) kullanın. + +Bunların her biri, az önce öğrendiğiniz aynı temel kavramlar üzerine inşa edilmiştir, bu yüzden rahat hissedeceksiniz. + +## Sonuç + +Sizi sorun tanımından—*HTML'den PNG nasıl oluşturulur*—tam, çalıştırılabilir bir çözüme götürdük; bu çözüm **HTML'yi PNG'ye render eder**, **HTML'yi görüntüye dönüştürür** ve **HTML'yi PNG olarak dışa aktarır**, boyut, anti‑aliasing ve metin hinting üzerinde ince ayar kontrolü sağlar. + +Kendi web sayfanızla deneyin, boyutları ayarlayın ve farklı yazı tipi stilleriyle denemeler yapın. Kod kısa, API sezgisel ve sonuçlar bir tarayıcıda alınan ekran görüntüsü gibi görünür—daha hızlı ve tamamen otomatikleştirilebilir. + +Bu rehberi beğendiyseniz, **render html document image** manipülasyonu üzerine diğer öğreticilerimize göz atın; örneğin HTML'yi PDF'ye dönüştürme veya SVG anlık görüntüler oluşturma gibi. Kodlamaktan keyif alın ve PNG'leriniz her zaman piksel‑kusursuz olsun! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/turkish/net/html-extensions-and-conversions/_index.md index 8dd996b05..757d427ae 100644 --- a/html/turkish/net/html-extensions-and-conversions/_index.md +++ b/html/turkish/net/html-extensions-and-conversions/_index.md @@ -71,6 +71,9 @@ Aspose.HTML for .NET kullanarak HTML'den PDF'ye nasıl dönüştüreceğinizi ad Aspose.HTML for .NET kullanarak HTML dosyalarını ZIP arşivine kaydetmeyi adım adım öğrenin. ### [C# ile HTML'yi ZIP'e Kaydet – Tam Bellek İçi Örnek](./save-html-to-zip-in-c-complete-in-memory-example/) Aspose.HTML for .NET kullanarak HTML dosyasını bellek içinde ZIP arşivine dönüştürmeyi adım adım öğrenin. +### [HTML'yi ZIP Olarak Kaydet – HTML'yi ZIP'e Dönüştürmek İçin Tam C# Kılavuzu](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Aspose.HTML for .NET kullanarak HTML dosyalarını ZIP arşivine dönüştürmeyi adım adım gösteren kapsamlı C# rehberi. +### [DOCX'ten HTML'yi ZIP'e Dönüştürme – Tam C# Kılavuzu](./how-to-zip-html-from-docx-complete-c-guide/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/html/turkish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/turkish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..c73d027da --- /dev/null +++ b/html/turkish/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-04-26 +description: DOCX dosyasından HTML çıktısını ziplemeyi, docx'i HTML'e dönüştürmeyi, + resim boyutunu ayarlamayı, Word'ü PNG'ye dışa aktarmayı ve kalın yazı tipini nasıl + ayarlayacağınızı adım adım kodla öğrenin. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: tr +og_description: Bir DOCX dosyasından HTML çıktısını sıkıştırmayı, docx'i HTML'ye dönüştürmeyi, + resim boyutunu ayarlamayı, Word'ü PNG'ye dışa aktarmayı ve kalın yazı tipini nasıl + ayarlayacağınızı net C# örnekleriyle öğrenin. +og_title: DOCX'ten HTML'yi Zipleme – Tam C# Kılavuzu +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: DOCX'ten HTML'yi Zipleme – Tam C# Kılavuzu +url: /tr/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# DOCX'ten HTML'yi Zipleme – Tam C# Rehberi + +Bir Word belgesinden ürettiğiniz **how to zip html**'i hiç merak ettiniz mi? Belki bir müşteriye göndermek ya da bulutta saklamak için tek bir arşive ihtiyacınız var ve dağınık dosyalarla dolu bir klasör istemiyorsunuz. Bu öğreticide bir .docx dosyasını HTML'e dönüştürmeyi, sonucu bir ZIP dosyasına paketlemeyi ve ardından aynı belgeyi özel boyutta ve kalın metinle bir PNG görüntüsü olarak render etmeyi adım adım göstereceğiz. Yol boyunca *convert docx to html*, *set image size*, *export word to png* ve *how to set bold font* konularını da tek bir bütün içinde ele alacağız. + +Bu rehberin sonunda, çalıştırmaya hazır bir C# programına sahip olacaksınız: + +* Diskten bir DOCX dosyasını yüklüyor. +* Çıktıyı otomatik olarak zipleyerek HTML olarak kaydediyor. +* Kesin genişlik, yükseklik, antialiasing ve kalın font stilleriyle bir PNG render ediyor. + +Harici betikler yok, el yapımı zip mantığı yok — sadece Aspose.Words for .NET API (veya eşdeğer bir kütüphane) işi yapıyor. + +--- + +## Prerequisites — What You Need Before You Start + +| Requirement | Why It Matters | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Aşağıdaki C# 10 sözdizimini çalıştırmak için gerekli çalışma zamanını sağlar. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` and `ImageRenderer`) | DOCX → HTML dönüşümünü, arşivlemeyi ve görüntü render'ını yönetir. | +| **A DOCX file** named `input.docx` in a folder you control | Dönüştüreceğimiz kaynak belge. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | `doc.zip` ve `out.png` oluşturmak için gereklidir. | + +NuGet kullanıyorsanız, paketi şu şekilde kurun: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** Ücretsiz değerlendirme sürümü render edilen PNG'ye bir filigran ekler. Üretim kullanımı için bir lisans alın. + +--- + +## Step 1: Load the Source Document + +İlk olarak Word dosyasını belleğe okuruz. Bu, **convert docx to html** ve daha sonra PNG render'ı için temel oluşturur. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Why this matters:* +`Document` merkezi nesnedir; .docx paketini ayrıştırır, stilleri çözer ve hem HTML dışa aktarımı hem de görüntü render'ı için kaynakları hazırlar. Dosya bulunamazsa bir istisna fırlatılır — bu yüzden yolun doğru olduğundan emin olun. + +--- + +## Step 2: Configure HTML Save Options – The Core of **How to Zip HTML** + +Burada Aspose.Words'a HTML üretmesini, tüm ilgili varlıkları (görseller, CSS) özel bir kaynak işleyicisi aracılığıyla saklamasını ve sonunda her şeyi tek bir arşive ziplemesini söyleriz. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### What `MyResourceHandler` Does + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Why we need a handler:* +**convert docx to html** sırasında kütüphane birçok yan dosya (ör. `image001.png`) oluşturabilir. İşleyici, her kaydetme işlemini yakalayarak her şeyin ZIP içinde kalmasını, dağınık bir klasörde yer almamasını sağlar. + +--- + +## Step 3: Save the Document as Zipped HTML + +Şimdi sihir gerçekleşir. HTML dosyaları ve kaynakları doğrudan `doc.zip` içine yazılır. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Result:** +`YOUR_DIRECTORY/doc.zip` artık şunları içerir: + +* `document.html` – ana işaretleme dosyası. +* `document_files/` – görseller, CSS ve gömülü medya dosyalarının bulunduğu alt klasör. + +Yapıyı doğrulamak için zip'i açabilir ya da ZIP'i doğrudan bir web API'den servis edebilirsiniz. + +--- + +## Step 4: Set Up Image Rendering Options – Controlling **Set Image Size** and **How to Set Bold Font** + +Word dosyasının görsel bir anlık görüntüsüne ihtiyacınız varsa, PNG olarak render edebilirsiniz. Aşağıdaki blok, tam boyutları tanımlamayı, antialiasing'i etkinleştirmeyi ve tüm metin için kalın stil zorlamayı gösterir. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Why these flags matter:* +- **Width/Height** PNG'yi UI düzeninize göre ayarlamanızı sağlar. +- **UseAntialiasing** kenarları yumuşatarak pikselleşmiş hataları önler. +- **FontStyle = Bold** DOCX'teki satır içi stilleri geçersiz kılar, PNG'nin her zaman kalın görünmesini sağlar. + +--- + +## Step 5: Render the Document to PNG – The **Export Word to PNG** Step + +Son olarak her şeyi birleştirip görüntü dosyasını üretiriz. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**What you’ll see:** +800 × 600 boyutlarında, tüm metni kalın gösteren ve vektör grafikleri antialiasing uygulanmış net bir `out.png`. + +--- + +## Full Working Example – Copy, Paste, Run + +Aşağıda, bir console uygulamasına yapıştırıp çalıştırabileceğiniz tam program yer alıyor. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Expected Output + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | Ziplenecek HTML + kaynaklar (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | 800 × 600 PNG, tüm metin kalın, antialiasing uygulanmış. | + +`doc.zip`'i herhangi bir arşiv aracıyla açabilir, `document.html`'i çıkarıp tarayıcıda görüntüleyebilirsiniz. Görüntü, orijinal Word dosyasından render edilen haliyle tam olarak aynı olacaktır. + +--- + +## Common Questions & Edge Cases + +### What if I need a different image format? +`ImageRenderer` yapıcıcısındaki dosya uzantısını (`out.jpg`, `out.tiff`) değiştirin ve `ImageSavingOptions`'ı buna göre ayarlayın. API doğru kodlayıcıyı otomatik seçer. + +### Can I control the compression level of the ZIP? +`HtmlSaveOptions` bir `ZipCompressionLevel` özelliği sunar (ör. `CompressionLevel.BestCompression`). `Save` çağırmadan önce ayarlayın. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### My DOCX contains large high‑resolution pictures—will the PNG be huge? +Evet, çünkü sabit piksel boyutu zorunlu kılıyor. Dosya boyutunu düşük tutmak için `Width`/`Height` değerlerini küçültün ya da `ImageRenderingOptions` içinde `ImageResizeOptions`'ı etkinleştirin. + +### How do I keep the original font weight instead of forcing bold? +`FontStyle = WebFontStyle.Bold` satırını kaldırın ya da kullanıcıya sunacağınız bir bayrakla koşullu olarak ayarlayın. + +### Does this work on Linux/macOS? +Kesinlikle. Aspose.Words platformlar arasıdır; sadece uygun .NET çalışma zamanının kurulu olduğundan emin olun. + +--- + +## Troubleshooting Checklist + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Yanlış yol ya da eksik dosya | `YOUR_DIRECTORY/input.docx` dosyasının varlığını kontrol edin; test için mutlak yollar kullanın. | +| `OutOfMemoryException` during PNG render | Çok büyük belge ya da devasa görüntü boyutları | `Width`/`Height` değerlerini düşürün ya da sayfaları tek tek render edin (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` farklı bir dosya adı döndürdü ya da iptal etti | `ResourceSaving` işleminin iptal edilmediğinden (`args.Cancel = false`) emin olun. | +| Text not bold in PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/turkish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..4bca59486 --- /dev/null +++ b/html/turkish/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-04-26 +description: Aspose.HTML ile HTML'yi hızlıca ZIP olarak kaydedin. Özel bir kaynak + işleyicisi kullanarak HTML'yi ZIP'e nasıl dönüştüreceğinizi ve sadece birkaç adımda + HTML'yi ZIP'e nasıl render edeceğinizi öğrenin. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: tr +og_description: Aspose.HTML ile HTML'yi ZIP olarak kaydedin. Bu kılavuz, HTML'yi ZIP'e + dönüştürmeyi, özel bir kaynak işleyicisi kullanarak HTML'yi verimli bir şekilde + ZIP'e render etmeyi gösterir. +og_title: HTML'yi ZIP olarak kaydet – Adım Adım C# Öğreticisi +tags: +- Aspose.HTML +- C# +- HTML rendering +title: HTML'yi ZIP olarak kaydet – HTML'yi ZIP'e Dönüştürmek için Tam C# Rehberi +url: /tr/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML'yi ZIP olarak Kaydet – HTML'yi ZIP'e Dönüştürmek için Tam C# Kılavuzu + +Ever needed to **save HTML as ZIP** but weren’t sure which API calls to chain together? You’re not alone. Many developers hit a wall when they want to bundle an HTML page together with its CSS, images, and fonts into a single archive—especially when they want the whole thing to stay in memory until they decide what to do with it. + +The good news? With Aspose.HTML you can **convert HTML to ZIP** in a handful of lines, thanks to the `HtmlSaveOptions` class and a **custom resource handler** that gives you total control over where each resource ends up. In this tutorial we’ll walk through the exact steps to **render HTML to ZIP**, store everything in memory, and optionally write the files out to disk. By the end you’ll have a reusable snippet you can drop into any .NET project. + +No external tools, no manual zipping—just pure C# and Aspose.HTML. + +> **Pro tip:** If you’re already using Aspose.PDF or Aspose.Words, the same `ResourceHandler` pattern works there too, so you can reuse this code across multiple document types. + +--- + +## This Tutorial Covers + +* How to define the HTML source string (or load it from a file). +* How to instantiate an `HTMLDocument` with Aspose.HTML. +* How to create a **custom resource handler** that returns a `MemoryStream` for each resource. +* How to configure `HtmlSaveOptions` to generate a **ZIP archive** containing the HTML and all its dependent files. +* How to save the document and, if you like, write the in‑memory data to a folder on disk. + +No external tools, no manual zipping—just pure C# and Aspose.HTML. + +> **Pro tip:** If you’re already using Aspose.PDF or Aspose.Words, the same `ResourceHandler` pattern works there too, so you can reuse this code across multiple document types. + +--- + +## Step 1: Save HTML as ZIP – Define the HTML Source + +First we need a string that holds the HTML we want to archive. In a real project you might read this from a file, a database, or an API response, but for clarity we’ll hard‑code a tiny example. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Why this matters:** The `HTMLDocument` constructor expects either a file path or raw HTML. Supplying the string directly keeps the whole process in memory, which is perfect when you later want to stream the ZIP directly to a client. + +--- + +## Step 2: Convert HTML to ZIP – Load the HTMLDocument + +Now we hand the HTML string to Aspose.HTML. The second argument (`"."`) tells the library where to resolve relative URLs; using the current directory works for most simple cases. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **What’s happening:** `HTMLDocument` parses the markup, builds a DOM, and prepares all linked resources (CSS, images, fonts) for rendering. Wrapping it in a `using` block guarantees proper disposal of native resources. + +--- + +## Step 3: Render HTML to ZIP – Create a Custom Resource Handler + +Aspose.HTML lets you decide **where** each resource is written. By subclassing `ResourceHandler` we can hand back a fresh `MemoryStream` for every file that the renderer needs to save. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Why a custom handler?** The default behavior writes files to the file system. With a handler you can keep everything in RAM, push the ZIP straight to a web response, or even encrypt the streams on the fly. + +--- + +## Step 4: Convert HTML to ZIP – Configure Save Options + +Here’s the heart of the operation. `HtmlSaveOptions` tells Aspose.HTML to bundle everything into a ZIP archive (`SaveToArchive = true`) and to use our `resourceHandler` for storage. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Key insight:** `ArchiveFileName` is the name that will appear inside the ZIP, not a path on disk. Because we’re using a memory‑based handler, the ZIP lives entirely in RAM until we decide what to do with it. + +--- + +## Step 5: Save HTML as ZIP – Persist the Archive + +Finally, we ask the document to save itself using the options we just built. This call triggers the rendering pipeline, calls our handler for each resource, and writes the final ZIP to the memory streams we provided. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Result:** At this point `resourceHandler` holds a `MemoryStream` for the main HTML file, plus additional streams for any CSS, images, or fonts that were referenced. The ZIP file is fully assembled inside those streams. + +--- + +## Step 6: Custom Resource Handler – Provide a Stream for Each Resource + +Below is the implementation of `MyResourceHandler`. The `HandleResource` method is called once per resource (HTML, CSS, images, fonts, …). We simply hand back a new `MemoryStream` each time. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Why a fresh stream?** Each resource needs its own container; reusing a single stream would corrupt the archive. `MemoryStream` is cheap and automatically grows as needed. + +--- + +## Step 7: Optional – Write Saved Resources to Disk + +If you’d like to inspect the generated files or keep a copy on the server, `ResourceSaved` is called after a stream is closed. Here we write the in‑memory content to a folder you specify (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Edge case note:** If you’re running in an environment without write permissions (e.g., Azure Functions), simply skip the `ResourceSaved` implementation or replace it with a cloud‑storage upload. + +--- + +## Full, Runnable Example (38 Lines) + +Below is the complete code ready to paste into a console app. It respects the 15‑40 line limit, uses descriptive variable names, and includes placeholders you can adjust. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Expected Output + +* A `result.zip` file appears inside the in‑memory archive (you can retrieve it from `resourceHandler` if you add a property to expose the stream). +* If you kept the `ResourceSaved` implementation, the same files are also written to `YOUR_DIRECTORY/Output` on disk, mirroring the ZIP’s internal structure. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with large HTML pages?** +A: Absolutely. `MemoryStream` expands as needed, but for multi‑megabyte pages you might want to stream directly to a `FileStream` to avoid high memory pressure. Just change `HandleResource` to return `File.Create(Path.Combine("temp", info.FileName))`. + +**Q: Can I encrypt the ZIP?** +A: Aspose.HTML doesn’t provide built‑in encryption, but after you retrieve the `MemoryStream` you can feed it to `System.IO.Compression.ZipArchive` with a password, or use a third‑party library like SharpZipLib. + +**Q: What about relative URLs inside the HTML?** +A: The second argument to `HTMLDocument` (`"."`) tells Aspose.HTML to resolve relative paths against the current directory. If your resources live elsewhere, pass the appropriate base path or a custom `UriResolver`. + +--- + +## Conclusion + +We’ve just shown how to **save HTML as ZIP** using Aspose.HTML, a **custom resource handler**, and a few straightforward configuration steps. The approach lets you **convert HTML to ZIP** entirely in memory, giving you the flexibility to stream the result to a web client, store it in a database, or write it to disk for later use. + +Feel free to experiment: swap `MemoryStream` for a cloud storage stream, add password protection, or batch‑process dozens of pages in parallel. The core pattern—load, handle, configure, save—remains the same, making this a reusable building block for any .NET solution that needs to **render HTML to ZIP** or **create ZIP from HTML**. + +Got more questions about custom resource handling or other Aspose.HTML features? Drop a comment below, and happy coding! + +![HTML kaynağından bellek içi ZIP arşivine akışın diyagramı](placeholder.png "HTML'yi ZIP olarak kaydet örneği") + +{{< /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/net/generate-jpg-and-png-images/_index.md b/html/vietnamese/net/generate-jpg-and-png-images/_index.md index 364f75161..d09af93d1 100644 --- a/html/vietnamese/net/generate-jpg-and-png-images/_index.md +++ b/html/vietnamese/net/generate-jpg-and-png-images/_index.md @@ -45,6 +45,8 @@ Học cách sử dụng Aspose.HTML cho .NET để thao tác với các tài li Hướng dẫn chi tiết cách bật khử răng cưa để cải thiện chất lượng hình ảnh khi chuyển đổi tài liệu DOCX sang PNG hoặc JPG bằng Aspose.HTML. ### [Chuyển đổi DOCX sang PNG – tạo tệp ZIP bằng C# – Hướng dẫn](./convert-docx-to-png-create-zip-archive-c-tutorial/) Hướng dẫn cách chuyển đổi tài liệu DOCX thành hình ảnh PNG và đóng gói chúng vào tệp ZIP bằng C#. +### [Tạo PNG từ HTML trong C# – Hướng dẫn từng bước](./create-png-from-html-in-c-step-by-step-guide/) +Hướng dẫn chi tiết cách tạo tệp PNG từ mã HTML bằng C# sử dụng Aspose.HTML, bao gồm các bước cấu hình và tối ưu hoá. ## Phần kết luận diff --git a/html/vietnamese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md b/html/vietnamese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..cde6f520b --- /dev/null +++ b/html/vietnamese/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-26 +description: Tạo PNG từ HTML bằng Aspose.HTML. Tìm hiểu cách chuyển đổi HTML sang + PNG, chuyển HTML thành hình ảnh, xuất HTML dưới dạng PNG và nhanh chóng hiển thị + hình ảnh tài liệu HTML. +draft: false +keywords: +- create png from html +- render html to png +- convert html to image +- export html as png +- render html document image +language: vi +og_description: Tạo PNG từ HTML trong C# với Aspose.HTML. Hướng dẫn này cho bạn cách + render HTML thành PNG, chuyển đổi HTML sang hình ảnh và xuất HTML dưới dạng PNG. +og_title: Tạo PNG từ HTML trong C# – Hướng dẫn lập trình toàn diện +tags: +- Aspose.HTML +- C# +- Image Rendering +title: Tạo PNG từ HTML trong C# – Hướng dẫn từng bước +url: /vi/net/generate-jpg-and-png-images/create-png-from-html-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo PNG từ HTML trong C# – Hướng Dẫn Lập Trình Toàn Diện + +Bạn đã bao giờ cần **tạo PNG từ HTML** nhưng không chắc thư viện nào sẽ cho kết quả sắc nét mà không gặp rắc rối? Bạn không phải là người duy nhất. Nhiều nhà phát triển gặp khó khăn khi chuyển một trang web thành bitmap, đặc biệt khi họ cần anti‑aliasing hoặc các gợi ý phông chữ tùy chỉnh. + +Trong tutorial này, chúng ta sẽ thực hành một giải pháp sử dụng **Aspose.HTML for .NET**. Khi kết thúc, bạn sẽ biết cách **render HTML to PNG**, **convert HTML to image**, **export HTML as PNG**, và thậm chí tinh chỉnh pipeline render để có kết quả hoàn hảo. Không có phần thừa—chỉ có ví dụ code hoạt động, giải thích lý do mỗi dòng quan trọng, và một vài mẹo chuyên nghiệp mà bạn sẽ muốn biết từ sớm. + +## Những Gì Bạn Cần Chuẩn Bị + +- .NET 6+ (hoặc .NET Framework 4.6+). +- Gói NuGet `Aspose.HTML` (phiên bản 23.9 trở lên). +- Một file `input.html` đơn giản mà bạn muốn chuyển thành hình ảnh. +- Một IDE như Visual Studio 2022 (bất kỳ trình soạn thảo nào có thể biên dịch C# đều được). + +Chỉ vậy thôi. Không cần binary bổ sung, không dịch vụ bên ngoài, và không có file cấu hình khó hiểu. Sẵn sàng chưa? Hãy bắt đầu. + +## Tạo PNG từ HTML – Các Bước Cốt Lõi + +Dưới đây chúng ta chia toàn bộ quy trình thành bốn phần logic. Mỗi phần tương ứng với một khối code cụ thể, và mỗi khối đi kèm với một giải thích ngắn “tại sao”. Thực hiện theo thứ tự, sao chép code, và bạn sẽ có một file PNG nằm trong `YOUR_DIRECTORY/output.png` trong vài giây. + +### Bước 1: Tải Tài Liệu HTML + +Điều đầu tiên chúng ta phải làm là cung cấp cho Aspose.HTML một đối tượng tài liệu để làm việc. Hãy tưởng tượng như đang đưa cho renderer một canvas mới đã chứa đầy markup, CSS và các hình ảnh được tham chiếu trong file HTML. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +// Step 1 – Load the HTML file you want to render +using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) +{ + // The document is now in memory and ready for rendering. +``` + +*Lý do quan trọng:* `HTMLDocument` phân tích file, giải quyết các URL tương đối, và xây dựng cây DOM. Nếu file không tìm thấy, một ngoại lệ sẽ được ném ngay tại đây—giúp bạn phát hiện vấn đề sớm trước khi bắt đầu render. + +### Bước 2: Cấu Hình Tùy Chọn Render Ảnh + +Tiếp theo chúng ta cho Aspose biết kích thước cuối cùng của ảnh và liệu chúng ta có muốn anti‑aliasing hay không. Những tùy chọn này ảnh hưởng trực tiếp đến độ trung thực hình ảnh của thao tác **render html to png**. + +```csharp + // Step 2 – Define rendering size and quality + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, // Desired width in pixels + Height = 768, // Desired height in pixels + UseAntialiasing = true // Smooth edges, reduces jagged lines + }; +``` + +*Lý do quan trọng:* Kích thước lớn hơn cho bạn nhiều chi tiết hơn nhưng tăng mức tiêu thụ bộ nhớ. `UseAntialiasing` là “sốt bí mật” cho một **export html as png** chuyên nghiệp—nếu không bật, bạn sẽ thấy hiện tượng răng cưa quanh văn bản và đồ họa vector. + +### Bước 3: Tinh Chỉnh Render Văn Bản (Hinting & Font Style) + +Nếu HTML của bạn sử dụng phông chữ tùy chỉnh hoặc cần kiểu chữ đậm/nghiêng, bạn nên bật hinting và đặt `WebFontStyle` phù hợp. Hinting căn chỉnh glyphs tới ranh giới pixel, rất quan trọng khi bạn **convert html to image** ở độ phân giải cố định. + +```csharp + // Step 3 – Enable font hinting and choose a style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; +``` + +*Lý do quan trọng:* Hinting ngăn chữ bị mờ, đặc biệt trên màn hình DPI thấp. Kết hợp `Bold` và `Italic` cho thấy cách bạn có thể xếp chồng nhiều kiểu; bạn cũng có thể chọn chỉ một hoặc không, tùy theo thiết kế. + +### Bước 4: Render File PNG + +Cuối cùng chúng ta khởi tạo `ImageRenderer`, chỉ tới tài liệu, cung cấp đường dẫn xuất, và truyền các tùy chọn đã xây dựng. Lệnh `Render()` sẽ thực hiện toàn bộ công việc nặng. + +```csharp + // Step 4 – Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); // The PNG file is written to disk + } +} // End of using HTMLDocument +``` + +*Lý do quan trọng:* `ImageRenderer` tuân thủ mọi thiết lập chúng ta đã định nghĩa trước đó—kích thước, anti‑aliasing, hinting văn bản, kiểu phông chữ. Khi `Render()` hoàn thành, bạn sẽ có một PNG hoàn chỉnh có thể hiển thị trong trình duyệt, tải lên lưu trữ đám mây, hoặc nhúng vào báo cáo. + +> **Mẹo chuyên nghiệp:** Nếu bạn cần định dạng ảnh khác (JPEG, BMP, GIF), chỉ cần thay đổi phần mở rộng file trong đường dẫn xuất. Aspose sẽ tự động chọn encoder phù hợp. + +## Render HTML to PNG với Aspose.HTML – Ví Dụ Đầy Đủ + +Kết hợp tất cả các phần lại sẽ cho bạn một chương trình duy nhất, tự chứa. Sao chép khối dưới đây vào một ứng dụng console mới và chạy; bạn sẽ thấy `output.png` xuất hiện cạnh file HTML nguồn. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +using Aspose.Html.Drawing; + +namespace HtmlToPngDemo +{ + class Program + { + static void Main() + { + // Load the HTML document you want to render + using (var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html")) + { + // Set up image rendering options (size and anti‑aliasing) + var renderingOptions = new ImageRenderingOptions + { + Width = 1024, + Height = 768, + UseAntialiasing = true + }; + + // Fine‑tune text rendering – enable hinting and choose a font style + renderingOptions.TextOptions.UseHinting = true; + renderingOptions.TextOptions.FontStyle = WebFontStyle.Bold | WebFontStyle.Italic; + + // Create the renderer and generate the PNG image + using (var imageRenderer = new ImageRenderer(htmlDocument, + "YOUR_DIRECTORY/output.png", + renderingOptions)) + { + imageRenderer.Render(); + } + } + + Console.WriteLine("✅ PNG created successfully! Check YOUR_DIRECTORY/output.png"); + } + } +} +``` + +### Kết Quả Mong Đợi + +Sau khi chạy, bạn sẽ thấy một file tương tự như mô phỏng dưới đây (giao diện thực tế phụ thuộc vào nội dung HTML của bạn). + +![Tạo PNG từ HTML ví dụ](/images/html-to-png-sample.png "Kết quả mẫu khi bạn tạo PNG từ HTML bằng Aspose.HTML") + +PNG sẽ giữ nguyên bố cục, màu sắc và phông chữ giống như trình duyệt hiển thị trang—nhờ vào **render html document image** engine bên trong Aspose. + +## Câu Hỏi Thường Gặp & Các Trường Hợp Cạnh + +### HTML của Tôi Tham Chiếu Ảnh Ngoài? + +Aspose.HTML theo dõi các URL tương đối dựa trên thư mục của `input.html`. Nếu bạn có ảnh lưu ở nơi khác, bạn có thể: + +1. Sử dụng URL tuyệt đối (ví dụ: `https://example.com/logo.png`). +2. Đặt `htmlDocument.BaseUrl` trỏ tới thư mục chứa các tài nguyên. + +```csharp +htmlDocument.BaseUrl = new Uri("file:///YOUR_DIRECTORY/"); +``` + +### Làm Thế Nào Để Điều Chỉnh DPI cho Đầu Ra Độ Phân Giải Cao? + +Bạn có thể mở rộng kích thước render trong khi giữ tỷ lệ khung hình, hoặc đặt `renderingOptions.DPI` (mặc định là 96). Đối với PNG chuẩn in, 300 DPI là phổ biến: + +```csharp +renderingOptions.DPI = 300; +renderingOptions.Width = 2480; // 8.5" * 300 DPI +renderingOptions.Height = 3508; // 11" * 300 DPI +``` + +### Tôi Có Thể Render Nhiều Trang Từ Một Tài Liệu HTML Không? + +Có. Nếu HTML chứa các page break CSS (`@media print { page-break-after: always; }`), Aspose sẽ tạo các file PNG riêng cho mỗi trang khi bạn dùng `MultiPageImageRenderer`. Đây là kịch bản nâng cao, nhưng nguyên tắc **convert html to image** vẫn áp dụng. + +### Về Tiêu Thụ Bộ Nhớ? + +Render một trang rất lớn (hàng ngàn pixel chiều rộng) có thể tiêu tốn hàng trăm megabyte. Để giảm tiêu thụ bộ nhớ: + +- Render ở kích thước nhỏ nhất chấp nhận được. +- Tắt `UseAntialiasing` nếu chất lượng không quan trọng. +- Giải phóng `HTMLDocument` và `ImageRenderer` ngay lập tức bằng các câu lệnh `using` (như trong ví dụ). + +## Render HTML Document Image – Các Bước Tiếp Theo + +Bây giờ bạn đã nắm vững các kiến thức cơ bản của **render html to png**, hãy xem xét các mở rộng sau: + +- **Chuyển đổi hàng loạt:** Duyệt qua một thư mục các file HTML và tạo PNG đồng loạt. +- **Thêm watermark:** Sau khi render, tải PNG bằng `System.Drawing` hoặc `ImageSharp` và chồng logo lên. +- **Tạo PDF:** Sử dụng `PdfRenderer` (cũng là một phần của Aspose.HTML) để tạo PDF từ cùng một nguồn HTML. + +Mỗi mục đều dựa trên các khái niệm cốt lõi bạn vừa học, vì vậy bạn sẽ cảm thấy quen thuộc ngay. + +## Kết Luận + +Chúng ta đã đưa bạn từ vấn đề—*cách tạo PNG từ HTML*—đến một giải pháp hoàn chỉnh, có thể chạy được, giúp **render HTML to PNG**, **convert HTML to image**, và **export HTML as PNG** với kiểm soát chi tiết về kích thước, anti‑aliasing, và hinting văn bản. + +Hãy thử với trang web của riêng bạn, điều chỉnh kích thước, và khám phá các kiểu phông chữ khác nhau. Code ngắn gọn, API trực quan, và kết quả giống như chụp màn hình trong trình duyệt—nhưng nhanh hơn và có thể tự động hoá hoàn toàn. + +Nếu bạn thích hướng dẫn này, hãy xem các tutorial khác của chúng tôi về **render html document image** như chuyển HTML sang PDF hoặc tạo ảnh SVG. Chúc bạn lập trình vui vẻ, và mong PNG của bạn luôn pixel‑perfect! + +{{< /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/net/html-extensions-and-conversions/_index.md b/html/vietnamese/net/html-extensions-and-conversions/_index.md index 169c7624f..75db23acf 100644 --- a/html/vietnamese/net/html-extensions-and-conversions/_index.md +++ b/html/vietnamese/net/html-extensions-and-conversions/_index.md @@ -73,6 +73,10 @@ Tạo PDF từ HTML trong .NET bằng C#. Hướng dẫn chi tiết từng bư Hướng dẫn chi tiết cách lưu tài liệu HTML thành tệp ZIP bằng Aspose.HTML cho .NET với C#. ### [Lưu HTML thành ZIP trong C# – Ví dụ Toàn bộ trong Bộ nhớ](./save-html-to-zip-in-c-complete-in-memory-example/) Hướng dẫn lưu tài liệu HTML vào tệp ZIP trong C# bằng Aspose.HTML, sử dụng bộ nhớ tạm và không tạo file tạm trên đĩa. +### [Lưu HTML dưới dạng ZIP – Hướng dẫn C# đầy đủ để chuyển đổi HTML thành ZIP](./save-html-as-zip-complete-c-guide-to-convert-html-to-zip/) +Hướng dẫn chi tiết cách lưu tài liệu HTML thành tệp ZIP bằng Aspose.HTML cho .NET sử dụng C#. +### [Cách Nén HTML từ DOCX – Hướng dẫn C# đầy đủ](./how-to-zip-html-from-docx-complete-c-guide/) +Hướng dẫn chi tiết cách nén HTML từ tệp DOCX thành ZIP bằng C# và Aspose.HTML cho .NET, bao gồm ví dụ mã và tùy chọn cấu hình. ## Phần kết luận diff --git a/html/vietnamese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md b/html/vietnamese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md new file mode 100644 index 000000000..b8c000e90 --- /dev/null +++ b/html/vietnamese/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/_index.md @@ -0,0 +1,294 @@ +--- +category: general +date: 2026-04-26 +description: Tìm hiểu cách nén đầu ra HTML từ tệp DOCX, chuyển đổi docx sang HTML, + đặt kích thước hình ảnh, xuất Word sang PNG và cách đặt phông chữ in đậm – mã từng + bước. +draft: false +keywords: +- how to zip html +- convert docx to html +- set image size +- export word to png +- how to set bold font +language: vi +og_description: Nắm vững cách nén đầu ra HTML từ tệp DOCX, chuyển đổi docx sang HTML, + thiết lập kích thước hình ảnh, xuất Word sang PNG và cách đặt phông chữ đậm với + các ví dụ C# rõ ràng. +og_title: Cách Nén HTML từ DOCX – Hướng Dẫn C# Toàn Diện +tags: +- C# +- Aspose.Words +- Document Conversion +- HTML Export +- Image Rendering +title: Cách Nén HTML từ DOCX – Hướng Dẫn C# Đầy Đủ +url: /vi/net/html-extensions-and-conversions/how-to-zip-html-from-docx-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Nén HTML từ DOCX – Hướng Dẫn C# Đầy Đủ + +Bạn đã bao giờ tự hỏi **how to zip html** mà bạn tạo ra từ một tài liệu Word chưa? Có thể bạn cần một tệp lưu trữ duy nhất để gửi cho khách hàng hoặc lưu trữ trên đám mây, và bạn không muốn một thư mục đầy các tệp rời rạc. Trong hướng dẫn này, chúng ta sẽ đi qua quá trình chuyển đổi tệp .docx sang HTML, đóng gói kết quả vào một tệp ZIP, và sau đó render cùng tài liệu đó thành ảnh PNG với kích thước tùy chỉnh và văn bản in đậm. Trong quá trình này, chúng ta cũng sẽ đề cập đến *convert docx to html*, *set image size*, *export word to png*, và *how to set bold font*—tất cả trong một ví dụ thống nhất. + +Vào cuối hướng dẫn này, bạn sẽ có một chương trình C# sẵn sàng chạy mà: + +* Tải một DOCX từ đĩa. +* Lưu nó dưới dạng HTML đồng thời tự động nén đầu ra thành ZIP. +* Render một PNG với độ rộng, chiều cao chính xác, khử răng cưa, và kiểu chữ in đậm. + +Không có script bên ngoài, không có logic zip tự viết—chỉ có Aspose.Words for .NET API (hoặc bất kỳ thư viện tương đương nào) thực hiện công việc nặng. + +--- + +## Yêu Cầu Trước Khi Bắt Đầu — Những Gì Bạn Cần + +| Yêu Cầu | Lý Do Quan Trọng | +|-------------|----------------| +| **.NET 6.0+** (or .NET Framework 4.7.2) | Cung cấp môi trường chạy cho cú pháp C# 10 được sử dụng bên dưới. | +| **Aspose.Words for .NET** (or a similar library that supports `HtmlSaveOptions` và `ImageRenderer`) | Xử lý chuyển đổi DOCX → HTML, nén, và render ảnh. | +| **A DOCX file** named `input.docx` in a folder you control | Tài liệu nguồn mà chúng ta sẽ chuyển đổi. | +| **Write permission** to the output directory (`YOUR_DIRECTORY`) | Cần thiết để tạo `doc.zip` và `out.png`. | + +Nếu bạn đang sử dụng NuGet, cài đặt gói bằng: + +```bash +dotnet add package Aspose.Words +``` + +> **Pro tip:** Phiên bản đánh giá miễn phí sẽ thêm watermark vào PNG đã render. Hãy mua giấy phép để sử dụng trong môi trường sản xuất. + +--- + +## Bước 1: Tải Tài Liệu Nguồn + +Điều đầu tiên chúng ta làm là đọc tệp Word vào bộ nhớ. Đây là nền tảng cho **convert docx to html** và cho việc render PNG sau này. + +```csharp +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +// Step 1: Load the source document +Document document = new Document("YOUR_DIRECTORY/input.docx"); +``` + +*Why this matters:* +`Document` là đối tượng trung tâm; nó phân tích gói .docx, giải quyết các kiểu dáng, và chuẩn bị tài nguyên cho cả xuất HTML và render ảnh. Nếu không tìm thấy tệp, sẽ ném ra ngoại lệ—vì vậy hãy chắc chắn đường dẫn đúng. + +--- + +## Bước 2: Cấu Hình Tùy Chọn Lưu HTML – Cốt Lõi của **How to Zip HTML** + +Ở đây chúng ta chỉ định cho Aspose.Words tạo HTML, lưu tất cả tài nguyên liên quan (hình ảnh, CSS) qua một trình xử lý tài nguyên tùy chỉnh, và cuối cùng nén mọi thứ vào một tệp lưu trữ duy nhất. + +```csharp +// Step 2: Configure HTML save options to use a custom resource handler and archive the output +HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions +{ + // The handler decides where images, CSS, etc. are written. + OutputStorage = new MyResourceHandler(), + + // Turn on archiving – this is the answer to “how to zip html”. + SaveToArchive = true, + + // Name of the resulting zip file. + ArchiveFileName = "doc.zip" +}; +``` + +### Chức Năng của `MyResourceHandler` + +```csharp +public class MyResourceHandler : IResourceSavingCallback +{ + public void ResourceSaving(ResourceSavingArgs args) + { + // Save each resource (e.g., images) into the archive automatically. + // You can also rename files or change folders here. + args.ResourceFileName = args.ResourceFileName; // keep original name + } +} +``` + +*Why we need a handler:* +Khi chuyển đổi **convert docx to html**, thư viện có thể tạo ra nhiều tệp phụ trợ (ví dụ, `image001.png`). Trình xử lý sẽ chặn mỗi thao tác lưu, đảm bảo mọi thứ đều nằm trong ZIP thay vì một thư mục rời rạc. + +--- + +## Bước 3: Lưu Tài Liệu dưới Dạng HTML Được Nén + +Bây giờ phép màu xảy ra. Các tệp HTML và tài nguyên của chúng được ghi trực tiếp vào `doc.zip`. + +```csharp +// Step 3: Save the document as HTML using the configured options +document.Save(htmlSaveOptions); +``` + +**Result:** +`YOUR_DIRECTORY/doc.zip` hiện chứa: + +* `document.html` – markup chính. +* `document_files/` – thư mục con chứa hình ảnh, CSS, và bất kỳ phương tiện nhúng nào. + +Bạn có thể giải nén để kiểm tra cấu trúc, hoặc phục vụ ZIP trực tiếp từ một API web. + +--- + +## Bước 4: Thiết Lập Tùy Chọn Render Ảnh – Kiểm Soát **Set Image Size** và **How to Set Bold Font** + +Nếu bạn cần một ảnh chụp nhanh của tệp Word, bạn có thể render nó thành PNG. Khối mã sau cho thấy cách định nghĩa kích thước chính xác, bật khử răng cưa, và buộc kiểu chữ in đậm cho toàn bộ văn bản. + +```csharp +// Step 4: Set up image rendering options (size, antialiasing, text rendering) +ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions +{ + // Desired pixel dimensions – this is the core of “set image size”. + Width = 800, + Height = 600, + + // Improves visual quality, especially for vector graphics. + UseAntialiasing = true, + + // Text rendering options – here we answer “how to set bold font”. + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold // forces bold on all text fragments. + } +}; +``` + +*Why these flags matter:* +- **Width/Height** cho phép bạn tùy chỉnh PNG cho bố cục UI của mình. +- **UseAntialiasing** làm mịn các cạnh, ngăn ngừa đường nét răng cưa. +- **FontStyle = Bold** ghi đè bất kỳ kiểu nội tuyến nào trong DOCX, đảm bảo PNG hiển thị dạng in đậm bất kể định dạng gốc. + +--- + +## Bước 5: Render Tài Liệu thành PNG – Bước **Export Word to PNG** + +Cuối cùng, chúng ta kết hợp mọi thứ lại và tạo ra tệp ảnh. + +```csharp +// Step 5: Render the document to a PNG image with the specified options +ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); +renderer.Render(); +``` + +**What you’ll see:** +Một `out.png` sắc nét khớp với kích thước 800 × 600, với toàn bộ văn bản được render in đậm, và bất kỳ đồ họa vector nào cũng được khử răng cưa. + +--- + +## Ví Dụ Hoàn Chỉnh – Sao Chép, Dán, Chạy + +Dưới đây là chương trình đầy đủ, sẵn sàng để bạn chèn vào một ứng dụng console. + +```csharp +using System; +using Aspose.Words; +using Aspose.Words.Saving; +using Aspose.Words.Rendering; + +namespace DocxToHtmlZipAndPng +{ + // Custom resource handler for archiving HTML assets. + public class MyResourceHandler : IResourceSavingCallback + { + public void ResourceSaving(ResourceSavingArgs args) + { + // Keep the original file name inside the zip. + args.ResourceFileName = args.ResourceFileName; + } + } + + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the source document (convert docx to html later) + Document document = new Document("YOUR_DIRECTORY/input.docx"); + + // 2️⃣ Set up HTML save options – this is the answer to “how to zip html” + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + OutputStorage = new MyResourceHandler(), + SaveToArchive = true, + ArchiveFileName = "doc.zip" + }; + + // 3️⃣ Save as zipped HTML + document.Save(htmlSaveOptions); + Console.WriteLine("HTML saved and zipped to doc.zip"); + + // 4️⃣ Define image rendering – here we “set image size” and “how to set bold font” + ImageRenderingOptions imageRenderOptions = new ImageRenderingOptions + { + Width = 800, + Height = 600, + UseAntialiasing = true, + TextOptions = + { + UseHinting = true, + FontStyle = WebFontStyle.Bold + } + }; + + // 5️⃣ Render to PNG – this completes the “export word to png” step + ImageRenderer renderer = new ImageRenderer(document, "YOUR_DIRECTORY/out.png", imageRenderOptions); + renderer.Render(); + Console.WriteLine("PNG rendered to out.png"); + } + } +} +``` + +### Kết Quả Mong Đợi + +| File | Location | Description | +|------|----------|-------------| +| `doc.zip` | `YOUR_DIRECTORY` | HTML nén + tài nguyên (`document.html`, `document_files/…`). | +| `out.png` | `YOUR_DIRECTORY` | PNG 800 × 600, toàn bộ văn bản in đậm, khử răng cưa. | + +Bạn có thể mở `doc.zip` bằng bất kỳ công cụ nén nào, giải nén `document.html`, và xem nó trong trình duyệt. Ảnh sẽ hiển thị chính xác như đã render từ tệp Word gốc. + +--- + +## Câu Hỏi Thường Gặp & Trường Hợp Cạnh + +### Nếu tôi cần định dạng ảnh khác thì sao? +Thay đổi phần mở rộng tệp trong hàm khởi tạo `ImageRenderer` (`out.jpg`, `out.tiff`) và điều chỉnh `ImageSavingOptions` cho phù hợp. API sẽ tự động chọn bộ mã hoá đúng. + +### Tôi có thể kiểm soát mức nén của ZIP không? +`HtmlSaveOptions` cung cấp thuộc tính `ZipCompressionLevel` (ví dụ, `CompressionLevel.BestCompression`). Đặt nó trước khi gọi `Save`. + +```csharp +htmlSaveOptions.ZipCompressionLevel = CompressionLevel.BestCompression; +``` + +### DOCX của tôi chứa hình ảnh độ phân giải cao lớn—PNG sẽ quá lớn không? +Có, vì chúng ta ép kích thước pixel cố định. Để giữ kích thước tệp nhỏ, hoặc giảm `Width`/`Height` hoặc bật `ImageResizeOptions` trong `ImageRenderingOptions`. + +### Làm sao để giữ nguyên độ đậm của phông chữ gốc thay vì buộc in đậm? +Chỉ cần xóa dòng `FontStyle = WebFontStyle.Bold`, hoặc đặt nó một cách có điều kiện dựa trên một cờ mà bạn cung cấp cho người dùng. + +### Điều này có hoạt động trên Linux/macOS không? +Hoàn toàn có. Aspose.Words hỗ trợ đa nền tảng; chỉ cần đảm bảo bạn đã cài đặt runtime .NET phù hợp. + +## Danh Sách Kiểm Tra Xử Lý Sự Cố + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| `FileNotFoundException` on `input.docx` | Wrong path or missing file | Verify `YOUR_DIRECTORY/input.docx` exists; use absolute paths for testing. | +| `OutOfMemoryException` during PNG render | Very large document or huge image dimensions | Reduce `Width`/`Height` or render pages individually (`ImageRenderer.Render(pageIndex)`). | +| ZIP contains empty `document_files` folder | `MyResourceHandler` returned a different file name or threw | Ensure `ResourceSaving` does not cancel the save (`args.Cancel = false`). | +| Văn bản không in đậm trong PNG | ` + +{{< /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/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md b/html/vietnamese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md new file mode 100644 index 000000000..f1e2281f9 --- /dev/null +++ b/html/vietnamese/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-04-26 +description: Lưu HTML dưới dạng ZIP nhanh chóng với Aspose.HTML. Tìm hiểu cách chuyển + đổi HTML sang ZIP bằng trình xử lý tài nguyên tùy chỉnh và tạo HTML thành ZIP chỉ + trong vài bước. +draft: false +keywords: +- save html as zip +- convert html to zip +- custom resource handler +- render html to zip +- create zip from html +language: vi +og_description: Lưu HTML dưới dạng ZIP với Aspose.HTML. Hướng dẫn này chỉ cách chuyển + đổi HTML sang ZIP, sử dụng trình xử lý tài nguyên tùy chỉnh để render HTML sang + ZIP một cách hiệu quả. +og_title: Lưu HTML dưới dạng ZIP – Hướng dẫn C# chi tiết từng bước +tags: +- Aspose.HTML +- C# +- HTML rendering +title: Lưu HTML dưới dạng ZIP – Hướng dẫn C# đầy đủ để chuyển đổi HTML sang ZIP +url: /vi/net/html-extensions-and-conversions/save-html-as-zip-complete-c-guide-to-convert-html-to-zip/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Lưu HTML dưới dạng ZIP – Hướng dẫn C# đầy đủ để Chuyển đổi HTML sang ZIP + +Bạn đã bao giờ cần **lưu HTML dưới dạng ZIP** nhưng không chắc nên gọi API nào theo chuỗi? Bạn không đơn độc. Nhiều nhà phát triển gặp khó khăn khi muốn gói một trang HTML cùng với CSS, hình ảnh và phông chữ của nó thành một kho lưu trữ duy nhất — đặc biệt khi họ muốn toàn bộ dữ liệu ở trong bộ nhớ cho đến khi quyết định xử lý. + +Tin tốt? Với Aspose.HTML bạn có thể **chuyển đổi HTML sang ZIP** chỉ trong vài dòng code, nhờ lớp `HtmlSaveOptions` và **bộ xử lý tài nguyên tùy chỉnh** cho phép bạn kiểm soát hoàn toàn nơi mỗi tài nguyên sẽ được lưu. Trong hướng dẫn này chúng ta sẽ đi qua các bước chính để **render HTML thành ZIP**, lưu mọi thứ trong bộ nhớ, và tùy chọn ghi các tệp ra đĩa. Khi hoàn thành, bạn sẽ có một đoạn mã có thể tái sử dụng trong bất kỳ dự án .NET nào. + +## Những gì hướng dẫn này sẽ đề cập + +* Cách định nghĩa chuỗi nguồn HTML (hoặc tải nó từ tệp). +* Cách khởi tạo một `HTMLDocument` với Aspose.HTML. +* Cách tạo **bộ xử lý tài nguyên tùy chỉnh** trả về một `MemoryStream` cho mỗi tài nguyên. +* Cách cấu hình `HtmlSaveOptions` để tạo một **tệp ZIP** chứa HTML và tất cả các tệp phụ thuộc. +* Cách lưu tài liệu và, nếu muốn, ghi dữ liệu trong bộ nhớ ra một thư mục trên đĩa. + +Không cần công cụ bên ngoài, không cần nén thủ công — chỉ C# thuần và Aspose.HTML. + +> **Pro tip:** Nếu bạn đã sử dụng Aspose.PDF hoặc Aspose.Words, mẫu `ResourceHandler` giống nhau cũng hoạt động ở đó, vì vậy bạn có thể tái sử dụng đoạn mã này cho nhiều loại tài liệu. + +--- + +## Bước 1: Lưu HTML dưới dạng ZIP – Định nghĩa nguồn HTML + +Đầu tiên chúng ta cần một chuỗi chứa HTML muốn lưu trữ. Trong dự án thực tế bạn có thể đọc chuỗi này từ tệp, cơ sở dữ liệu, hoặc phản hồi API, nhưng để minh bạch chúng ta sẽ hard‑code một ví dụ nhỏ. + +```csharp +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; +``` + +> **Tại sao lại quan trọng:** Hàm khởi tạo `HTMLDocument` chấp nhận đường dẫn tệp hoặc HTML thô. Việc truyền trực tiếp chuỗi giúp toàn bộ quy trình ở trong bộ nhớ, rất phù hợp khi bạn muốn stream ZIP trực tiếp tới client. + +--- + +## Bước 2: Chuyển đổi HTML sang ZIP – Tải HTMLDocument + +Bây giờ chúng ta đưa chuỗi HTML cho Aspose.HTML. Tham số thứ hai (`"."`) cho thư viện biết nơi giải quyết các URL tương đối; sử dụng thư mục hiện tại hoạt động tốt cho hầu hết các trường hợp đơn giản. + +```csharp +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // The rest of the steps go inside this block. +``` + +> **Đang xảy ra gì:** `HTMLDocument` phân tích markup, xây dựng DOM, và chuẩn bị tất cả tài nguyên liên kết (CSS, hình ảnh, phông chữ) để render. Đặt trong khối `using` đảm bảo giải phóng đúng các tài nguyên gốc. + +--- + +## Bước 3: Render HTML thành ZIP – Tạo Bộ Xử Lý Tài Nguyên Tùy Chỉnh + +Aspose.HTML cho phép bạn quyết định **nơi** mỗi tài nguyên được ghi. Bằng cách kế thừa `ResourceHandler` chúng ta có thể trả về một `MemoryStream` mới cho mỗi tệp mà renderer cần lưu. + +```csharp + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); +``` + +> **Tại sao cần bộ xử lý tùy chỉnh?** Hành vi mặc định ghi các tệp vào hệ thống file. Với một handler, bạn có thể giữ mọi thứ trong RAM, đẩy ZIP thẳng vào phản hồi web, hoặc thậm chí mã hoá các stream ngay khi tạo. + +--- + +## Bước 4: Chuyển đổi HTML sang ZIP – Cấu hình tùy chọn lưu + +Đây là phần cốt lõi của hoạt động. `HtmlSaveOptions` chỉ định cho Aspose.HTML gói mọi thứ vào một tệp ZIP (`SaveToArchive = true`) và sử dụng `resourceHandler` của chúng ta để lưu trữ. + +```csharp + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, // directs output to our handler + SaveToArchive = true, // enables ZIP creation + ArchiveFileName = "result.zip" // name of the archive inside the stream + }; +``` + +> **Nhận xét quan trọng:** `ArchiveFileName` là tên sẽ xuất hiện bên trong ZIP, không phải đường dẫn trên đĩa. Vì chúng ta dùng handler dựa trên bộ nhớ, ZIP tồn tại hoàn toàn trong RAM cho đến khi chúng ta quyết định xử lý nó. + +--- + +## Bước 5: Lưu HTML dưới dạng ZIP – Ghi lại kho lưu trữ + +Cuối cùng, chúng ta yêu cầu tài liệu lưu chính nó bằng các tùy chọn vừa tạo. Lệnh này kích hoạt pipeline render, gọi handler cho mỗi tài nguyên, và ghi ZIP cuối cùng vào các stream chúng ta cung cấp. + +```csharp + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} +``` + +> **Kết quả:** Tại thời điểm này `resourceHandler` chứa một `MemoryStream` cho tệp HTML chính, cộng thêm các stream cho bất kỳ CSS, hình ảnh, hoặc phông chữ nào được tham chiếu. Tệp ZIP đã được lắp ráp đầy đủ trong các stream đó. + +--- + +## Bước 6: Bộ Xử Lý Tài Nguyên Tùy Chỉnh – Cung cấp Stream cho Mỗi Tài Nguyên + +Dưới đây là triển khai của `MyResourceHandler`. Phương thức `HandleResource` được gọi một lần cho mỗi tài nguyên (HTML, CSS, hình ảnh, phông chữ, …). Chúng ta chỉ trả về một `MemoryStream` mới mỗi lần. + +```csharp +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); +``` + +> **Tại sao lại tạo stream mới?** Mỗi tài nguyên cần một container riêng; việc dùng lại một stream duy nhất sẽ làm hỏng kho lưu trữ. `MemoryStream` nhẹ và tự động mở rộng khi cần. + +--- + +## Bước 7: Tùy chọn – Ghi các tài nguyên đã lưu ra đĩa + +Nếu bạn muốn kiểm tra các tệp đã tạo hoặc giữ một bản sao trên server, `ResourceSaved` sẽ được gọi sau khi một stream được đóng. Ở đây chúng ta ghi nội dung trong bộ nhớ vào một thư mục bạn chỉ định (`YOUR_DIRECTORY/Output`). + +```csharp + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; // rewind to the beginning + stream.CopyTo(file); // dump the data to disk + } + } +} +``` + +> **Lưu ý trường hợp đặc biệt:** Nếu bạn chạy trong môi trường không có quyền ghi (ví dụ Azure Functions), chỉ cần bỏ qua triển khai `ResourceSaved` hoặc thay thế nó bằng việc tải lên lưu trữ đám mây. + +--- + +## Ví dụ đầy đủ, có thể chạy (38 Dòng) + +Dưới đây là đoạn mã hoàn chỉnh, sẵn sàng dán vào một console app. Nó tuân thủ giới hạn 15‑40 dòng, dùng tên biến mô tả, và bao gồm các placeholder bạn có thể điều chỉnh. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +// Step 1: HTML source to render. +string htmlContent = "

Hello World

"; + +// Step 2: Load HTML into a document. +using (var htmlDoc = new HTMLDocument(htmlContent, ".")) +{ + // Step 3: Custom handler that stores resources in memory. + var resourceHandler = new MyResourceHandler(); + // Step 4: Configure save options to create a ZIP archive. + var saveOptions = new HtmlSaveOptions + { + OutputStorage = resourceHandler, + SaveToArchive = true, + ArchiveFileName = "result.zip" + }; + // Step 5: Save the document. + htmlDoc.Save(saveOptions); +} + +// ----------------------------------------------------------------- +public class MyResourceHandler : ResourceHandler +{ + // Provide a stream for each resource. + public override Stream HandleResource(ResourceInfo info) => new MemoryStream(); + // After saving, write the in‑memory data to disk. + public override void ResourceSaved(ResourceInfo info, Stream stream) + { + string outPath = Path.Combine("YOUR_DIRECTORY/Output", info.FileName); + Directory.CreateDirectory(Path.GetDirectoryName(outPath)); + using (var file = File.Create(outPath)) + { + stream.Position = 0; + stream.CopyTo(file); + } + } +} +``` + +### Kết quả mong đợi + +* Một tệp `result.zip` xuất hiện bên trong kho lưu trữ trong bộ nhớ (bạn có thể lấy nó từ `resourceHandler` nếu thêm thuộc tính để truy cập stream). +* Nếu bạn giữ triển khai `ResourceSaved`, cùng các tệp cũng sẽ được ghi vào `YOUR_DIRECTORY/Output` trên đĩa, phản ánh cấu trúc bên trong của ZIP. + +--- + +## Câu hỏi thường gặp (FAQ) + +**H: Điều này có hoạt động với các trang HTML lớn không?** +Đ: Hoàn toàn có. `MemoryStream` sẽ mở rộng khi cần, nhưng với các trang đa megabyte bạn có thể muốn stream trực tiếp tới `FileStream` để tránh áp lực bộ nhớ cao. Chỉ cần thay đổi `HandleResource` để trả về `File.Create(Path.Combine("temp", info.FileName))`. + +**H: Tôi có thể mã hoá ZIP không?** +Đ: Aspose.HTML không cung cấp mã hoá tích hợp, nhưng sau khi lấy được `MemoryStream` bạn có thể chuyển nó cho `System.IO.Compression.ZipArchive` với mật khẩu, hoặc dùng thư viện bên thứ ba như SharpZipLib. + +**H: Còn các URL tương đối trong HTML thì sao?** +Đ: Tham số thứ hai của `HTMLDocument` (`"."`) chỉ cho Aspose.HTML giải quyết các đường dẫn tương đối dựa trên thư mục hiện tại. Nếu tài nguyên của bạn nằm ở nơi khác, hãy truyền đường dẫn cơ sở thích hợp hoặc một `UriResolver` tùy chỉnh. + +--- + +## Kết luận + +Chúng ta vừa trình bày cách **lưu HTML dưới dạng ZIP** bằng Aspose.HTML, **bộ xử lý tài nguyên tùy chỉnh**, và một vài bước cấu hình đơn giản. Cách tiếp cận cho phép bạn **chuyển đổi HTML sang ZIP** hoàn toàn trong bộ nhớ, mang lại sự linh hoạt để stream kết quả tới client web, lưu vào cơ sở dữ liệu, hoặc ghi ra đĩa để sử dụng sau. + +Hãy thử nghiệm: thay `MemoryStream` bằng stream lưu trữ đám mây, thêm bảo vệ bằng mật khẩu, hoặc xử lý hàng chục trang song song. Mẫu cốt lõi — load, handle, configure, save — vẫn giữ nguyên, biến nó thành khối xây dựng tái sử dụng cho bất kỳ giải pháp .NET nào cần **render HTML to ZIP** hoặc **create ZIP from HTML**. + +Có thêm câu hỏi về bộ xử lý tài nguyên tùy chỉnh hoặc các tính năng khác của Aspose.HTML? Để lại bình luận bên dưới, và chúc bạn coding vui! + +![Diagram showing the flow from HTML source to in‑memory ZIP archive](placeholder.png "save html as zip example") + +{{< /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