Pokud máte dokument a chcete obrázky uvnitř tohoto dokumentu použít v některých dalších dokumentech, zde je jedno z řešení. V tomto článku se naučíme programově extrahovat obrázky z dokumentů PDF, Excel, PowerPoint a Word pomocí Javy.

Extrahujte obrázky z dokumentů v Java

Extrakce obrazu Java API

Analyzujte dokumenty a extrahujte data v Java

Pro extrakci obrázků použijeme GroupDocs.Parser for Java. Toto Java API podporuje analýzu dokumentů a extrakci obrázků, textu a metadat z textových dokumentů, tabulek, prezentací, archivů a e-mailových dokumentů. Níže jsou uvedeny formáty dokumentů podporované rozhraním Java API pro extrakci obrázků.

Typ dokumentu Formáty souborů
Dokumenty pro zpracování textu DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Tabulky XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, ČÍSLA
Prezentace PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Přenosné dokumenty PDF
E-maily EML, EMLX, MSG
Archiv PSČ

Než začnete s příklady níže, doporučil bych nastavit prostředí stažením nejnovější verze Java API pro analýzu dokumentů z části ke stažení nebo můžete nastavit následující konfigurace ve svých Java aplikacích založených 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>

Extrahujte obrázky z dokumentů PDF v Java

Dokument PDF pro extrahování obrázků

Chcete-li získat všechny obrázky z dokumentu PDF, postupujte podle těchto jednoduchých kroků.

  1. Vytvořit instanci objektu třídy Parser.
  2. Voláním metody getImages třídy Parser získáte všechny obrázky.
  3. Iterujte obrázky pomocí PageImageArea.
  4. Uložte obrázky pomocí metody ukládání PageImageArea.

Je to hotovo. Viz celý kód níže. Extrahované obrázky lze uložit ve formátech BMP, GIF, JPEG, PNG a WebP.

// Extrahujte obrázky z dokumentů Word, Excel, PowerPoint, PDF Programově pomocí GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
	// Extrahujte obrázky
	Iterable<PageImageArea> images = parser.getImages();

	// Vytvořte možnosti pro ukládání obrázků ve formátu PNG
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Opakujte obrázky a uložte
	for (PageImageArea image : images) {
		// Vytiskněte index stránky, obdélník a typ souboru obrázku:
		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++;
	}
}

Toto jsou obrázky získané z dokumentu PDF pomocí výše uvedeného kódu.

Extrahované obrázky z dokumentu pomocí Javy

Extrahujte obrázky ze souborů Word, Excel, PowerPoint v Java

Podobně lze všechny obrázky vyjmout z textových souborů, tabulek, prezentací s nezměněnou základnou kódu. Co musíte změnit? Stačí cesta ke zdrojovému dokumentu a správná přípona souboru.

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

Extrakce obrázku ze stránky konkrétního dokumentu v Java

Pokud nechcete extrahovat všechny obrázky z celého dokumentu, ale z nějaké konkrétní stránky. Níže uvedený kód ukazuje, jak můžeme extrahovat obrázky z konkrétní stránky dokumentu v Java.

// Extrahujte obrázky z konkrétní stránky aplikací Word, Excel, PowerPoint, PDF v Java pomocí GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
	// Získejte informace o dokumentu
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Vytvořte možnosti pro ukládání obrázků ve formátu PNG
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Iterujte stránky
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// Tisk čísel stránek
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// Iterace přes obrázky - Ignorování NULL-Checking v příkladech
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Vytisknout informace o obrázku a uložit soubor
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Závěr

Dnes jsme se naučili, jak extrahovat obrázky z celého dokumentu a konkrétní stránky textových dokumentů, tabulek, prezentací a PDF v Java. Pokud musíme extrahovat obrázky ze souborů různých formátů, v kódu není žádný rozdíl. Musíme jen projít správnou cestou a jménem. A je to.

Viz také