Jeśli masz dokument i chcesz użyć obrazów zawartych w tym dokumencie w innych dokumentach, oto jedno z rozwiązań. W tym artykule nauczymy się programowo wyodrębniać obrazy z dokumentów PDF, Excel, PowerPoint i Word przy użyciu języka Java.

Wyodrębnij obrazy z dokumentów w Javie

Interfejs API Java do wyodrębniania obrazów

Analizuj dokumenty i wyodrębniaj dane w Javie

Do wyodrębnienia obrazów użyjemy GroupDocs.Parser for Java. Ten interfejs API Java obsługuje analizowanie dokumentów i wyodrębnianie obrazów, tekstu i metadanych z dokumentów edytorów tekstu, arkuszy kalkulacyjnych, prezentacji, archiwów i dokumentów e-mail. Poniżej przedstawiono formaty dokumentów obsługiwane przez interfejs Java API do wyodrębniania obrazów.

Typ dokumentu Formaty plików
Dokumenty edytora tekstu DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Arkusze kalkulacyjne XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, LICZBY
Prezentacje PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Dokumenty przenośne PDF
e-maile EML, EMLX, MSG
Archiwa Kod pocztowy

Zanim zaczniesz od poniższych przykładów, zalecam skonfigurowanie środowiska poprzez pobranie najnowszej wersji Java API parsującego dokumenty z sekcji pobierania lub możesz ustawić następujące konfiguracje w swoich aplikacjach Java opartych na Maven:

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>20.8</version> 
</dependency>

Wyodrębnij obrazy z dokumentów PDF w Javie

Dokument PDF do wyodrębniania obrazów

Wykonaj te proste kroki, aby uzyskać wszystkie obrazy z dokumentu PDF.

  1. Utwórz instancję obiektu klasy Parser.
  2. Wywołaj metodę getImages klasy Parser, aby pobrać wszystkie obrazy.
  3. Iteruj po obrazach za pomocą PageImageArea.
  4. Zapisz obrazy przy użyciu metody zapisywania PageImageArea.

Zrobione. Zobacz pełny kod poniżej. Wyodrębnione obrazy można zapisać w formatach BMP, GIF, JPEG, PNG i WebP.

// Wyodrębniaj obrazy z dokumentów Word, Excel, PowerPoint, PDF programowo za pomocą GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
	// Wyodrębnij obrazy
	Iterable<PageImageArea> images = parser.getImages();

	// Utwórz opcje zapisywania obrazów w formacie PNG
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Iteruj po obrazach i zapisz
	for (PageImageArea image : images) {
		// Wydrukuj indeks stron, prostokąt i typ pliku obrazu:
		System.out.println(String.format("Page: %d, R: %s, Type: %s", image.getPage().getIndex(), 
				image.getRectangle(), image.getFileType()));
		image.save(String.format("filesPath/image_%d.png", imageNumber), options);
		imageNumber++;
	}
}

To są obrazy pobrane z dokumentu PDF przy użyciu powyższego kodu.

Wyodrębnione obrazy z dokumentu przy użyciu języka Java

Wyodrębnij obrazy z plików Word, Excel, PowerPoint w Javie

Podobnie wszystkie obrazy mogą być wyjęte z plików edytorów tekstu, arkuszy kalkulacyjnych, prezentacji, z niezmienioną bazą kodu. Co musisz zmienić? Tylko ścieżka dokumentu źródłowego i odpowiednie rozszerzenie pliku.

Parser parser = new Parser("path/document.docx") // Word Document
// Parser parser = new Parser("path/document.xlsx") // Excel Spreadsheet
// Parser parser = new Parser("path/document.pptx") // PowerPoint Presentation
// Parser parser = new Parser("path/document.pdf") // PDF Document

Ekstrakcja obrazu z określonej strony dokumentu w Javie

Jeśli nie chcesz wyodrębniać wszystkich obrazów z całego dokumentu, ale z określonej strony. Poniższy kod pokazuje, jak możemy wyodrębnić obrazy z określonej strony dokumentu w Javie.

// Wyodrębnij obrazy z określonej strony programów Word, Excel, PowerPoint, PDF w Javie za pomocą GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
	// Uzyskaj informacje o dokumencie
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Utwórz opcje zapisywania obrazów w formacie PNG
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Iteruj po stronach
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// Wydrukuj numery stron
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// Iteruj po obrazach - Ignorowanie NULL-Checking w przykładach
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Wydrukuj informacje o obrazie i zapisz plik
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Wniosek

Dzisiaj nauczyliśmy się, jak wyodrębniać obrazy z całego dokumentu i określonej strony dokumentów edytorów tekstu, arkuszy kalkulacyjnych, prezentacji i plików PDF w Javie. Nie ma różnicy w kodzie, jeśli musimy wyodrębnić obrazy z plików o różnych formatach plików. Musimy tylko przejść właściwą ścieżkę i nazwę. Otóż to.

Zobacz też