Всем привет! Это небольшой пост, чтобы помочь людям, которые хотят извлекать изображения из PDF-файлов.
Прежде всего, вам понадобится внешнее приложение, которое сделает всю работу за вас. Я использовал Ghostscript. Это действительно хороший инструмент для работы как с Windows, так и с Unix/Linux/Mac (Хорошо… я никогда не пробовал это на Mac. Но поскольку это работает на Unix, скорее всего, оно сработает).
Итак, для загрузки Ghostscript в свое приложение я использовал Maven, это хороший способ работы с зависимостями в моем Java-проекте. Ниже приведены теги зависимостей, которые нужно установить в файле Maven pom.xml.
<repositories> <repository> <id>org.ghost4j.repository.releases</id> <name>Ghost4J releases</name> <url>http://repo.ghost4j.org/maven2/releases</url> </repository> <repository> <id>org.ghost4j.repository.snapshots</id> <name>Ghost4J snapshots</name> <url>http://repo.ghost4j.org/maven2/snapshots</url> </repository> </repositories> <dependency> <groupId>org.ghost4j</groupId> <artifactId>ghost4j</artifactId> <version>1.0.0</version> </dependency>
Все, что вам нужно для запуска Ghostscript, — это DLL этого приложения с именем gsdll64.dll. Я использовал приведенный ниже код для вызова файла. Важно вызывать это в начале вашего кода, например, в конструкторе класса. В этом случае я вызвал его из своего пути к классам.
Runtime.getRuntime().load(this.getClass().getResource("/gsdll64.dll").toString().replace("file:/", ""));
Наконец, приведенный ниже код читает ваш PDF-файл и извлекает изображения, такие как java.awt.Image.
import org.ghost4j.document.DocumentException; import org.ghost4j.document.PDFDocument; import org.ghost4j.renderer.RendererException; import org.ghost4j.renderer.SimpleRenderer; ... PDFDocument document = new PDFDocument(); document.load(new File(<pdf_path>)); SimpleRenderer render = new SimpleRenderer(); render.setResolution(300); List<java.awt.Image> images = render.render(document);
Я надеюсь, что это поможет вам в вашем проекте.
Не забудьте поставить лайк и комментарий.
Спасибо!