استخراج الصور من ملف PDF باستخدام Java
Contents
[
Hide
]
يدعم Aspose.PDF for Java استخراج موارد الصور مباشرةً وتصفية تعتمد على الموضع.
استخراج صورة مدمجة حسب الفهرس
استخدم هذا المثال عندما تحتاج إلى حفظ مورد صورة محدد من صفحة PDF.
- افتح ملف PDF المصدر Document.
- انتقل إلى الصورة المستهدفة XImage من موارد الصفحة.
- احفظ تدفق الصورة إلى ملف إخراج.
public static void extractImage(Path inputFile, Path outputFile) throws Exception {
try (Document document = new Document(inputFile.toString());
OutputStream outputImage = Files.newOutputStream(outputFile)) {
XImage image = document.getPages().get_Item(1).getResources().getImages().get_Item(1);
image.save(outputImage);
}
}
استخراج الصور من منطقة صفحة محددة
استخدم هذا المثال عندما يجب تصدير الصور الموجودة داخل مستطيل مختار فقط.
- حدّد الهدف Rectangle وفتح ملف PDF المصدر.
- استخدم ImagePlacementAbsorber لفحص مواضع الصور على الصفحة.
- احفظ فقط الصور التي تقع مواضعها داخل المنطقة المحددة.
public static void extractImageFromSpecificRegion(Path inputFile, Path outputFile) throws Exception {
Rectangle rectangle = new Rectangle(0, 0, 590, 590, true);
try (Document document = new Document(inputFile.toString())) {
ImagePlacementAbsorber absorber = new ImagePlacementAbsorber();
document.getPages().get_Item(1).accept(absorber);
int index = 1;
for (ImagePlacement imagePlacement : absorber.getImagePlacements()) {
Point point1 = new Point(imagePlacement.getRectangle().getLLX(), imagePlacement.getRectangle().getLLY());
Point point2 = new Point(imagePlacement.getRectangle().getURX(), imagePlacement.getRectangle().getURX());
if (rectangle.contains(point1, true) && rectangle.contains(point2, true)) {
Path indexedOutputFile = Path.of(outputFile.toString().replace("index", String.valueOf(index)));
try (OutputStream outputImage = Files.newOutputStream(indexedOutputFile)) {
imagePlacement.getImage().save(outputImage);
}
index++;
}
}
}
}