diff --git a/html/arabic/net/advanced-features/_index.md b/html/arabic/net/advanced-features/_index.md index 49f4375d3..a1e203188 100644 --- a/html/arabic/net/advanced-features/_index.md +++ b/html/arabic/net/advanced-features/_index.md @@ -46,6 +46,8 @@ Aspose.HTML for .NET هي أداة قوية تتيح للمطورين العمل تعرف على كيفية استخدام Aspose.HTML لـ .NET لإنشاء مستندات HTML بشكل ديناميكي من بيانات JSON. استغل قوة معالجة HTML في تطبيقات .NET الخاصة بك. ### [كيفية دمج الخطوط برمجيًا في C# – دليل خطوة بخطوة](./how-to-combine-fonts-programmatically-in-c-step-by-step-guid/) تعلم كيفية دمج خطوط متعددة برمجيًا في C# باستخدام Aspose.HTML لإنشاء مستندات HTML غنية ومتنوعة. +### [معالج موارد مخصص في Aspose HTML – دليل حفظ إلى تدفق](./custom-resource-handler-in-aspose-html-save-to-stream-guide/) +تعلم كيفية إنشاء معالج موارد مخصص في Aspose HTML وحفظ المحتوى إلى تدفق. ## خاتمة diff --git a/html/arabic/net/advanced-features/custom-resource-handler-in-aspose-html-save-to-stream-guide/_index.md b/html/arabic/net/advanced-features/custom-resource-handler-in-aspose-html-save-to-stream-guide/_index.md new file mode 100644 index 000000000..4f69a731f --- /dev/null +++ b/html/arabic/net/advanced-features/custom-resource-handler-in-aspose-html-save-to-stream-guide/_index.md @@ -0,0 +1,298 @@ +--- +category: general +date: 2026-02-22 +description: يتيح لك معالج الموارد المخصص التقاط مخرجات HTML. تعلّم كيفية تحميل مستند + HTML، واستخدام Aspose HTML للحفظ، وحفظ HTML إلى تدفق باستخدام مثال بسيط بلغة C#. +draft: false +keywords: +- custom resource handler +- load html document +- aspose html save +- save html to stream +- capture html output +language: ar +og_description: تعلم كيف يلتقط معالج الموارد المخصص مخرجات HTML، ويحمل مستند HTML، + ويحفظ HTML إلى تدفق باستخدام Aspose HTML في C#. +og_title: معالج الموارد المخصص في Aspose HTML – دليل حفظ إلى الدفق +tags: +- aspose-html +- csharp +- streaming +- resource-handler +title: معالج الموارد المخصص في Aspose HTML – دليل حفظ إلى تدفق +url: /ar/net/advanced-features/custom-resource-handler-in-aspose-html-save-to-stream-guide/ +--- + +. + +Now produce final content with Arabic translation. + +Make sure to keep markdown formatting exactly. + +Let's craft Arabic translations. + +Be careful with punctuation and line breaks. + +Proceed. + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# معالج الموارد المخصص – التقاط مخرجات HTML باستخدام Aspose HTML + +هل احتجت يوماً إلى **معالج موارد مخصص** لاعتراض كل ملف تكتبه Aspose HTML أثناء التحويل؟ ربما أردت توجيه HTML أو الصور أو CSS مباشرة إلى الذاكرة بدلاً من القرص. هذا سيناريو شائع جداً عندما تقوم بإنشاء خدمة ويب يجب أن تظل بلا حالة أو عندما تريد ببساطة **حفظ HTML إلى تدفق** للمعالجة لاحقاً. + +في هذا الدرس سنستعرض مثالاً كاملاً جاهزاً للتنفيذ يوضح كيفية **تحميل مستند HTML**، إرفاق **معالج موارد مخصص**، واستخدام **Aspose HTML save** لالتقاط كل جزء من المخرجات في `MemoryStream`. في النهاية ستفهم ليس فقط “ما هو” بل “لماذا” وراء كل سطر، وستحصل على نمط قابل لإعادة الاستخدام يمكنك إدراجه في أي مشروع C#. + +> **لماذا يهم؟** +> يتيح لك التقاط مخرجات HTML في الذاكرة تجنّب عمليات الإدخال/الإخراج على نظام الملفات، تقليل زمن الاستجابة في وظائف السحابة، ومنحك تحكمًا كاملاً في التسمية أو الضغط أو حتى التحويلات الفورية. + +--- + +## ما ستحتاجه + +- **.NET 6** أو أحدث (الكود يعمل أيضاً على .NET Framework 4.7+). +- حزمة NuGet **Aspose.HTML for .NET** (`Aspose.Html`). +- ملف HTML بسيط (`input.html`) موجود في مجلد يمكنك الإشارة إليه. +- أي بيئة تطوير تفضلها—Visual Studio، Rider، أو VS Code مع ملحقات C#. + +لا يلزم أي إعداد إضافي؛ الـ API يقوم بكل الأعمال الثقيلة. + +--- + +## الخطوة 1 – إنشاء معالج موارد مخصص + +جوهر هذه التقنية هو إنشاء فئة فرعية من `Aspose.Html.Rendering.ResourceHandler`. عبر تجاوز `HandleResource` تقرر **أين** يذهب كل تدفق مورد. في حالتنا نعيد `MemoryStream` جديد لكل طلب، مما يعني أن كل CSS أو صورة أو جزء فرعي من HTML يبقى فقط في الذاكرة. + +```csharp +using System; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; +using Aspose.Html.Rendering.Image; + +/// +/// Custom handler that writes every resource to a new MemoryStream. +/// +class MemoryStreamHandler : ResourceHandler +{ + public override Stream HandleResource(ResourceInfo resourceInfo) + { + // The ResourceInfo gives you the original URL and MIME type. + // You could inspect it here to decide whether to skip certain files. + // For this tutorial we just allocate a fresh stream. + return new MemoryStream(); + } +} +``` + +**نصيحة احترافية:** إذا كنت بحاجة إلى تتبع التدفقات (مثلاً لكتابتها لاحقاً في أرشيف ZIP)، احفظها في `Dictionary` مع مفتاح `resourceInfo.Uri`. + +--- + +## الخطوة 2 – تحميل مستند HTML + +قبل أن تتمكن من حفظ أي شيء، يجب **تحميل مستند HTML** إلى كائن `HTMLDocument`. يمكن لـ Aspose HTML القراءة من مسار ملف، URL، أو حتى من سلسلة نصية. هنا نستخدم ملفًا محليًا للتبسيط. + +```csharp +// Adjust the path to point at your real HTML file. +string htmlPath = Path.Combine(Environment.CurrentDirectory, "input.html"); + +// Load the source HTML document. +HTMLDocument htmlDocument = new HTMLDocument(htmlPath); +``` + +إذا كان ملف HTML الخاص بك يشير إلى موارد خارجية (صور، خطوط، إلخ) تأكد من صحة الـ base URI؛ وإلا لن يتمكن المعالج من العثور عليها. + +--- + +## الخطوة 3 – إنشاء مثيل للمعالج المخصص + +الآن نقوم بإنشاء مثيل للمعالج الذي عرّفناه سابقًا. لا شيء معقد—فقط `new` بسيط. سيتم تمرير هذا الكائن إلى طريقة `Save` في الخطوة التالية. + +```csharp +// Step 3: Instantiate the custom handler. +MemoryStreamHandler resourceHandler = new MemoryStreamHandler(); +``` + +نظرًا لأن المعالج يعيش فقط في الذاكرة، لا تحتاج للقلق بشأن أذونات الملفات أو تنظيفها على القرص. + +--- + +## الخطوة 4 – حفظ المستند باستخدام Aspose HTML Save + +عملية **Aspose HTML save** تقبل `ResourceHandler`. أثناء تجول المحرك عبر الـ DOM وحل كل مورد مرتبط، يتم استدعاء `HandleResource`. تنفيذنا يعيد `MemoryStream`، لذا كل جزء ينتهي به المطاف في الذاكرة. + +```csharp +// Step 4: Save the document. +// The handler's HandleResource method will be invoked for each output stream. +htmlDocument.Save(resourceHandler); +``` + +في هذه المرحلة يكون التحويل مكتملًا، لكن التدفقات لا تزال في الذاكرة. يمكنك الآن قراءتها، كتابتها إلى قاعدة بيانات، أو إرجاعها في استجابة API. + +--- + +## الخطوة 5 – استرجاع والتحقق من التدفقات الملتقطة + +نظرًا لأننا أعدنا `MemoryStream` جديد في كل مرة، نحتاج إلى طريقة للاحتفاظ بالمراجع. أدناه امتداد سريع للمعالج السابق يخزن كل تدفق في قاموس لتتمكن من فحصها بعد عملية الحفظ. + +```csharp +class TrackingMemoryStreamHandler : ResourceHandler +{ + public Dictionary Streams { get; } = new(); + + public override Stream HandleResource(ResourceInfo resourceInfo) + { + var ms = new MemoryStream(); + Streams[resourceInfo.Uri] = ms; // Remember the stream by its URI. + return ms; + } +} + +// Usage: +var trackingHandler = new TrackingMemoryStreamHandler(); +htmlDocument.Save(trackingHandler); + +// Example: write the main HTML output to console (as text) +if (trackingHandler.Streams.TryGetValue(htmlPath, out var mainStream)) +{ + mainStream.Position = 0; // rewind + using var reader = new StreamReader(mainStream); + string html = reader.ReadToEnd(); + Console.WriteLine("=== Rendered HTML ==="); + Console.WriteLine(html); +} +``` + +تشغيل هذا الكود سيطبع الـ HTML النهائي الذي أنشأه Aspose، مؤكدًا أن **capture html output** يعمل كما هو متوقع. + +--- + +## الحالات الخاصة والأسئلة الشائعة + +### 1. ماذا لو كان المستند كبيرًا؟ + +يمكن أن يزداد استهلاك الذاكرة بسرعة. بالنسبة للملفات الكبيرة أو HTML يحتوي على الكثير من الصور عالية الدقة، فكر في البث مباشرة إلى `FileStream` أو **تدفق شبكة مؤقت** بدلاً من `MemoryStream`. يمكن للمعالج اتخاذ القرار بناءً على `resourceInfo.MimeType`. + +### 2. هل يجب إغلاق (dispose) التدفقات؟ + +نعم. بعد الانتهاء من المعالجة، استدعِ `Dispose()` على كل `MemoryStream` (أو دع كتلة `using` تتولى ذلك). في مثال التتبع يمكننا إضافة: + +```csharp +foreach (var ms in trackingHandler.Streams.Values) + ms.Dispose(); +``` + +### 3. هل يمكنني إعادة تسمية الموارد قبل الحفظ؟ + +بالطبع. داخل `HandleResource` لديك إمكانية الوصول إلى `resourceInfo.Uri`. يمكنك تعديلها، إضافة بادئة، أو حتى تخطي ملفات معينة بإرجاع `null`. + +```csharp +if (resourceInfo.MimeType.StartsWith("image/")) + return null; // Skip images completely. +``` + +### 4. هل هذا النهج آمن للمتعدد الخيوط؟ + +يجب **عدم** مشاركة مثيل واحد من المعالج بين عمليات `Save` المتزامنة. أنشئ معالجًا جديدًا لكل تحويل، أو احمِ القاموس الداخلي بقفل إذا اضطررت لإعادة استخدامه. + +--- + +## مثال كامل يعمل + +فيما يلي البرنامج الكامل الذي يمكنك لصقه في تطبيق Console. يوضح كل شيء—من تحميل ملف HTML إلى طباعة المخرجات الملتقطة. + +```csharp +using System; +using System.Collections.Generic; +using System.IO; +using Aspose.Html; +using Aspose.Html.Rendering; + +class TrackingMemoryStreamHandler : ResourceHandler +{ + public Dictionary Streams { get; } = new(); + + public override Stream HandleResource(ResourceInfo resourceInfo) + { + var ms = new MemoryStream(); + Streams[resourceInfo.Uri] = ms; + return ms; + } +} + +class SaveToStreamTutorial +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Load the HTML document you want to render. + // ------------------------------------------------- + string htmlPath = Path.Combine(Environment.CurrentDirectory, "input.html"); + if (!File.Exists(htmlPath)) + { + Console.WriteLine($"Cannot find {htmlPath}"); + return; + } + + HTMLDocument htmlDocument = new HTMLDocument(htmlPath); + + // ------------------------------------------------- + // Step 2: Create the custom handler that captures streams. + // ------------------------------------------------- + var handler = new TrackingMemoryStreamHandler(); + + // ------------------------------------------------- + // Step 3: Save the document – Aspose will invoke our handler. + // ------------------------------------------------- + htmlDocument.Save(handler); + + // ------------------------------------------------- + // Step 4: Retrieve the main HTML output and display it. + // ------------------------------------------------- + if (handler.Streams.TryGetValue(htmlPath, out var mainStream)) + { + mainStream.Position = 0; // rewind to start + using var reader = new StreamReader(mainStream); + string renderedHtml = reader.ReadToEnd(); + Console.WriteLine("=== Rendered HTML Output ==="); + Console.WriteLine(renderedHtml); + } + else + { + Console.WriteLine("Main HTML stream not found."); + } + + // ------------------------------------------------- + // Step 5: Clean up. + // ------------------------------------------------- + foreach (var ms in handler.Streams.Values) + ms.Dispose(); + + Console.WriteLine("All streams disposed. Done."); + } +} +``` + +**المخرجات المتوقعة:** يطبع الـ Console الـ HTML المُصوَّر بالكامل (بما في ذلك أي CSS مضمن قد يولده Aspose) متبوعًا بتأكيد أن جميع التدفقات قد تم إغلاقها. + +--- + +## الخلاصة + +لقد تعلمت الآن كيفية تنفيذ **معالج موارد مخصص** في Aspose HTML، **تحميل مستند HTML**، و**حفظ HTML إلى تدفق** مع **التقاط مخرجات HTML** لمعالجة إضافية. النمط خفيف الوزن، واعٍ للمتعدد الخيوط، وقابل للتوسيع بالكامل—يمكنك استبدال `MemoryStream` بملف، أو مقبس شبكة، أو واجهة تخزين سحابية ببضع أسطر من الكود. + +بعد ذلك، قد ترغب في استكشاف: + +- **الحفظ إلى أرشيف ZIP** (مثالي لتجميع HTML، CSS، والصور). +- **تطبيق التحويلات** (مثل تصغير CSS أثناء التنفيذ). +- **البث مباشرة إلى استجابة HTTP** في ASP.NET Core للتنزيل الفوري. + +جرّب ذلك وسترى مدى قوة **معالج الموارد المخصص** المخصَّص في السيناريوهات الواقعية. برمجة سعيدة! + +{{< /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/generate-jpg-and-png-images/_index.md b/html/arabic/net/generate-jpg-and-png-images/_index.md index 432f80cdc..e2cefe5e8 100644 --- a/html/arabic/net/generate-jpg-and-png-images/_index.md +++ b/html/arabic/net/generate-jpg-and-png-images/_index.md @@ -38,13 +38,10 @@ Aspose.HTML for .NET هي مكتبة قوية تتيح للمطورين إنشا ## دروس تعليمية حول إنشاء صور بصيغة JPG وPNG ### [إنشاء صور JPG بواسطة ImageDevice في .NET باستخدام Aspose.HTML](./generate-jpg-images-by-imagedevice/) -تعرف على كيفية إنشاء صفحات ويب ديناميكية باستخدام Aspose.HTML لـ .NET. يغطي هذا البرنامج التعليمي خطوة بخطوة المتطلبات الأساسية ومساحات الأسماء وعرض HTML للصور. ### [إنشاء صور PNG بواسطة ImageDevice في .NET باستخدام Aspose.HTML](./generate-png-images-by-imagedevice/) -تعلم كيفية استخدام Aspose.HTML لـ .NET لمعالجة مستندات HTML وتحويل HTML إلى صور والمزيد. برنامج تعليمي خطوة بخطوة مع الأسئلة الشائعة. ### [كيفية تمكين مضاد التعرج عند تحويل DOCX إلى PNG/JPG](./how-to-enable-antialiasing-when-converting-docx-to-png-jpg/) -تعلم كيفية تمكين مضاد التعرج عند تحويل ملفات DOCX إلى صور PNG أو JPG باستخدام Aspose.HTML. ### [تحويل docx إلى png – إنشاء أرشيف zip في C# – دليل تعليمي](./convert-docx-to-png-create-zip-archive-c-tutorial/) -تعلم كيفية تحويل ملفات docx إلى صور PNG وإنشاء أرشيف ZIP باستخدام C# و Aspose.HTML. +### [كيفية تحويل HTML إلى PNG في C# – دليل كامل](./how-to-render-html-to-png-in-c-complete-guide/) ## خاتمة diff --git a/html/arabic/net/generate-jpg-and-png-images/how-to-render-html-to-png-in-c-complete-guide/_index.md b/html/arabic/net/generate-jpg-and-png-images/how-to-render-html-to-png-in-c-complete-guide/_index.md new file mode 100644 index 000000000..9d5c598da --- /dev/null +++ b/html/arabic/net/generate-jpg-and-png-images/how-to-render-html-to-png-in-c-complete-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-02-22 +description: كيفية تحويل HTML إلى PNG باستخدام Aspose.Html في C#. تعلم كيفية تحويل + HTML إلى صورة، ضبط حجم الصورة الناتج، وتحويل HTML إلى PNG بكفاءة. +draft: false +keywords: +- how to render html +- convert html to image +- set output image size +- render html to png +- how to convert html +language: ar +og_description: كيفية تحويل HTML إلى PNG باستخدام Aspose.Html. يوضح لك هذا الدليل + كيفية تحويل HTML إلى صورة، وتحديد حجم الصورة الناتجة، وتحويل HTML إلى PNG باستخدام + C#. +og_title: كيفية تحويل HTML إلى PNG في C# – دليل شامل +tags: +- C# +- Aspose.Html +- HTML rendering +title: كيفية تحويل HTML إلى PNG في C# – دليل كامل +url: /ar/net/generate-jpg-and-png-images/how-to-render-html-to-png-in-c-complete-guide/ +--- + +translated. + +Check bullet list in "What You'll Need" we translated. + +Check "Full Working Example" we translated. + +Check "Performance Tips" bullet list. + +Check "Conclusion" paragraphs. + +All good. + +Now produce final output with same markdown and placeholders. + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تحويل HTML إلى PNG في C# – دليل كامل + +**How to render html** هو سؤال شائع كلما احتاج المطور إلى صورة ثابتة لصفحة ويب. في هذا الدرس سنستعرض **how to render html** إلى ملف PNG باستخدام مكتبة Aspose.Html، وستكتشف أيضًا كيفية **convert html to image**، **set output image size**، ومعالجة تحسين النص للحصول على نتائج أكثر وضوحًا. + +إذا سبق لك أن حاولت التقاط صورة لصفحة برمجيًا وانتهى الأمر بصورة مشوشة، فأنت لست وحدك. بنهاية هذا الدليل ستحصل على ملف PNG نظيف ومضاد للتنعيم يتطابق مع الأبعاد التي تحددها—دون الحاجة إلى أدوات خارجية. + +## ما ستحتاجه + +- .NET 6.0 أو أحدث (الكود يعمل أيضًا على .NET Framework 4.7+) +- Aspose.Html for .NET (حزمة NuGet `Aspose.Html`) +- ملف HTML بسيط تريد تحويله إلى صورة (سنسميه `input.html`) +- أي بيئة تطوير تفضلها—Visual Studio، Rider، أو حتى VS Code + +هذا كل شيء. لا ملفات تنفيذية إضافية، ولا متصفحات بدون واجهة، فقط مرجع NuGet واحد وقليل من أسطر C#. + +## الخطوة 1 – تثبيت Aspose.Html وتحضير مشروعك + +أولاً، أضف حزمة Aspose.Html إلى مشروعك: + +```bash +dotnet add package Aspose.Html +``` + +> نصيحة احترافية: استخدم العلامة `--version` لتثبيت أحدث إصدار ثابت (مثال، `13.12.0`). الحفاظ على تحديث المكتبات يساعد في تجنب الأخطاء المخفية. + +الآن أنشئ تطبيق console جديد (أو ضع هذا الكود في مشروع موجود) وتأكد من وجود توجيهات `using` التالية: + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; +``` + +هذه المساحات الاسمية تمنحك الوصول إلى الفئات **HTMLDocument** و **HtmlRasterizer** و **ImageRenderingOptions** التي سنستخدمها لـ **render html to png**. + +## الخطوة 2 – تحميل مستند HTML الذي تريد تحويله + +الخطوة الأولى الفعلية في **how to render html** هي تزويد المحرك بملف مصدر. يمكنك التحميل من القرص، أو من URL، أو حتى من سلسلة نصية. إليك أبسط حالة—تحميل ملف محلي: + +```csharp +// Step 2: Load the HTML document you want to render. +var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html"); +``` + +استبدل `YOUR_DIRECTORY` بالمجلد الذي يحتوي على `input.html`. إذا كان الملف يحتوي على CSS أو صور خارجية، تأكد من إمكانية الوصول إليها بالنسبة لهذا الدليل؛ وإلا قد يلجأ الـ rasterizer إلى الإعدادات الافتراضية. + +## الخطوة 3 – تكوين خيارات تصيير الصورة (Set Output Image Size) + +الآن يأتي الجزء الذي نـ **set output image size** فيه. هنا تخبر الـ rasterizer بالعرض والارتفاع المطلوبين للـ PNG النهائي. كما يمكنك تمكين مضاد التنعيم للحصول على حواف أكثر سلاسة: + +```csharp +// Step 3: Prepare image rendering options (size and antialiasing). +var renderingOptions = new ImageRenderingOptions +{ + UseAntialiasing = true, // Improves visual quality. + Width = 1024, // Desired width in pixels. + Height = 768 // Desired height in pixels. +}; +``` + +لا تتردد في تعديل `Width` و `Height` لتتناسب مع تصميمك. إذا تخطيت هذه الإعدادات، سيستخدم Aspose الحجم الأصلي للصفحة، والذي قد لا يكون ما تتوقعه. + +## الخطوة 4 – تعديل تحسين عرض النص (اختياري لكن موصى به) + +في بيئات Linux أو بدون واجهة، قد يبدو النص غير واضح قليلاً. تمكين الـ hinting يجبر المرسّم على محاذاة الحروف إلى حدود البكسل، مما يمنحك حروفًا أكثر وضوحًا: + +```csharp +// Step 4: Configure text‑rendering hinting for clearer text. +var textOptions = new TextOptions +{ + UseHinting = true +}; +renderingOptions.TextOptions = textOptions; +``` + +إذا كنت تعمل على Windows يمكنك إهمال هذا الجزء، لكن لا ضرر من إبقائه—**how to convert html** إلى صورة bitmap يصبح متسقًا عبر الأنظمة. + +## الخطوة 5 – إنشاء الـ Rasterizer وتصوير الصورة + +مع وجود المستند والإعدادات جاهزة، نقوم بإنشاء كائن `HtmlRasterizer`. يضمن بيان `using` تحرير الموارد بسرعة: + +```csharp +// Step 5: Create the rasterizer with the configured options. +using (var rasterizer = new HtmlRasterizer(renderingOptions)) +{ + // Step 6: Render the HTML document to a bitmap. + var bitmap = rasterizer.Render(htmlDocument); + + // Step 7: Save the resulting image to a file. + bitmap.Save("YOUR_DIRECTORY/output.png"); +} +``` + +في هذه المرحلة قامت المكتبة بـ **convert html to image** وحفظتها كـ `output.png`. افتح الملف في أي عارض صور—سترى لقطة مثالية لـ `input.html` بالحجم الذي حددته. + +## مثال كامل يعمل + +فيما يلي البرنامج بالكامل، جاهز للنسخ واللصق في `Program.cs`. تأكد من وجود توجيهات `using` في الأعلى وأن حزمة NuGet مثبتة. + +```csharp +using System; +using Aspose.Html; +using Aspose.Html.Rendering.Image; + +class RenderWithNewOptions +{ + static void Main() + { + // Load the HTML document you want to render. + var htmlDocument = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Prepare image rendering options (size and antialiasing). + var renderingOptions = new ImageRenderingOptions + { + UseAntialiasing = true, + Width = 1024, + Height = 768 + }; + + // Configure text‑rendering hinting for clearer text (especially on Linux). + var textOptions = new TextOptions + { + UseHinting = true + }; + renderingOptions.TextOptions = textOptions; + + // Create the rasterizer with the configured options. + using (var rasterizer = new HtmlRasterizer(renderingOptions)) + { + // Render the HTML document to a bitmap. + var bitmap = rasterizer.Render(htmlDocument); + + // Save the resulting image to a file. + bitmap.Save("YOUR_DIRECTORY/output.png"); + } + + Console.WriteLine("HTML has been rendered to PNG successfully!"); + } +} +``` + +> **النتيجة المتوقعة:** ملف باسم `output.png` موجود في `YOUR_DIRECTORY` يحتوي على تمثيل بدقة 1024 × 768 بكسل لـ `input.html`. ستكون الصورة مضادة للتنعيم والنص مُعدّل بالـ hint لتوضيح أفضل. + +## أسئلة شائعة وحالات خاصة + +### ماذا لو كان HTML الخاص بي يشير إلى موارد خارجية؟ + +تأكد من أن المسارات إما URLs مطلقة أو نسبية إلى المجلد الذي مررته إلى `HTMLDocument`. إذا تعذر العثور على ورقة نمط أو صورة، سيتجاهل الـ rasterizer ذلك بصمت، مما قد يؤدي إلى فقدان الأنماط في الـ PNG النهائي. + +### هل يمكنني التصيير إلى صيغ أخرى (JPEG, BMP, GIF)؟ + +نعم. طريقة `bitmap.Save` تقبل أي صيغة يدعمها `System.Drawing`. فقط غيّر امتداد الملف، مثلاً `output.jpg`. تبقى بيانات الـ raster الأساسية كما هي، لذا لا تزال تستفيد من مضاد التنعيم والـ hint. + +### كيف أتعامل مع شاشات عالية الدقة (retina)؟ + +زد قيم `Width` و `Height` بشكل متناسب (مثلاً 2× لشاشة retina 2×) ثم قلل حجم PNG باستخدام أداة معالجة صور إذا لزم الأمر. سيعطيك ذلك صورة نهائية أكثر وضوحًا. + +### هل هناك طريقة لتصوير عنصر محدد فقط بدلاً من الصفحة بالكامل؟ + +يمكنك تحميل الـ HTML، وتحديد العنصر عبر طرق DOM، ثم استدعاء `rasterizer.Render(element)`. هذا سيناريو متقدم لكنه يتبع نفس مبادئ **how to render html**. + +## نصائح الأداء + +- **إعادة استخدام الـ rasterizer** إذا كنت بحاجة لتصوير عدة صفحات متتالية؛ إنشاء نسخة جديدة في كل مرة يضيف عبئًا. +- **إيقاف الخيارات غير الضرورية** (مثال، `UseAntialiasing = false`) إذا كنت تولد صورًا مصغرة حيث السرعة أهم من الجودة. +- **تجميع عمليات التصيير** في خيط خلفي للحفاظ على استجابة واجهة المستخدم في تطبيقات سطح المكتب. + +## الخلاصة + +أصبح لديك الآن حل شامل من البداية إلى النهاية لـ **how to render html** إلى ملف PNG باستخدام C#. باتباع الخطوات السابقة يمكنك **convert html to image**، **set output image size**، وحتى ضبط عرض النص بدقة للحصول على أفضل جودة بصرية. + +من هنا قد تستكشف التصيير إلى PDF، إضافة علامات مائية، أو دمج هذه العملية في واجهة ويب API تُعيد لقطات شاشة عند الطلب. نفس المبادئ تنطبق—فقط غير صيغة الإخراج أو عدّل خيارات التصيير. + +لا تتردد في تجربة أحجام مختلفة، أو عمق ألوان مختلف، أو حتى إخراج SVG. إذا واجهت أي مشاكل، فإن وثائق Aspose.Html هي مرجع جيد، لكن الكود المعروض هنا يجب أن يعمل مباشرةً في معظم السيناريوهات. + +برمجة سعيدة، واستمتع بتحويل HTML إلى صور واضحة! + +![مثال على نتيجة تحويل HTML](output.png "مثال على نتيجة تحويل HTML") + +{{< /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/rendering-html-documents/_index.md b/html/arabic/net/rendering-html-documents/_index.md index 7d8baa5d7..16d649009 100644 --- a/html/arabic/net/rendering-html-documents/_index.md +++ b/html/arabic/net/rendering-html-documents/_index.md @@ -45,11 +45,13 @@ url: /ar/net/rendering-html-documents/ ### [كيفية تحويل HTML إلى PNG – دليل C# كامل](./how-to-render-html-as-png-complete-c-guide/) تعلم خطوة بخطوة كيفية تحويل مستندات HTML إلى صور PNG باستخدام Aspose.HTML وC# في هذا الدليل الشامل. + ### [كيفية استخدام Aspose لتحويل HTML إلى PNG – دليل خطوة بخطوة](./how-to-use-aspose-to-render-html-to-png-step-by-step-guide/) تعلم كيفية تحويل مستندات HTML إلى صور PNG باستخدام Aspose.HTML في .NET خطوة بخطوة. ### [إنشاء PNG من HTML – دليل كامل للتصيير باستخدام C#](./create-png-from-html-full-c-rendering-guide/) تعلم كيفية تحويل صفحات HTML إلى صور PNG باستخدام Aspose.HTML في دليل شامل يوضح كل خطوة في C#. + ### [عرض EPUB بتنسيق XPS في .NET باستخدام Aspose.HTML](./render-epub-as-xps/) تعرف على كيفية إنشاء مستندات HTML وعرضها باستخدام Aspose.HTML لـ .NET في هذا البرنامج التعليمي الشامل. انغمس في عالم معالجة HTML وكشط الويب والمزيد. @@ -68,6 +70,9 @@ url: /ar/net/rendering-html-documents/ ### [كيفية تحويل HTML إلى PNG باستخدام Aspose – دليل كامل](./how-to-render-html-to-png-with-aspose-complete-guide/) تعلم خطوة بخطوة كيفية تحويل مستندات HTML إلى صور PNG باستخدام Aspose.HTML في .NET. +### [تحويل HTML إلى PDF باستخدام Aspose.HTML – دليل خطوة بخطوة](./render-html-to-pdf-with-aspose-html-step-by-step-guide/) +تعلم كيفية تحويل مستندات HTML إلى ملفات PDF باستخدام Aspose.HTML في .NET خطوة بخطوة. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/html/arabic/net/rendering-html-documents/render-html-to-pdf-with-aspose-html-step-by-step-guide/_index.md b/html/arabic/net/rendering-html-documents/render-html-to-pdf-with-aspose-html-step-by-step-guide/_index.md new file mode 100644 index 000000000..40241b67d --- /dev/null +++ b/html/arabic/net/rendering-html-documents/render-html-to-pdf-with-aspose-html-step-by-step-guide/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-02-22 +description: تعلم كيفية تحويل HTML إلى PDF باستخدام Aspose.HTML، وإدراج CSS في HTML، + وإضافة عنصر عنوان. مثال كامل بلغة C# متضمن. +draft: false +keywords: +- render html to pdf +- embed css in html +- convert html to pdf +- save aspose document pdf +- add heading element html +language: ar +og_description: تحويل HTML إلى PDF باستخدام Aspose.HTML في C#. يوضح هذا الدليل كيفية + تضمين CSS في HTML، وإضافة عنصر عنوان، وحفظ المستند كملف PDF. +og_title: تحويل HTML إلى PDF باستخدام Aspose.HTML – دليل C# الكامل +tags: +- Aspose.HTML +- C# +- PDF generation +title: تحويل HTML إلى PDF باستخدام Aspose.HTML – دليل خطوة بخطوة +url: /ar/net/rendering-html-documents/render-html-to-pdf-with-aspose-html-step-by-step-guide/ +--- + +Let's translate. + +We need to keep technical terms like "Aspose.HTML", "HTMLDocument", "PdfSaveOptions", "C#" etc. + +Also keep URLs unchanged. + +Now produce final content. + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل HTML إلى PDF باستخدام Aspose.HTML – دليل برمجة شامل + +هل تساءلت يومًا كيف **تحويل HTML إلى PDF** دون الحاجة إلى متصفح headless أو خدمة طرف ثالث غير مستقرة؟ لست وحدك. يواجه العديد من المطورين صعوبة عندما يحتاجون إلى طريقة موثوقة لتحويل HTML المنسق إلى PDF واضح، خاصةً عندما يجب أن يكون الناتج مطابقًا تمامًا للصفحة الويب. + +في هذا الدليل سنستعرض حلًا عمليًا لا يقوم فقط بـ **render html to pdf** بل يوضح لك أيضًا كيفية **embed CSS in HTML**، **add heading element HTML**، وأخيرًا **save Aspose document PDF**. في النهاية ستحصل على برنامج C# جاهز للنسخ واللصق يمكنك إدراجه في أي مشروع .NET. + +> **ملاحظة سريعة:** يستخدم الكود Aspose.HTML 5.x (أحدث إصدار ثابت حتى فبراير 2026). إذا كنت تستخدم نسخة أقدم، فإن معظم الـ APIs لا تزال متوافقة، لكن تحقق من سجل التغييرات لأي تغييرات كسرية. + +--- + +## ما الذي ستحتاجه + +- **.NET 6+** (أو .NET Framework 4.8 إذا تفضّل الكلاسيكي) +- حزمة NuGet **Aspose.HTML for .NET** (`Aspose.Html`) +- محرر كود (Visual Studio, VS Code, Rider… أيًا كان المفضّل) +- صلاحية كتابة إلى مجلد سيتم حفظ الـ PDF فيه + +لا توجد مكتبات إضافية مطلوبة؛ فـ Aspose.HTML يتعامل مع محرك التحويل داخليًا. + +--- + +## الخطوة 1: إعداد المشروع وتثبيت Aspose.HTML + +للبدء، أنشئ تطبيق console جديد: + +```bash +dotnet new console -n FontStyleDemo +cd FontStyleDemo +dotnet add package Aspose.Html +``` + +> **نصيحة محترف:** إذا كنت تستخدم Visual Studio، انقر بزر الماوس الأيمن على المشروع → *Manage NuGet Packages* → ابحث عن **Aspose.Html** وقم بالتثبيت. + +حزمة `Aspose.Html` تتضمن كل ما تحتاجه لـ **convert html to pdf** في الوقت الفعلي. + +--- + +## الخطوة 2: إنشاء مستند HTML جديد + +سنستخدم API الـ DOM الخاص بـ Aspose لإنشاء مستند HTML بالكامل في الذاكرة. يضمن هذا النهج أن الـ HTML الذي تُنشئه هو نفسه الـ HTML الذي ستـ **render html to pdf** لاحقًا. + +```csharp +using Aspose.Html.Dom; +using Aspose.Html.Rendering; + +// ... + +// Step 2: Initialise a new HTMLDocument object. +HTMLDocument htmlDoc = new HTMLDocument(); +``` + +لماذا نبني المستند برمجيًا بدلاً من تحميل ملف خارجي؟ لأنك تحصل على تحكم كامل في العلامات، تتجنب عمليات I/O على نظام الملفات، ويمكنك حقن البيانات ديناميكيًا—مثالي للتقارير أو الفواتير التي تُولد في الوقت الفعلي. + +--- + +## الخطوة 3: **Embed CSS in HTML** – تنسيق العنوان + +الآن نضيف كتلة `