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.
- Interfejs API Java do wyodrębniania obrazów
- Ekstrakcja obrazu z dokumentów PDF w Javie
- Wyodrębnij obrazy z dokumentów Word, Excel, PowerPoint w Javie
- Wyodrębnij obraz z określonej strony w Javie
Interfejs API Java do wyodrębniania obrazów
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 | |
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
Wykonaj te proste kroki, aby uzyskać wszystkie obrazy z dokumentu PDF.
- Utwórz instancję obiektu klasy Parser.
- Wywołaj metodę getImages klasy Parser, aby pobrać wszystkie obrazy.
- Iteruj po obrazach za pomocą PageImageArea.
- 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ę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.