แยกรูปภาพออกจากไฟล์ PDF โดยใช้ Node.js

เอกสาร PDF จะรักษาเนื้อหารวมถึงรูปภาพและข้อความไว้ตามเดิม ในบางกรณี เราอาจต้องแยกรูปภาพออกจากไฟล์ PDF acrobat เพื่อนำมาใช้ใหม่ เราสามารถแยกรูปภาพหรือรูปภาพทั้งหมดจากหน้าเฉพาะที่ฝังอยู่ในเอกสาร PDF โดยทางโปรแกรมบนคลาวด์ได้อย่างง่ายดาย ในบทความนี้ เราจะมาเรียนรู้วิธีแยกรูปภาพจากไฟล์ PDF โดยใช้ REST API ใน Node.js

หัวข้อต่อไปนี้จะกล่าวถึงเพื่อแยกรูปภาพจาก pdf ในบทความนี้:

Image Extractor REST API และ Node.js SDK

สำหรับการดึงรูปภาพออกจากเอกสาร PDF เราจะใช้ Node.js SDK ของ GroupDocs.Parser Cloud API อนุญาตให้แยกข้อความ รูปภาพ และแยกวิเคราะห์ข้อมูลโดยเทมเพลตจาก รูปแบบเอกสารยอดนิยมทั้งหมด โปรดติดตั้งโดยใช้คำสั่งต่อไปนี้ในคอนโซล:

npm install groupdocs-parser-cloud

โปรด รับรหัสลูกค้าและข้อมูลลับจากแดชบอร์ด ก่อนทำตามขั้นตอนดังกล่าว เมื่อคุณมี ID และรหัสลับของคุณแล้ว ให้เพิ่มรหัสตามที่แสดงด้านล่าง:

// ตัวอย่างโค้ดนี้สาธิตวิธีเพิ่ม ID ลูกค้าและรหัสลับในโค้ด
global.clientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
global.clientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
global.myStorage = "";

const configuration = new groupdocs_parser_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

แยกรูปภาพจาก PDF โดยใช้ REST API ใน Node.js

เราสามารถแยกรูปภาพออกจากเอกสาร PDF ได้โดยทำตามขั้นตอนง่าย ๆ ด้านล่าง:

อัปโหลดเอกสาร

ประการแรก เราจะอัปโหลดเอกสาร PDF ที่มีรูปภาพไปยังคลาวด์โดยใช้ตัวอย่างโค้ดที่ระบุด้านล่าง:

// ตัวอย่างโค้ดนี้สาธิตวิธีอัปโหลด PDF ไปยังคลาวด์ใน node.js 
// สร้าง FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// เส้นทางไฟล์อินพุต
let resourcesFolder = 'C:\\Files\\Parser\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // อัปโหลดคำขอไฟล์
  let request = new groupdocs_parser_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  // อัพโหลดไฟล์
  fileApi.uploadFile(request);
});

ด้วยเหตุนี้ ไฟล์ PDF ที่อัปโหลดจะอยู่ใน ส่วนไฟล์ ของแดชบอร์ดบนระบบคลาวด์ ไฟล์นี้มีไว้เพื่อแยกรูปภาพจาก pdf

แยกรูปภาพทั้งหมดออกจากไฟล์ PDF ใน Node.js

ตอนนี้เราจะแยกรูปภาพทั้งหมดออกจากไฟล์ PDF ที่อัปโหลดโดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:

  • ขั้นแรก สร้างอินสแตนซ์ของ ParseApi
  • ถัดไป ระบุเส้นทางไฟล์ PDF ที่อัปโหลด
  • จากนั้นกำหนด ImageOptions และกำหนดไฟล์
  • หลังจากนั้น สร้าง ImagesRequest ด้วย ImageOptions เป็นอาร์กิวเมนต์
  • สุดท้าย แยกรูปภาพโดยเรียกใช้เมธอด images()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกรูปภาพทั้งหมดจากไฟล์ PDF โดยใช้ REST API ใน Node.js

// ตัวอย่างโค้ดนี้สาธิตวิธีแยกรูปภาพทั้งหมดจาก PDF ใน Node.js
//การเริ่มต้น API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// เส้นทางไฟล์อินพุต
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// กำหนดตัวเลือกภาพ
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// คำขอรูปภาพ
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// แยกรูปภาพ
let result = await parseApi.images(request);

// แสดงผล
let images = result.images;
images.forEach(image => {
  console.log("Image path in storage: " + image.path);
  console.log("Download url: " + image.downloadUrl);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});
แยกรูปภาพจาก PDF โดยใช้ REST API ใน Node.js

แยกรูปภาพจาก PDF โดยใช้ REST API ใน Node.js

ดาวน์โหลดภาพที่แยกออกมา

ตัวอย่างโค้ดด้านบนจะบันทึกภาพที่แยกไว้บนคลาวด์ เราสามารถดาวน์โหลดรูปภาพเหล่านี้ได้โดยใช้ตัวอย่างโค้ดด้านล่าง:

// ตัวอย่างโค้ดนี้สาธิตวิธีดาวน์โหลดรูปภาพจากระบบคลาวด์โดยใช้ Node.js
// สร้างอินสแตนซ์ API ที่จำเป็น
var folderApi = groupdocs_parser_cloud.FolderApi.fromConfig(configuration);
var fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// รับคำขอรายการไฟล์
var filesListRequest = new groupdocs_parser_cloud.GetFilesListRequest("parser/images/sample_pdf/", myStorage);

// รับรายการไฟล์
var filesList = await folderApi.getFilesList(filesListRequest);

for (var count = 0; count < filesList.value.length; count++) {
  // ดาวน์โหลดไฟล์คำขอ
  let request = new groupdocs_parser_cloud.DownloadFileRequest(filesList.value[count].path, myStorage);

  // ดาวน์โหลดไฟล์
  let response = await fileApi.downloadFile(request);

  // บันทึกไฟล์ไปยังโฟลเดอร์บนดิสก์
  fs.writeFile("C:\\Files\\parser\\images\\" + filesList.value[count].name, response, "binary", function (err) { });
  console.log(response);
}

นี่คือวิธีส่งออกรูปภาพจากไฟล์ pdf แล้วดาวน์โหลดจากคลาวด์

บันทึกรูปภาพตามหมายเลขหน้าจากเอกสาร PDF ใน Node.js

เราสามารถส่งออกรูปภาพจากหน้าเฉพาะ PDF แทนทั้งเอกสารโดยทำตามขั้นตอนด้านล่าง

  • ขั้นแรก สร้างอินสแตนซ์ของ ParseApi
  • ถัดไป ระบุเส้นทางไฟล์ PDF ที่อัปโหลด
  • จากนั้นกำหนด ImageOptions และกำหนดไฟล์
  • ตั้งค่าหมายเลขหน้าเริ่มต้นและจำนวนหน้าทั้งหมดที่จะแยกรูปภาพ
  • หลังจากนั้น สร้าง ImagesRequest ด้วย ImageOptions เป็นอาร์กิวเมนต์
  • สุดท้าย แยกรูปภาพโดยเรียกใช้เมธอด images()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกรูปภาพจากไฟล์ pdf ตามหมายเลขหน้าจากเอกสาร PDF โดยใช้ REST API ใน Node.js โปรดทำตามขั้นตอนที่กล่าวถึงก่อนหน้านี้เพื่อดาวน์โหลดภาพที่แยกออกมา

// ตัวอย่างโค้ดนี้สาธิตวิธีแยกรูปภาพจากหน้าเฉพาะของ PDF ใน Node.js
//การเริ่มต้น API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// เส้นทางไฟล์อินพุต
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// กำหนดตัวเลือกรูปภาพ
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;
options.startPageNumber = 1;      // Start page number
options.countPagesToExtract = 1;  // Total pages

// คำขอรูปภาพ
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// แยกรูปภาพ
let result = await parseApi.images(request);

// แสดงผล
let pages = result.pages;
pages.forEach(page => {
  console.log("Page index: " + page.pageIndex);
  page.images.forEach(image => {
    console.log("Download url: " + image.downloadUrl);
    console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
  });
});

แยกรูปภาพจากเอกสารที่แนบมาด้วย PDF ใน Node.js

เรายังสามารถแยกรูปภาพจากเอกสารภายในคอนเทนเนอร์ ซึ่งมีให้ในรูปแบบไฟล์แนบในไฟล์ PDF โดยทำตามขั้นตอนด้านล่าง

  • ขั้นแรก สร้างอินสแตนซ์ของ ParseApi
  • ถัดไป ระบุเส้นทางไฟล์ PDF ที่อัปโหลด
  • จากนั้นกำหนด ImageOptions และกำหนดไฟล์
  • ถัดไป กำหนด ContainerItemInfo และระบุเส้นทางสัมพัทธ์ของเอกสารภายใน
  • หลังจากนั้น สร้าง ImagesRequest ด้วย ImageOptions เป็นอาร์กิวเมนต์
  • สุดท้าย แยกรูปภาพโดยเรียกใช้เมธอด images()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกรูปภาพจากเอกสารภายในเอกสาร PDF โดยใช้ REST API ใน Node.js โปรดทำตามขั้นตอนที่กล่าวถึงก่อนหน้านี้เพื่อดาวน์โหลดภาพที่แยกออกมา

// ตัวอย่างโค้ดนี้สาธิตวิธีแยกรูปภาพจากเอกสารที่แนบมาใน PDF ใน Node.js
// การเริ่มต้น API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// เส้นทางไฟล์อินพุต
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "PDF_with_Attachment.pdf";
fileInfo.password = "password";

// กำหนดตัวเลือกรูปภาพ
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// รายการคอนเทนเนอร์
options.ContainerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
options.ContainerItemInfo.relativePath = "template-document.pdf";

// คำขอรูปภาพ
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// แยกรูปภาพ
let result = await parseApi.images(request);

// แสดงผล
let images = result.images;
images.forEach(image => {
  console.log("Image path: " + image.path);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});

ลองออนไลน์

วิธีแยกรูปภาพจาก pdf ฟรี โปรดลองใช้เครื่องมือแยกวิเคราะห์ PDF ออนไลน์ฟรีต่อไปนี้เพื่อแยกรูปภาพ PDF ออนไลน์ ซึ่งพัฒนาโดยใช้ API ด้านบน https://products.groupdocs.app/parser/pdf

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีการ:

  • แยกรูปภาพจากไฟล์ PDF โดยใช้ Node.js บนคลาวด์
  • อัปโหลดไฟล์ PDF ไปยังคลาวด์โดยทางโปรแกรม
  • ดาวน์โหลดภาพที่แยกจากคลาวด์

นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Parser Cloud API โดยใช้ เอกสารประกอบ เรายังมีส่วน API Reference ที่ช่วยให้คุณแสดงภาพและโต้ตอบกับ API ของเราได้โดยตรงผ่านเบราว์เซอร์ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย