تحويل PDF إلى HTML في .NET

نظرة عامة

تشرح هذه المقالة كيفية تحويل PDF إلى HTML باستخدام C#. تغطي هذه الموضوعات.

التنسيق: HTML

تعمل مقتطفات الكود التالية أيضًا مع مكتبة Aspose.PDF.Drawing.

تحويل PDF إلى HTML

Aspose.PDF for .NET توفر العديد من الميزات لتحويل تنسيقات الملفات المختلفة إلى مستندات PDF وتحويل ملفات PDF إلى تنسيقات إخراج متنوعة. تناقش هذه المقالة كيفية تحويل ملف PDF إلى HTML. توفر Aspose.PDF for .NET القدرة على تحويل ملفات HTML إلى تنسيق PDF باستخدام نهج InLineHtml. لقد تلقينا العديد من الطلبات لوظيفة تحول ملف PDF إلى تنسيق HTML وقد قدمنا هذه الميزة. يرجى ملاحظة أن هذه الميزة تدعم أيضًا XHTML 1.0.

Aspose.PDF for .NET تدعم الميزات لتحويل ملف PDF إلى HTML. المهام الرئيسية التي يمكنك إنجازها باستخدام مكتبة Aspose.PDF مدرجة:

  • تحويل PDF إلى HTML.
  • تقسيم الإخراج إلى HTML متعدد الصفحات.
  • تحديد مجلد لتخزين ملفات SVG.
  • ضغط صور SVG أثناء التحويل.
  • حفظ الصور كخلفية PNG.
  • تحديد مجلد الصور.
  • إنشاء ملفات لاحقة بمحتويات الجسم فقط.
  • تقديم النصوص الشفافة.
  • تقديم طبقات مستند PDF.

توفر Aspose.PDF for .NET كودًا من سطرين لتحويل ملف PDF المصدر إلى HTML. تحتوي SaveFormat enumeration على القيمة Html التي تتيح لك حفظ الملف المصدر بتنسيق HTML. يوضح مقتطف الكود التالي عملية تحويل ملف PDF إلى HTML.

الخطوات: تحويل PDF إلى HTML في C#

  1. إنشاء مثيل من كائن Document مع مستند PDF المصدر.
  2. حفظه بتنسيق SaveFormat.Html عن طريق استدعاء Document.Save().
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertPDFtoHTML()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Save the output HTML
        document.Save(dataDir + "output_out.html", Aspose.Pdf.SaveFormat.Html);
    }
}

تقسيم الإخراج إلى HTML متعدد الصفحات

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertPDFtoMultiPageHTML()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Instantiate HTML SaveOptions object
        var htmlOptions = new Aspose.Pdf.HtmlSaveOptions
        {
            // Specify to split the output into multiple pages
            SplitIntoPages = true
        };

        // Save the output HTML
        document.Save(dataDir + "MultiPageHTML_out.html", htmlOptions);
    }
}

تحديد مجلد لتخزين ملفات SVG

أثناء تحويل PDF إلى HTML، من الممكن تحديد المجلد الذي يجب حفظ صور SVG فيه. استخدم HtmlSaveOption class SpecialFolderForSvgImages property لتحديد دليل خاص لصور SVG. هذه الخاصية تحصل أو تضبط المسار إلى الدليل الذي يجب حفظ صور SVG فيه عند مواجهتها أثناء التحويل. إذا كانت المعلمة فارغة أو null، فسيتم حفظ أي ملفات SVG مع ملفات الصور الأخرى.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SavePDFtoHTMLWithSVG()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Instantiate HTML save options object
        var newOptions = new Aspose.Pdf.HtmlSaveOptions
        {
            // Specify the folder where SVG images are saved during PDF to HTML conversion
            SpecialFolderForSvgImages = dataDir
        };

        // Save the output HTML
        document.Save(dataDir + "SaveSVGFiles_out.html", newOptions);
    }
}

ضغط صور SVG أثناء التحويل

لضغط صور SVG أثناء تحويل PDF إلى HTML، يرجى محاولة استخدام الكود التالي:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SavePDFtoCompressedHTMLWithSVG()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Create HtmlSaveOptions with tested feature
        var newOptions = new Aspose.Pdf.HtmlSaveOptions
        {
            // Compress the SVG images if there are any
            CompressSvgGraphicsIfAny = true
        };

        // Save the output HTML
        document.Save(dataDir + "CompressedSVGHTML_out.html", newOptions);
    }
}

حفظ الصور كخلفية PNG

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void PdfToHtmlSaveImagesAsPngBackground()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion_PDFToHTMLFormat();
           
    // Create HtmlSaveOption with tested feature
    var htmlSaveOptions = new HtmlSaveOptions();
           
    // Option to save images in PNG format as background for each page.
    htmlSaveOptions.RasterImagesSavingMode = HtmlSaveOptions.RasterImagesSavingModes.AsEmbeddedPartsOfPngPageBackground;

    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
       document.Save(dataDir + "imagesAsPngBackground_out.html", htmlSaveOptions);         
    }
}

تحديد مجلد الصور

يمكننا أيضًا تحديد المجلد الذي سيتم حفظ الصور فيه أثناء تحويل PDF إلى HTML:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SavePDFtoHTMLWithSeparateImageFolder()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Create HtmlSaveOptions with tested feature
        var newOptions = new Aspose.Pdf.HtmlSaveOptions
        {
            // Specify the separate folder to save images
            SpecialFolderForAllImages = dataDir
        };

        // Save the output HTML
        document.Save(dataDir + "HTMLWithSeparateImageFolder_out.html", newOptions);
    }
}

إنشاء ملفات لاحقة بمحتويات الجسم فقط

مؤخراً، طُلب منا تقديم ميزة حيث يتم تحويل ملفات PDF إلى HTML ويمكن للمستخدم الحصول فقط على محتويات علامة <body> لكل صفحة. سيؤدي ذلك إلى إنتاج ملف واحد مع CSS، و<html>، وتفاصيل <head> وجميع الصفحات في ملفات أخرى تحتوي فقط على محتويات <body>.

لتلبية هذا الطلب، تم تقديم خاصية جديدة، HtmlMarkupGenerationMode، إلى فئة HtmlSaveOptions.

مع مقتطف الكود البسيط التالي، يمكنك تقسيم الإخراج HTML إلى صفحات. في صفحات الإخراج، يجب أن تذهب جميع كائنات HTML بالضبط إلى حيث تذهب الآن (معالجة الخطوط والإخراج، إنشاء CSS والإخراج، إنشاء الصور والإخراج)، باستثناء أن HTML الناتج سيحتوي على المحتويات الموجودة حاليًا داخل علامات (الآن سيتم حذف علامات “body”). ومع ذلك، عند استخدام هذا النهج، فإن الرابط إلى CSS هو مسؤولية كودك، لأن أشياء مثل سيتم حذفها. لهذا الغرض، يمكنك قراءة CSS عبر File.ReadAllText() وإرساله عبر AJAX إلى صفحة ويب حيث سيتم تطبيقه بواسطة jQuery.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertPDFToHTMLWithBodyContent()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Initialize HtmlSaveOptions
        var options = new Aspose.Pdf.HtmlSaveOptions
        {
            // Set HtmlMarkupGenerationMode to generate only body content
            HtmlMarkupGenerationMode =
                Aspose.Pdf.HtmlSaveOptions.HtmlMarkupGenerationModes.WriteOnlyBodyContent,

            // Specify to split the output into multiple pages
            SplitIntoPages = true
        };

        // Save the output HTML
        document.Save(dataDir + "CreateSubsequentFiles_out.html", options);
    }
}

تقديم النصوص الشفافة

في حالة احتواء ملف PDF المصدر/المدخل على نصوص شفافة مظللة بواسطة صور أمامية، فقد تكون هناك مشاكل في تقديم النص. لذلك، من أجل تلبية مثل هذه السيناريوهات، يمكن استخدام SaveShadowedTextsAsTransparentTexts و SaveTransparentTexts.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertPDFToHTMLWithTransparentTextRendering()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Initialize HtmlSaveOptions
        var htmlOptions = new Aspose.Pdf.HtmlSaveOptions
        {
            // Enable transparent text rendering
            SaveShadowedTextsAsTransparentTexts = true,
            SaveTransparentTexts = true
        };

        // Save the output HTML
        document.Save(dataDir + "TransparentTextRendering_out.html", htmlOptions);
    }
}

تقديم طبقات مستند PDF

يمكننا تقديم طبقات مستند PDF في عنصر نوع طبقة منفصل أثناء تحويل PDF إلى HTML:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertPDFToHTMLWithLayersRendering()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "PDFToHTML.pdf"))
    {
        // Instantiate HTML SaveOptions object
        var htmlOptions = new Aspose.Pdf.HtmlSaveOptions
        {
            // Enable rendering of PDF document layers separately in the output HTML
            ConvertMarkedContentToLayers = true
        };

        // Save the output HTML
        document.Save(dataDir + "LayersRendering_out.html", htmlOptions);
    }
}

انظر أيضًا

تغطي هذه المقالة أيضًا هذه الموضوعات. الأكواد هي نفسها كما في الأعلى.

التنسيق: HTML