تحويل PDF إلى HTML

يعد PDF (تنسيق المستند المحمول) أحد تنسيقات المستندات المستخدمة على نطاق واسع لمشاركة البيانات والمعلومات عبر الأنظمة الأساسية. تتضمن إحدى إمكانياته الفريدة أن تظل دقة المستند كما هي عند عرضها على أي نظام أساسي باستخدام التطبيق وفقًا لمواصفات Adobe. علاوة على ذلك ، فإن HTML (لغة ترميز النص التشعبي) هي أيضًا تنسيق ملف رائد لتطوير صفحات الويب وتدعم معظم متصفحات الويب هذا التنسيق. ومع ذلك ، فإن ملف PDF مقبول على نطاق واسع حيث يمكن عرضه بسهولة على أي جهاز دون فقدان تنسيق المستند. لذلك ، في هذه المقالة ، سنناقش خطوات حول كيفية تحويل ملف HTML إلى تنسيق PDF باستخدام .NET API.

C # API لتحويل HTML إلى PDF

من أجل إجراء عملية التحويل ، نحتاج أولاً إلى تثبيت Aspose.PDF for .NET على النظام. API متاح في مكتبة NuGet. الرجاء تشغيل الأمر التالي في Package Manager Console لتثبيته:

Install-Package Aspose.Pdf

بمجرد اكتمال التثبيت ، سيظهر Aspose.PDF for .NET ضمن مجلد الحزم في مستكشف الحلول.

تحويل HTML إلى PDF في C

فيما يلي الخطوات الخاصة بكيفية تحويل HTML إلى PDF باستخدام C #

  1. قم بإنشاء مثيل لفئة [الترخيص] (https://apireference.aspose.com/pdf/net/aspose.pdf/license) لإزالة أي قيود أثناء عملية إنشاء ملف PDF.
  2. أنشئ كائنًا من فئة [HtmlLoadOptions] (https://apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions) أثناء تمرير عنوان url الأساسي لـ HTML كوسيطة إلى [HtmlLoadOptions (…)] (https: / /apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions) مُنشئ.
  3. قم بتهيئة كائن [المستند] (https://apireference.aspose.com/pdf/net/aspose.pdf/document) واجتاز فئة [HtmlLoadOptions] (https://apireference.aspose.com/pdf/net/aspose. pdf / htmlloadoptions) كوسيطة لمنشئه.
  4. استدعاء طريقة [حفظ (…)] (https://apireference.aspose.com/pdf/net/aspose.pdf.document/save/methods/4) لكائن المستند وتقديم الإخراج بتنسيق PDF.
// إنشاء كائن لبدء الترخيص
Aspose.Pdf.License license = new Aspose.Pdf.License();

// توفير مسار ملف الترخيص
license.SetLicense("/Downloads/Conholdate.Total.NET.lic");

// إنشاء مثيل لفئة HtmlLoadOptions
Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/");

// إنشاء كائن مستند وتوفير مسار ملف HTML
Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions);

// حفظ HTML الناتج إلى تنسيق PDF
document.Save("/Documents/Converted.pdf");

تضمين الخطوط أثناء التحويل

غالبًا ما تستخدم معظم صفحات HTML الخطوط (خطوط ig من المجلدات المحلية ، وخطوط Google ، وما إلى ذلك) ، ومن أجل الحفاظ على تخطيط الصفحات ، يجب تضمين نفس الخطوط أثناء عملية العرض. لذا من أجل التحكم في دمج الخطوط في المستند الناتج ، نحتاج إلى استخدام خاصية IsEmbedFonts.

// تضمين الخطوط أثناء التحويل
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true};

وحدة القياس في Aspose.PDF هي النقاط. ونعلم أن A3 قياسها 297 × 420 ملم أو 11.69 × 16.54 بوصة. لذلك ، تم تقريب الأبعاد إلى 842 × 1190 نقطة. في مقتطف الشفرة التالي ، نقوم بضبط حجم صفحة المستند الناتج كـ A3 واتجاه الصفحة كـ أفقي.

// قم بتعيين حجم الصفحة على A3 واتجاه الصفحة على أنه أفقي
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
  PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
};

تحويل صفحة الويب إلى PDF

بخلاف تحويل ملفات HTML ، قد نحتاج أيضًا إلى تحويل صفحة ويب مباشرة إلى تنسيق PDF. لذلك من أجل تحقيق هذا المطلب ، سنقوم أولاً بإحضار محتويات صفحة الويب البعيدة باستخدام مثيل HttpClient ، وإنشاء كائن Stream ثم تمرير مثيل Stream إلى كائن Document. السبب في حاجتنا إلى المحتوى في Stream هو أن مثيل المستند لا يقبل سوى الملفات أو الكائنات البخارية.

يوضح القسم التالي الخطوات الخاصة بكيفية تحويل صفحة ويب إلى PDF باستخدام C #

  1. اقرأ محتويات الصفحة باستخدام كائن HttpClient.
  2. قم بإنشاء كائن HtmlLoadOptions وقم بتعيين عنوان URL الأساسي.
  3. قم بتهيئة كائن مستند وتمرير كائن التدفق ومثيل HtmlLoadOptions كوسائط.
  4. قم باستدعاء طريقة Save (String) من فئة Document لتوليد المخرجات.
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
    const string url = "https://en.wikipedia.org/wiki/Aspose_API";
    
    // تعيين حجم الصفحة A3 والاتجاه الأفقي ؛ 
    HtmlLoadOptions options = new HtmlLoadOptions(url)
    {
        // اضبط أبعاد الصفحة
        PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
    };
    
    // إنشاء مثيل لكائن المستند
    Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options);
    
    // احفظ الناتج
    pdfDocument.Save(_dataDir + "html_test.PDF");
}

private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    
    using (var handler = new HttpClientHandler { Credentials = credentials })
    using (var httpClient = new HttpClient(handler))
    {
        // جلب النتائج وإرجاعها في مثيل الدفق
        return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
    }
}

تقديم HTML كامل على صفحة واحدة

أثناء التحويل من HTML إلى PDF ، يكون طول الملف الناتج وفقًا لطول محتوى مستند HTML للإدخال. لذلك ، إذا كان إدخال HTML يتكون من عدة صفحات ، فإن الملف الناتج سوف يمتد أيضًا عبر صفحات متعددة. ومع ذلك ، قد نقصر الإخراج على صفحة PDF واحدة. من أجل إنجاز هذا المطلب ، يمكن استخدام خاصية IsRenderToSinglePage لفئة HtmlLoadOptions.

يوجد أدناه مقتطف الشفرة لتقديم محتوى HTML الكامل على صفحة PDF واحدة باستخدام C #.

// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// تهيئة كائن HtmlLoadOptions
HtmlLoadOptions options = new HtmlLoadOptions();

// تعيين العرض لخاصية صفحة واحدة
options.IsRenderToSinglePage = true;

// تحميل محتوى HTML مصدر المستند
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options);

// احفظ ملف PDF الناتج
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf");

احصل على رخصة مجانية

يمكنك طلب [ترخيصًا مؤقتًا مجانيًا] (https://purchase.aspose.com/tertain-license) لتجربة API دون أي قيود تقييم.

استنتاج

في هذه المقالة ، تعرفنا على طريقة تحويل ملفات HTML إلى تنسيق PDF باستخدام .NET API. إذا كنت مهتمًا أيضًا بالتعرف على الميزات المثيرة الأخرى التي تقدمها Aspose.PDF for .NET ، فيرجى زيارة صفحة الميزات الرئيسية. يمكن العثور على مجموعة كاملة من الأمثلة عبر مستودع جيثب.

معلومات سريعة

لقد قمنا أيضًا بتطوير تطبيقات مجانية عبر الإنترنت للتحقق بسرعة من الميزات التي تقدمها واجهات برمجة التطبيقات الخاصة بنا. لذا يمكنك التحقق من Aspose.PDF Conversion App لتحويل ملف HTML إلى تنسيق PDF. علاوة على ذلك ، يمكنك أيضًا استخدام العديد من تنسيقات الملفات الأخرى وتحقيق متطلبات التحويل الخاصة بك.