Mengonversi PDF ke Berbagai Format Gambar dalam C#

Overview

Artikel ini menjelaskan cara mengonversi PDF ke berbagai format gambar menggunakan C#. Ini mencakup topik berikut.

Format Gambar: TIFF

Format Gambar: BMP

Format Gambar: EMF

Format Gambar: JPG

Format Gambar: PNG

Format Gambar: GIF

Format Gambar: SVG

C# Konversi PDF ke Gambar

Potongan kode berikut juga bekerja dengan pustaka Aspose.PDF.Drawing.

Aspose.PDF untuk .NET menggunakan beberapa pendekatan untuk mengkonversi PDF ke gambar. Aspose.PDF for .NET menggunakan beberapa pendekatan untuk mengonversi PDF menjadi gambar.

Ada beberapa kelas di perpustakaan yang memungkinkan Anda menggunakan perangkat virtual untuk mentransformasi gambar. DocumentDevice ditujukan untuk konversi seluruh dokumen, tetapi ImageDevice - untuk halaman tertentu.

Mengonversi PDF menggunakan kelas DocumentDevice

Aspose.PDF for .NET memungkinkan untuk mengonversi Halaman PDF menjadi gambar TIFF.

Kelas TiffDevice (berbasis DocumentDevice) memungkinkan Anda untuk mengonversi halaman PDF menjadi gambar TIFF. Kelas ini menyediakan metode yang bernama Process yang memungkinkan Anda untuk mengonversi semua halaman dalam file PDF menjadi satu gambar TIFF.

Mengonversi Halaman PDF menjadi Satu Gambar TIFF

Aspose.PDF for .NET menjelaskan cara mengonversi semua halaman dalam file PDF menjadi satu gambar TIFF:

Langkah-langkah: Mengonversi PDF ke TIFF dalam C#

  1. Buat objek dari kelas Document.
  2. Buat objek TiffSettings dan TiffDevice
  3. Panggil metode TiffDevice.Process() untuk mengonversi dokumen PDF menjadi TIFF.
  4. Untuk mengatur properti file keluaran, gunakan kelas TiffSettings.

Potongan kode berikut menunjukkan cara mengonversi semua halaman PDF menjadi satu gambar TIFF.

public static void ConvertPDFtoTIFF()
{
    // Buka dokumen
    Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");

    // Buat objek Resolusi
    Resolution resolution = new Resolution(300);

    // Buat objek TiffSettings
    TiffSettings tiffSettings = new TiffSettings
    {
        Compression = CompressionType.None,
        Depth = ColorDepth.Default,
        Shape = ShapeType.Landscape,
        SkipBlankPages = false
    };

    // Buat perangkat TIFF
    TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);

    // Konversi halaman tertentu dan simpan gambar ke stream
    tiffDevice.Process(pdfDocument, _dataDir + "AllPagesToTIFF_out.tif");
}

Konversi Satu Halaman ke Gambar TIFF

Aspose.PDF untuk .NET memungkinkan untuk mengonversi halaman tertentu dalam file PDF menjadi gambar TIFF, gunakan versi yang dimuat lebih dari metode Process(..) yang mengambil nomor halaman sebagai argumen untuk konversi. Potongan kode berikut menunjukkan cara mengonversi halaman pertama dari PDF ke format TIFF.

Langkah: Mengonversi Halaman Tunggal atau Tertentu dari PDF ke TIFF dalam C#

  1. Buat objek dari kelas Document.
  2. Buat objek TiffSettings dan TiffDevice
  3. Panggil metode TiffDevice.Process() yang dimuat lebih dengan parameter fromPage dan toPage untuk mengonversi halaman dokumen PDF menjadi TIFF.
public static void ConvertPDFtoTiffSinglePage()
{
    // Buka dokumen
    Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");

    // Buat objek Resolusi
    Resolution resolution = new Resolution(300);

    // Buat objek TiffSettings
    TiffSettings tiffSettings = new TiffSettings
    {
        Compression = CompressionType.None,
        Depth = ColorDepth.Default,
        Shape = ShapeType.Landscape,
    };

    // Buat perangkat TIFF
    TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);

    // Konversi halaman tertentu dan simpan gambar ke stream
    tiffDevice.Process(pdfDocument, 1, 1, _dataDir + "PageToTIFF_out.tif");
}

Gunakan algoritma Bradley selama konversi

Aspose.PDF untuk .NET telah mendukung fitur untuk mengonversi PDF ke TIF menggunakan kompresi LZW dan kemudian dengan menggunakan AForge, Binarisasi dapat diterapkan. Namun, salah satu pelanggan meminta bahwa untuk beberapa gambar, mereka perlu mendapatkan Ambang menggunakan Otsu, sehingga mereka juga ingin menggunakan Bradley.

  public static void ConvertPDFtoTiffBradleyBinarization()
{
     // Buka dokumen
     Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");

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

    // Buat objek Resolusi
    Resolution resolution = new Resolution(300);
    // Buat objek TiffSettings
    TiffSettings tiffSettings = new TiffSettings
    {
        Compression = CompressionType.LZW,
        Depth = Aspose.Pdf.Devices.ColorDepth.Format1bpp
    };
    // Buat perangkat TIFF
    TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
    // Konversi halaman tertentu dan simpan gambar ke stream
    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);
        }
    }
} 

Mengonversi PDF menggunakan kelas ImageDevice

ImageDevice adalah leluhur untuk BmpDevice, JpegDevice, GifDevice, PngDevice dan EmfDevice.

  • Kelas BmpDevice memungkinkan Anda mengonversi halaman PDF menjadi gambar BMP.
  • Kelas EmfDevice memungkinkan Anda mengonversi halaman PDF menjadi gambar EMF.
  • Kelas JpegDevice memungkinkan Anda mengonversi halaman PDF menjadi gambar JPEG.
  • Kelas PngDevice memungkinkan Anda mengonversi halaman PDF menjadi gambar PNG.
  • Kelas GifDevice memungkinkan Anda mengonversi halaman PDF menjadi gambar GIF.

Mari kita lihat cara mengonversi halaman PDF menjadi gambar. Mari kita lihat cara mengonversi halaman PDF menjadi gambar.

Kelas BmpDevice menyediakan metode yang bernama Process yang memungkinkan Anda untuk mengonversi halaman tertentu dari file PDF menjadi format gambar BMP. Kelas lain memiliki metode yang sama. Jadi, jika kita perlu mengonversi halaman PDF menjadi gambar, kita hanya perlu menginstansiasi kelas yang dibutuhkan.

Langkah berikut dan cuplikan kode dalam C# menunjukkan kemungkinan ini

Langkah: PDF ke Gambar (BMP, EMF, JPG, PNG, GIF) dalam C#

  1. Buat instance dari subclass ImageDevice yaitu:
    • BmpDevice (untuk mengubah PDF menjadi BMP)
    • EmfDevice (untuk mengubah PDF menjadi Emf)
    • JpegDevice (untuk mengubah PDF menjadi JPG)
    • PngDevice (untuk mengubah PDF menjadi PNG)
    • GifDevice (untuk mengubah PDF menjadi GIF)
  2. Panggil method ImageDevice.Process() untuk melakukan konversi PDF ke Gambar.
public static class ExampleConvertPdfToImage
{
     private static readonly string _dataDir = @"C:\Samples\";
    // BMP, JPEG, GIF, PNG, EMF
    public static void ConvertPDFusingImageDevice()
    {
        // Create Resolution object            
        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))
        {
            // Convert a particular page and save the image to stream
            imageDevice.Process(pdfDocument.Pages[pageCount], imageStream);

            // Close stream
            imageStream.Close();
        }
    }
}

Mengonversi PDF menggunakan kelas SaveOptions

Bagian artikel ini menunjukkan cara mengonversi PDF ke SVG menggunakan C# dan kelas SaveOptions.

Konversi Aspose.PDF PDF ke SVG dengan Aplikasi Gratis Grafik Vektor Skalabel (SVG) adalah keluarga spesifikasi dari format file berbasis XML untuk grafik vektor dua dimensi, baik statis maupun dinamis (interaktif atau animasi). Spesifikasi SVG adalah standar terbuka yang telah dikembangkan oleh Konsorsium World Wide Web (W3C) sejak tahun 1999.

Gambar SVG dan perilakunya didefinisikan dalam file teks XML. Ini berarti bahwa mereka dapat dicari, diindeks, di-script, dan jika diperlukan, dikompres. Sebagai file XML, gambar SVG dapat dibuat dan diedit dengan editor teks apa pun, tetapi sering kali lebih mudah untuk membuatnya dengan program gambar seperti Inkscape.

Aspose.PDF untuk .NET mendukung fitur untuk mengonversi gambar SVG ke format PDF dan juga menawarkan kemampuan untuk mengonversi file PDF ke format SVG. Aspose.PDF untuk .NET mendukung fitur untuk mengonversi gambar SVG ke format PDF dan juga menawarkan kemampuan untuk mengonversi file PDF ke format SVG.

Potongan kode berikut menunjukkan langkah-langkah untuk mengonversi file PDF ke format SVG dengan .NET.

Langkah: Mengonversi PDF ke SVG dalam C#

  1. Buat objek dari kelas Document.
  2. Buat objek SvgSaveOptions dengan pengaturan yang diperlukan.
  3. Panggil metode Document.Save() dan berikan objek SvgSaveOptions untuk mengonversi dokumen PDF ke SVG.
public static void ConvertPDFtoSVG()
{
    // Muat dokumen PDF
    Document document = new Document(System.IO.Path.Combine(_dataDir, "input.pdf"));
    // Instansiasi objek SvgSaveOptions
    SvgSaveOptions saveOptions = new SvgSaveOptions
    {
        // Jangan kompres gambar SVG ke arsip Zip
        CompressOutputToZipArchive = false,
        TreatTargetFileNameAsDirectory = true                
    };
            
    // Simpan output dalam file SVG
    document.Save(System.IO.Path.Combine(_dataDir, "PDFToSVG_out.svg"), saveOptions);
}