Portable Document Format (PDF) to popularny i szeroko stosowany format dokumentów opracowany przez firmę Adobe. Dokumenty PDF mogą zawierać różnorodne treści, w tym sformatowany tekst, obrazy, adnotacje, pola formularzy itp. Programowe analizowanie dokumentów PDF jest popularnym przypadkiem użycia i istnieje wiele sposobów wyodrębniania tekstu. Jednak wyodrębnianie obrazów z dokumentu PDF jest złożonym zadaniem. W tym artykule pokazano, jak łatwo można programowo wyodrębnić obrazy z dokumentów PDF w języku C#.

.NET API do wyodrębniania obrazów z plików PDF

GroupDocs.Parser for .NET API odegra swoją rolę w wyodrębnianiu obrazów z plików PDF. Wraz z plikiem PDF interfejs API obsługuje analizowanie i wyodrębnianie obrazów z dokumentów edytorów tekstu, arkuszy kalkulacyjnych, e-booków, prezentacji, wiadomości e-mail, archiwów ZIP i wielu innych formatów dokumentów.

Możesz pobrać pliki DLL lub instalator MSI z sekcji pobierania lub zainstalować interfejs API w swojej aplikacji .NET za pośrednictwem NuGet.

PM> Install-Package GroupDocs.Parser

Kroki, aby wyodrębnić obrazy z dokumentu PDF za pomocą C#

Przyjrzyjmy się szybko krok po kroku, jak uzyskać obrazy z pliku PDF przy użyciu kilku wierszy kodu C#.

  1. Utwórz nowy projekt.
  2. Pobierz interfejs API, jak wspomniano powyżej, lub zaktualizuj do najnowszej wersji interfejsu API.
  3. Dodaj następujące przestrzenie nazw:
using System;
using System.Collections.Generic;
using System.Text;
using GroupDocs.Parser.Data;
  1. Załaduj dokument PDF za pomocą klasy Parser.
// Utwórz instancję klasy Parser
using (Parser parser = new Parser("path/document.pdf"))
{
  // twój kod idzie tutaj.
}
  1. Wyodrębnij obrazy z dokumentu za pomocą metody GetImages.
// Wyodrębnij obrazy
IEnumerable<PageImageArea> images = parser.GetImages();

// Sprawdź, czy obsługiwane jest wyodrębnianie obrazów
if (images == null)
{
    Console.WriteLine("Images extraction isn't supported");
    return;
}
  1. Uzyskaj dostęp do każdego obrazu z kolekcji i zapisz go przy użyciu metody Save.
// Iteruj po pobranych obrazach
foreach (PageImageArea image in images)
{
    // Zapisz obrazy
    image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", new ImageOptions(ImageFormat.Jpeg));
    imageNumber++;
}

Obrazy można zapisywać w różnych formatach, takich jak JPG, PNG, BMP, WebP lub GIF.

Kompletny kod C# — ekstrakcja obrazu z pliku PDF

Oto kompletny kod, który pozwoli ci pobrać wszystkie obrazy z pliku PDF.

// Wyodrębnij obrazy z PDF za pomocą C#
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    // Sprawdź, czy wyodrębnianie obrazu jest obsługiwane
    if (images == null) 
    {
        Console.WriteLine("Images extraction isn't supported");
        return;
    }
    
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    
    // Iteruj po pobranych obrazach
    foreach (PageImageArea image in images)
    {
        // Zapisz obrazy
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", options);
        imageNumber++;
    }
}

Wyniki

Przykładowy dokument PDF

Dokument PDF zawierający obrazy do wyodrębnienia.

Wyodrębnione obrazy

wyodrębnione obrazy z pliku PDF.

Jeśli chcesz, w osobnym artykule wyjaśniono również, w jaki sposób można Wyodrębnić obrazy z dowolnej określonej strony dokumentu PDF za pomocą języka C#.

Czytaj więcej

Możesz dowiedzieć się więcej o interfejsie API wyodrębniania danych platformy .NET, korzystając z jego dokumentacji. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.

Zobacz też