การดึงภาพจากไฟล์ PDF เป็นความต้องการที่พบบ่อยเมื่อสร้าง pipeline การประมวลผลเอกสาร โดยเฉพาะเมื่อคุณต้องการใช้กราฟิกซ้ำสำหรับรูปย่อ รายงาน หรือการวิเคราะห์ต่อไป GroupDocs.Parser Cloud SDK for Java ให้ API ที่ง่ายต่อการใช้งานซึ่งช่วยให้คุณดึงภาพที่ฝังอยู่ทั้งหมดจาก PDF ได้ด้วยไม่กี่บรรทัดของโค้ด คู่มือนี้จะพาคุณผ่านการกำหนดค่า SDK การรันตัวอย่างโค้ดเต็มรูปแบบ การใช้ cURL สำหรับงานเดียวกัน และการนำแนวปฏิบัติที่ดีที่สุดมาใช้เพื่อให้การดึงภาพจาก PDF มีความน่าเชื่อถือ
ดึงรูปภาพจากเอกสาร PDF ด้วย Java ใน 5 ขั้นตอน
- กำหนดค่า API credentials: สร้างอ็อบเจ็กต์
Configurationและตั้งค่า client ID และ secret ของคุณ.
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 ด้วย Java โดยใช้ 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 endpoint ของ 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 for Java
เพิ่มการพึ่งพา Maven ไปยัง pom.xml ของคุณ (หรือสแนปช็อต Gradle ที่เทียบเท่า).
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser-cloud</artifactId>
<version>26.2</version>
</dependency>
The SDK จะถูกจัดส่งเป็นไลบรารีบนคลาวด์; ไม่จำเป็นต้องมีไบนารีในเครื่อง. ดาวน์โหลดแพ็กเกจล่าสุดจาก หน้ารีลีส. ตรวจสอบว่าคุณมี Java 8 หรือสูงกว่าและมีบัญชี GroupDocs Cloud ที่ถูกต้องพร้อม client ID และ secret.
GroupDocs.Parser Cloud SDK for Java คุณสมบัติที่เปิดใช้งานการดึงภาพ
- การดึงภาพ PDF เต็มรูปแบบ - ดึงภาพแรสเตอร์และเวกเตอร์ทั้งหมดที่ฝังอยู่ในเอกสาร.
- เมตาดาต้าสำหรับแต่ละภาพ - คืนชื่อไฟล์, ขนาด, รูปแบบและหมายเลขหน้า.
- รองรับรูปแบบภาพทั่วไปทั้งหมด - PNG, JPG, BMP, GIF, TIFF, และอื่น ๆ.
- การผสานรวมการจัดเก็บบนคลาวด์ - ทำงานโดยตรงกับไฟล์ที่จัดเก็บใน GroupDocs Cloud โดยไม่ต้องดาวน์โหลดไฟล์เหล่านั้นก่อน.
- การประมวลผลแบบ REST‑based ที่ขยายได้ - จัดการ PDF ขนาดใหญ่และงานที่มีปริมาณสูงผ่าน Cloud API.
ปรับจูนการตั้งค่าการสกัดภาพ
แม้คำขอพื้นฐานจะทำงานได้โดยอัตโนมัติ คุณสามารถปรับตัวเลือกต่าง ๆ เช่น:
- การป้องกันด้วยรหัสผ่าน - ตั้งค่าคุณสมบัติ
passwordบนFileInfoสำหรับ PDF ที่เข้ารหัส. - ช่วงหน้า - จำกัดการสกัดข้อมูลให้เฉพาะหน้าที่ต้องการโดยเพิ่มอาร์เรย์
pagesลงใน JSON ของคำขอ. - การแปลงรูปแบบภาพ - ขอแปลงเป็นรูปแบบอื่นโดยระบุประเภทเอาต์พุตที่ต้องการในคำขอ (ดูที่ API reference สำหรับฟิลด์ที่แน่นอน).
ตัวอย่างการตั้งรหัสผ่าน (ตัดมาจากโค้ดหลัก):
FileInfo fileInfo = new FileInfo()
.setFilePath("protected.pdf")
.setPassword("mySecret");
เคล็ดลับปฏิบัติสำหรับการสกัดภาพ PDF อย่างมีประสิทธิภาพ
- ตรวจสอบการมีอยู่ของไฟล์ ก่อนส่งคำขอเพื่อหลีกเลี่ยงการเรียก API ที่ไม่จำเป็น.
- ประมวลผลภาพในสตรีม เมื่อทำงานกับไฟล์ขนาดใหญ่เพื่อ ลดการใช้หน่วยความจำ.
- ใช้การแบ่งหน้า หากคุณต้องการเฉพาะภาพจากบางหน้า; นี้จะทำให้การตอบสนองเร็วขึ้น.
- จัดการข้อจำกัดอัตราการเรียก API โดยใช้การหน่วงเวลาแบบเอ็กซ์โพเนนเชียลเมื่อได้รับการตอบกลับ HTTP 429.
- บันทึกชื่อไฟล์ที่บันทึกไว้แต่ละไฟล์ เพื่อทำให้การแก้ไขปัญหาและการตรวจสอบเป็นเรื่องง่ายขึ้น.
สรุป
การสกัดภาพจากเอกสาร PDF ใน Java กลายเป็นงานที่ง่ายและเชื่อถือได้เมื่อคุณใช้พลังของ GroupDocs.Parser Cloud SDK for Java. SDK จัดการการจัดการข้อมูลรับรอง การโต้ตอบกับคลาวด์สตอเรจ และการถอดรหัสภาพ ทำให้คุณสามารถมุ่งเน้นที่ตรรกะของแอปพลิเคชันของคุณได้ สำหรับการใช้งานในสภาพแวดล้อมการผลิต ให้ซื้อใบอนุญาตที่เหมาะสมจาก หน้าราคา หรือรับใบอนุญาตชั่วคราวเพื่อการประเมินผล ด้วยตัวอย่างโค้ด คู่มือ cURL และคำแนะนำแนวปฏิบัติที่ดีที่สุดในบทความนี้ คุณพร้อมแล้วที่จะรวมการสกัดภาพจาก PDF เข้าไปในโซลูชันที่ใช้ Java ใด ๆ
คำถามที่พบบ่อย
รูปแบบใดบ้างที่สามารถสกัดออกจาก PDF?
SDK จะสกัดรูปแบบเรสเตอร์เช่น PNG, JPG, BMP, GIF, และ TIFF รวมถึงกราฟิกเวกเตอร์เมื่อถูกจัดเก็บเป็นภาพ.ฉันจำเป็นต้องดาวน์โหลด PDF ก่อนที่จะสกัดภาพหรือไม่?
ไม่. SDK ทำงานโดยตรงกับไฟล์ที่จัดเก็บใน GroupDocs Cloud storage, ทำให้ไม่ต้องดาวน์โหลดลงเครื่องSDK จัดการกับ PDF ขนาดใหญ่อย่างไร?
การสกัดข้อมูลทำบนเซิร์ฟเวอร์ ดังนั้นการใช้หน่วยความจำบนเครื่องของคุณจึงต่ำอยู่เสมอ คุณยังสามารถจำกัดการสกัดข้อมูลให้เฉพาะหน้าเพื่อปรับปรุงประสิทธิภาพได้มีวิธีทดสอบการสกัดโดยไม่ต้องเขียนโค้ดหรือไม่?
ใช่ คุณสามารถใช้คำสั่ง cURL ที่ให้ไว้ข้างต้นหรือทดลองคอนโซล API แบบโต้ตอบบนหน้าผลิตภัณฑ์ได้
