Node.js を使用して PDF ファイルから画像を抽出する

PDF文書は画像やテキストなどの内容をそのまま保存します。場合によっては、PDF acrobat ファイルから画像を抽出して再利用する必要がある場合があります。すべての画像、または PDF ドキュメントに埋め込まれた特定のページからの画像を、クラウド上でプログラム的に簡単に抽出できます。この記事では、Node.js の REST API を使用して PDF ファイルから画像を抽出する方法を学びます。

この記事では、PDF から写真を抽出するために次のトピックについて説明します。

画像抽出 REST API と Node.js SDK

PDF ドキュメントから画像を抽出するには、GroupDocs.Parser Cloud の Node.js SDK API を使用します。これにより、すべての 一般的なドキュメント形式 からのテンプレートによるテキスト、画像の抽出、およびデータの解析が可能になります。コンソールで次のコマンドを使用してインストールしてください。

npm install groupdocs-parser-cloud

上記の手順に従う前に、ダッシュボードからクライアント ID とシークレットを取得してください。 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";

Node.js の REST API を使用して PDF から画像を抽出する

以下の簡単な手順に従って、PDF ドキュメントから画像を抽出できます。

ドキュメントをアップロードする

まず、以下のコードサンプルを使用して、画像を含む PDF ドキュメントをクラウドにアップロードします。

// このコード例は、node.js で PDF をクラウドにアップロードする方法を示しています。 
// 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 から画像を抽出するために利用できます。

Node.js で PDF ファイルからすべての画像を抽出する

次に、以下の手順に従って、アップロードされた PDF ファイルからすべての画像をプログラムで抽出します。

  • まず、ParseApi のインスタンスを作成します。
  • 次に、アップロードされた PDF ファイルのパスを指定します。
  • 次に、ImageOptions を定義してファイルを割り当てます。
  • その後、ImageOptions を引数として ImagesRequest を作成します。
  • 最後に、images() メソッドを呼び出して画像を抽出します。

次のコード サンプルは、Node.js の REST API を使用して PDF ファイルからすべての画像を抽出する方法を示しています。

// このコード例は、Node.js で PDF からすべての画像を抽出する方法を示します。
//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);
});
Node.js の REST API を使用して PDF から画像を抽出する

Node.js の REST API を使用して PDF から画像を抽出する

抽出した画像をダウンロードする

上記のコードサンプルは、抽出した画像をクラウド上に保存します。以下に示すコードサンプルを使用して、これらのイメージをダウンロードできます。

// このコード例は、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ファイルから画像をエクスポートし、クラウドからダウンロードする方法です。

Node.js で PDF ドキュメントからページ番号ごとに画像を保存する

以下の手順に従って、文書全体ではなく PDF 特定のページから画像をエクスポートできます。

  • まず、ParseApi のインスタンスを作成します。
  • 次に、アップロードされた PDF ファイルのパスを指定します。
  • 次に、ImageOptions を定義してファイルを割り当てます。
  • 画像を抽出する開始ページ番号と総ページ数を設定します。
  • その後、ImageOptions を引数として ImagesRequest を作成します。
  • 最後に、images() メソッドを呼び出して画像を抽出します。

次のコード サンプルは、Node.js の REST API を使用して、PDF ドキュメントのページ番号によって PDF ファイルから画像を抽出する方法を示しています。前述の手順に従って、抽出した画像をダウンロードしてください。

// このコード例は、Node.js で PDF の特定のページから画像を抽出する方法を示します。
//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);
  });
});

Node.js で PDF に添付されたドキュメントから画像を抽出する

以下の手順に従って、コンテナ内のドキュメントから画像を抽出し、PDF ファイルの添付ファイルとして利用することもできます。

  • まず、ParseApi のインスタンスを作成します。
  • 次に、アップロードされた PDF ファイルのパスを指定します。
  • 次に、ImageOptions を定義してファイルを割り当てます。
  • 次に、ContainerItemInfo を定義し、内部ドキュメントの相対パスを指定します。
  • その後、ImageOptions を引数として ImagesRequest を作成します。
  • 最後に、images() メソッドを呼び出して画像を抽出します。

次のコード サンプルは、Node.js の REST API を使用して PDF ドキュメント内のドキュメントから画像を抽出する方法を示しています。前述の手順に従って、抽出した画像をダウンロードしてください。

// このコード例は、Node.js で PDF に添付されたドキュメントから画像を抽出する方法を示します。
// 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から画像を無料で抽出するにはどうすればよいですか?上記の API を使用して開発された、オンラインで PDF 画像を抽出するには、次の無料のオンライン PDF 解析ツールをお試しください。 https://products.groupdocs.app/parser/pdf

結論

この記事では、次の方法を学びました。

  • クラウド上の Node.js を使用して PDF ファイルから画像を抽出します。
  • PDF ファイルをプログラムでクラウドにアップロードします。
  • 抽出した画像をクラウドからダウンロードします。

さらに、ドキュメント を使用して、GroupDocs.Parser Cloud API について詳しく学ぶことができます。また、API リファレンス セクションも提供されており、ブラウザーを通じて直接 API を視覚化して操作できるようになります。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。

関連項目