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#.
- Utwórz nowy projekt.
- Pobierz interfejs API, jak wspomniano powyżej, lub zaktualizuj do najnowszej wersji interfejsu API.
- Dodaj następujące przestrzenie nazw:
using System;
using System.Collections.Generic;
using System.Text;
using GroupDocs.Parser.Data;
- 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.
}
- 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;
}
- 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
Wyodrębnione obrazy
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.