تحويل PDF إلى صيغ صور مختلفة في C#

نظرة عامة

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

صيغة الصورة: TIFF

صيغة الصورة: BMP

صيغة الصورة: EMF

تنسيق الصورة: JPG

تنسيق الصورة: PNG

تنسيق الصورة: GIF

تنسيق الصورة: SVG

C# تحويل PDF إلى صورة

الشيفرة البرمجية التالية تعمل أيضًا مع مكتبة Aspose.PDF.Drawing.

Aspose.PDF لـ .NET يستخدم عدة طرق لتحويل PDF إلى صورة. Aspose.PDF لـ .NET يستخدم عدة طرق لتحويل PDF إلى صورة.

هناك عدة فئات في المكتبة تتيح لك استخدام جهاز افتراضي لتحويل الصور. يتجه DocumentDevice لتحويل الوثيقة بأكملها، لكن ImageDevice - لصفحة معينة.

تحويل PDF باستخدام فئة DocumentDevice

Aspose.PDF لـ .NET يجعل من الممكن تحويل صفحات PDF إلى صور TIFF.

تتيح لك فئة TiffDevice (المبنية على DocumentDevice) تحويل صفحات PDF إلى صور TIFF. توفر هذه الفئة طريقة تُسمى Process تتيح لك تحويل جميع الصفحات في ملف PDF إلى صورة TIFF واحدة.

تحويل صفحات PDF إلى صورة TIFF واحدة

يشرح Aspose.PDF لـ .NET كيفية تحويل جميع الصفحات في ملف PDF إلى صورة TIFF واحدة:

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

  1. إنشاء كائن من فئة Document.
  2. إنشاء كائنات TiffSettings و TiffDevice
  3. استدعاء طريقة TiffDevice.Process() لتحويل مستند PDF إلى TIFF.
  4. لتعيين خصائص ملف الخروج، استخدم فئة TiffSettings.

يوضح الجزء التالي من الكود كيفية تحويل جميع صفحات PDF إلى صورة TIFF واحدة.

public static void ConvertPDFtoTIFF()
{
    // فتح المستند
    Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");

    // إنشاء كائن Resolution
    Resolution resolution = new Resolution(300);

    // إنشاء كائن TiffSettings
    TiffSettings tiffSettings = new TiffSettings
    {
        Compression = CompressionType.None,
        Depth = ColorDepth.Default,
        Shape = ShapeType.Landscape,
        SkipBlankPages = false
    };

    // إنشاء جهاز TIFF
    TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);

    // تحويل صفحة معينة وحفظ الصورة إلى تيار
    tiffDevice.Process(pdfDocument, _dataDir + "AllPagesToTIFF_out.tif");
}

تحويل صفحة واحدة إلى صورة TIFF

يتيح Aspose.PDF لـ .NET تحويل صفحة معينة في ملف PDF إلى صورة TIFF، استخدم النسخة المحملة من الطريقة Process(..) التي تأخذ رقم الصفحة كمعامل للتحويل. يوضح جزء الكود التالي كيفية تحويل الصفحة الأولى من PDF إلى تنسيق TIFF.

الخطوات: تحويل صفحة واحدة أو صفحات معينة من PDF إلى TIFF في C#

  1. إنشاء كائن من فئة Document.
  2. إنشاء كائنات TiffSettings و TiffDevice.
  3. استدعاء الطريقة المحملة TiffDevice.Process() مع معاملات fromPage و toPage لتحويل صفحات مستند PDF إلى TIFF.
public static void ConvertPDFtoTiffSinglePage()
{
    // فتح المستند
    Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");

    // إنشاء كائن Resolution
    Resolution resolution = new Resolution(300);

    // إنشاء كائن TiffSettings
    TiffSettings tiffSettings = new TiffSettings
    {
        Compression = CompressionType.None,
        Depth = ColorDepth.Default,
        Shape = ShapeType.Landscape,
    };

    // إنشاء جهاز TIFF
    TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);

    // تحويل صفحة معينة وحفظ الصورة إلى تيار
    tiffDevice.Process(pdfDocument, 1, 1, _dataDir + "PageToTIFF_out.tif");
}

استخدام خوارزمية برادلي أثناء التحويل

لقد كان Aspose.PDF لـ .NET يدعم إمكانية تحويل PDF إلى TIF باستخدام ضغط LZW، ومن ثم باستخدام AForge، يمكن تطبيق التبييض. ومع ذلك، طلب أحد العملاء أنه بالنسبة لبعض الصور، يحتاجون إلى الحصول على العتبة باستخدام Otsu، لذا فهم يرغبون أيضًا في استخدام برادلي.

  public static void ConvertPDFtoTiffBradleyBinarization()
{
     // فتح المستند
     Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");

    string outputImageFile = _dataDir + "resultant_out.tif";
    string outputBinImageFile = _dataDir + "37116-bin_out.tif";

    // إنشاء كائن Resolution
    Resolution resolution = new Resolution(300);
    // إنشاء كائن TiffSettings
    TiffSettings tiffSettings = new TiffSettings
    {
        Compression = CompressionType.LZW,
        Depth = Aspose.Pdf.Devices.ColorDepth.Format1bpp
    };
    // إنشاء جهاز TIFF
    TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
    // تحويل صفحة معينة وحفظ الصورة إلى الدفق
    tiffDevice.Process(pdfDocument, outputImageFile);

    using (FileStream inStream = new FileStream(outputImageFile, FileMode.Open))
    {
        using (FileStream outStream = new FileStream(outputBinImageFile, FileMode.Create))
        {
            tiffDevice.BinarizeBradley(inStream, outStream, 0.1);
        }
    }
} 

تحويل ملف PDF باستخدام فئة ImageDevice

ImageDevice هو الأصل لـ BmpDevice, JpegDevice, GifDevice, PngDevice و EmfDevice.

  • تسمح لك فئة BmpDevice بتحويل صفحات PDF إلى صور BMP.
  • تسمح لك فئة EmfDevice بتحويل صفحات PDF إلى صور EMF.
  • تسمح لك فئة JpegDevice بتحويل صفحات PDF إلى صور JPEG.
  • تسمح لك فئة PngDevice بتحويل صفحات PDF إلى صور PNG.
  • تسمح لك فئة GifDevice بتحويل صفحات PDF إلى صور GIF.

دعونا نلقي نظرة على كيفية تحويل صفحة PDF إلى صورة. لنلقِ نظرة على كيفية تحويل صفحة PDF إلى صورة.

فئة BmpDevice توفر طريقة تُسمى Process التي تسمح لك بتحويل صفحة معينة من ملف PDF إلى صيغة صورة BMP. تمتلك الفئات الأخرى نفس الطريقة. لذا، إذا كنا بحاجة إلى تحويل صفحة PDF إلى صورة، نقوم فقط بإنشاء فئة مطلوبة.

الخطوات التالية وقطعة الكود في C# تظهر هذه الإمكانية

الخطوات: PDF إلى صورة (BMP, EMF, JPG, PNG, GIF) في C#

  1. قم بإنشاء نسخة من الفئة الفرعية لـ ImageDevice مثل:
    • BmpDevice (لتحويل PDF إلى BMP)
    • EmfDevice (لتحويل PDF إلى Emf)
    • JpegDevice (لتحويل PDF إلى JPG)
    • PngDevice (لتحويل PDF إلى PNG)
    • GifDevice (لتحويل PDF إلى GIF)
  2. استدعي طريقة ImageDevice.Process() لأداء تحويل PDF إلى صورة.
public static class ExampleConvertPdfToImage
{
     private static readonly string _dataDir = @"C:\Samples\";
    // BMP, JPEG, GIF, PNG, EMF
    public static void ConvertPDFusingImageDevice()
    {
        // إنشاء كائن Resolution            
        Resolution resolution = new Resolution(300);
        BmpDevice bmpDevice = new BmpDevice(resolution);
        JpegDevice jpegDevice = new JpegDevice(resolution);
        GifDevice gifDevice = new GifDevice(resolution);
        PngDevice pngDevice = new PngDevice(resolution);
        EmfDevice emfDevice = new EmfDevice(resolution);

        Document document = new Document(_dataDir + 
            "ConvertAllPagesToBmp.pdf");
            
        ConvertPDFtoImage(bmpDevice, "bmp", document);
        ConvertPDFtoImage(jpegDevice,"jpeg", document);
        ConvertPDFtoImage(gifDevice, "gif", document);
        ConvertPDFtoImage(pngDevice, "png", document);
        ConvertPDFtoImage(emfDevice, "emf", document);
            
    }
}

public static void ConvertPDFtoImage(ImageDevice imageDevice, 
        string ext, Document pdfDocument)
{
    for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
    {
        using (FileStream imageStream = 
        new FileStream($"{_dataDir}image{pageCount}_out.{ext}", 
        FileMode.Create))
        {
            // تحويل صفحة معينة وحفظ الصورة في البث
            imageDevice.Process(pdfDocument.Pages[pageCount], imageStream);

            // إغلاق البث
            imageStream.Close();
        }
    }
}

تحويل PDF باستخدام فئة SaveOptions

هذا الجزء من المقال يوضح لك كيفية تحويل PDF إلى SVG باستخدام C# وفئة SaveOptions.

تحويل Aspose.PDF لـ PDF إلى SVG بالتطبيق المجاني رسومات الفيكتور المتجهة القابلة للتوسيع (SVG) هي مجموعة من المواصفات لتنسيق ملف قائم على XML للرسومات المتجهة ثنائية الأبعاد، سواء كانت ثابتة أو ديناميكية (تفاعلية أو متحركة). مواصفات SVG هي معيار مفتوح تم تطويره بواسطة مجموعة الشبكة العالمية (W3C) منذ عام 1999.

تُعرف صور SVG وسلوكياتها في ملفات نصية XML. هذا يعني أنه يمكن البحث عنها، وفهرستها، وكتابة سكريبتات لها، وإذا لزم الأمر، ضغطها. كملفات XML، يمكن إنشاء صور SVG وتحريرها بأي محرر نصوص، لكن غالبًا ما يكون من الأسهل إنشاؤها باستخدام برامج الرسم مثل Inkscape.

يدعم Aspose.PDF لـ .NET ميزة تحويل صورة SVG إلى تنسيق PDF ويقدم أيضًا القدرة على تحويل ملفات PDF إلى تنسيق SVG. Aspose.PDF لـ .NET يدعم ميزة تحويل صورة SVG إلى تنسيق PDF ويقدم أيضًا القدرة على تحويل ملفات PDF إلى تنسيق SVG.

يُظهر مقتطف الكود التالي الخطوات لتحويل ملف PDF إلى تنسيق SVG باستخدام .NET.

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

  1. إنشاء كائن من الفئة Document.
  2. إنشاء كائن SvgSaveOptions مع الإعدادات المطلوبة.
  3. استدعاء الطريقة Document.Save() ومرر لها كائن SvgSaveOptions لتحويل وثيقة PDF إلى SVG.
public static void ConvertPDFtoSVG()
{
    // تحميل وثيقة PDF
    Document document = new Document(System.IO.Path.Combine(_dataDir, "input.pdf"));
    // تجسيد كائن من SvgSaveOptions
    SvgSaveOptions saveOptions = new SvgSaveOptions
    {
        // عدم ضغط صورة SVG إلى أرشيف Zip
        CompressOutputToZipArchive = false,
        TreatTargetFileNameAsDirectory = true                
    };
            
    // حفظ الناتج في ملفات SVG
    document.Save(System.IO.Path.Combine(_dataDir, "PDFToSVG_out.svg"), saveOptions);
}