استخراج تصاویر از PDF فایلها یک نیاز مکرر هنگام ساخت خطوط پردازش سند است، بهویژه زمانی که نیاز به استفاده مجدد از گرافیکها برای تصویرهای کوچک، گزارشها یا تجزیه و تحلیلهای بیشتر دارید. GroupDocs.Parser Cloud SDK for Java یک API ساده ارائه میدهد که به شما امکان میدهد تمام تصاویر جاسازیشده در یک PDF را تنها با چند خط کد استخراج کنید. این راهنما شما را در پیکربندی SDK، اجرای یک مثال کامل کد، استفاده از cURL برای همان کار، و اعمال بهترین روشها برای اطمینان از استخراج قابل اعتماد تصاویر PDF راهنمایی میکند.
استخراج تصاویر از اسناد PDF در جاوا در 5 مرحله
- پیکربندی اعتبارهای API: یک شیء
Configurationایجاد کنید و شناسه مشتری و رمز عبور خود را تنظیم کنید.
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
- راهاندازی Parser API: یک
ApiClientرا با پیکربندی ساخته وParserApiرا نمونهسازی کنید.
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
درخواست استخراج تصویر را بسازید: مسیر فایل PDF را با استفاده از
FileInfoمشخص کنید و یکExtractImagesRequestایجاد کنید.String inputFilePath = "input.pdf"; ExtractImagesRequest request = new ExtractImagesRequest() .setFileInfo(new FileInfo().setFilePath(inputFilePath));استخراج را اجرا کنید و تصاویر را بازیابی کنید: متد
extractImagesرا فراخوانی کنید و لیست اشیاءImageرا دریافت کنید.
ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
- هر تصویر را در ذخیرهسازی محلی ذخیره کنید: حلقهای بر روی مجموعه بزنید و دادههای باینری را در فایلها بنویسید.
for (int i = 0; i < images.size(); i++) {
Image img = images.get(i);
String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
fos.write(img.getData());
}
System.out.println("Saved image: " + outputFileName);
}
برای جزئیات بیشتر در مورد هر کلاس، به مرجع رسمی API مراجعه کنید.
مثال کامل کد: استخراج تصاویر از اسناد PDF در جاوا با استفاده از GroupDocs.Parser
مثال زیر جریان کاری کامل از تنظیم اعتبارها تا ذخیرهسازی تصویر را نشان میدهد.
import com.groupdocs.parser.cloud.ApiClient;
import com.groupdocs.parser.cloud.Configuration;
import com.groupdocs.parser.cloud.api.ParserApi;
import com.groupdocs.parser.cloud.model.FileInfo;
import com.groupdocs.parser.cloud.model.Image;
import com.groupdocs.parser.cloud.model.ImagesResult;
import com.groupdocs.parser.cloud.model.requests.ExtractImagesRequest;
import java.io.FileOutputStream;
import java.util.List;
public class ExtractImagesFromPdf {
public static void main(String[] args) {
// Configure API credentials
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
// config.setBaseUrl("https://api.groupdocs.cloud"); // optional, if needed
// Initialize API client and Parser API
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
// Path to the PDF file stored in GroupDocs Cloud storage
String inputFilePath = "input.pdf";
// Build request for image extraction
ExtractImagesRequest request = new ExtractImagesRequest()
.setFileInfo(new FileInfo().setFilePath(inputFilePath));
try {
// Perform extraction
ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
// Save each extracted image to local disk
for (int i = 0; i < images.size(); i++) {
Image img = images.get(i);
String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
fos.write(img.getData());
}
System.out.println("Saved image: " + outputFileName);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
توجه: این مثال کد عملکرد اصلی را نشان میدهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل و مقادیر پیکربندی را بهگونهای بهروزرسانی کنید که با محیط واقعی شما مطابقت داشته باشد، بررسی کنید که تمام وابستگیهای مورد نیاز بهدرستی نصب شدهاند و بهطور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک با تیم پشتیبانی تماس بگیرید.
استخراج تصویر PDF با استفاده از cURL و REST API
میتوانید همان نتیجه را بدون نوشتن کد Java با فراخوانی مستقیم نقاط انتهایی REST سرویس GroupDocs.Parser Cloud به دست آورید.
- دریافت توکن دسترسی
curl -X POST "https://api.groupdocs.cloud/v2.0/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- بارگذاری فایل PDF
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/input.pdf"
- درخواست استخراج تصویر
curl -X POST "https://api.groupdocs.cloud/v2.0/parser/extractImages" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fileInfo": {"filePath": "input.pdf"}}'
- دانلود تصاویر استخراجشده (پاسخ شامل دادههای base64 است؛ میتوانید آن را بهصورت محلی رمزگشایی کنید)
برای دریافت فهرست کامل پارامترها، به مستندات رسمی API مراجعه کنید.
نصب و پیکربندی GroupDocs.Parser Cloud SDK برای Java
وابستگی Maven را به pom.xml خود اضافه کنید (یا قطعه معادل Gradle).
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser-cloud</artifactId>
<version>26.2</version>
</dependency>
SDK بهصورت کتابخانهٔ ابری ارائه میشود؛ نیازی به باینریهای محلی نیست. آخرین بسته را از صفحه انتشار دانلود کنید. اطمینان حاصل کنید که جاوا 8 یا بالاتر و یک حساب معتبر GroupDocs Cloud با شناسهٔ مشتری و رمز عبور دارید.
GroupDocs.Parser Cloud SDK for Java ویژگیهای فعالسازی بازیابی تصویر
- استخراج کامل تصاویر PDF - تمام تصاویر رستر و وکتور جاسازیشده در سند را بازیابی میکند.
- فراداده برای هر تصویر - نام فایل، اندازه، فرمت و شماره صفحه را برمیگرداند.
- پشتیبانی از تمام فرمتهای رایج تصویر - PNG, JPG, BMP, GIF, TIFF, و موارد دیگر.
- یکپارچهسازی ذخیرهسازی ابری - بهصورت مستقیم با فایلهای ذخیرهشده در GroupDocs Cloud کار میکند بدون اینکه ابتدا آنها را دانلود کنید.
- پردازش مقیاسپذیر مبتنی بر REST - PDFهای بزرگ و بارهای کاری با حجم بالا را از طریق API ابری مدیریت میکند.
تنظیمات دقیق استخراج تصویر
در حالی که درخواست پایه بهطور پیشفرض کار میکند، میتوانید گزینههایی مانند زیر را تنظیم کنید:
- حفاظت با رمز عبور - برای PDFهای رمزگذاریشده، ویژگی
passwordرا درFileInfoتنظیم کنید. - محدوده صفحات - استخراج را به صفحات خاص محدود کنید با افزودن آرایه
pagesبه JSON درخواست. - تبدیل فرمت تصویر - با مشخص کردن نوع خروجی مورد نظر در درخواست، تبدیل به فرمت متفاوت را درخواست کنید (برای فیلدهای دقیق به مستندات API مراجعه کنید).
مثال برای تنظیم رمز عبور (برداشت شده از کد اصلی):
FileInfo fileInfo = new FileInfo()
.setFilePath("protected.pdf")
.setPassword("mySecret");
نکات عملی برای استخراج کارآمد تصاویر PDF
- اعتبارسنجی وجود فایل قبل از ارسال درخواست برای جلوگیری از تماسهای غیرضروری API.
- پردازش تصاویر در جریانها هنگام کار با فایلهای بزرگ برای کاهش مصرف حافظه.
- استفاده از صفحهبندی اگر فقط به تصاویر صفحات خاصی نیاز دارید؛ این کار سرعت پاسخ را افزایش میدهد.
- مدیریت محدودیتهای نرخ API با پیادهسازی بازگشت نمایی در پاسخهای HTTP 429.
- ثبت نام هر فایل ذخیرهشده برای سادهسازی عیبیابی و مسیرهای حسابرسی.
نتیجهگیری
استخراج تصاویر از اسناد PDF در جاوا تبدیل به یک کار ساده و قابل اعتماد میشود وقتی از قدرت GroupDocs.Parser Cloud SDK for Java استفاده کنید. این SDK مدیریت اعتبارها، تعامل با ذخیرهسازی ابری و رمزگشایی تصویر را بر عهده میگیرد و به شما اجازه میدهد بر منطق برنامه خود تمرکز کنید. برای استقرارهای تولیدی، یک لایسنس مناسب را از صفحه قیمتگذاری خریداری کنید یا برای ارزیابی یک لایسنس موقت دریافت کنید. با مثال کد، راهنمای cURL و توصیههای بهترینروشها در این مقاله، آمادهاید تا استخراج تصویر PDF را در هر راهحل مبتنی بر جاوا یکپارچه کنید.
سوالات متداول
چه فرمتهایی میتوان از یک PDF استخراج کرد؟
SDK فرمتهای رستری مانند PNG، JPG، BMP، GIF و TIFF را استخراج میکند، همچنین گرافیکهای برداری زمانی که بهصورت تصویر ذخیره شده باشند.آیا برای استخراج تصاویر نیاز به دانلود PDF دارم؟
خیر. SDK مستقیماً با فایلهای ذخیرهشده در فضای ذخیرهسازی GroupDocs Cloud کار میکند و نیازی به دانلودهای محلی ندارد.چگونه SDK فایلهای PDF بزرگ را مدیریت میکند؟
استخراج در سمت سرور انجام میشود، بنابراین استفاده از حافظه در دستگاه شما کم میماند. همچنین میتوانید استخراج را به صفحات خاص محدود کنید تا عملکرد بهبود یابد.آیا راهی برای تست استخراج بدون نوشتن کد وجود دارد؟
بله، میتوانید از دستورات cURL ارائهشده در بالا استفاده کنید یا کنسول تعاملی API را در صفحه محصول امتحان کنید.
