PDFから不要なメモ、ハイライト、またはインクマークを削除することは、配布用にクリーンな文書を準備する際によくある要件です。GroupDocs.Annotation Cloud SDK for Node.js は、REST ベースの強力なライブラリを提供し、PDF アノテーションをプログラムで管理できます。このガイドでは、Node.JS で REST を使用して PDF から Annotation オブジェクトを削除する方法をステップバイステップで示します。完全なコード例、同等の cURL コマンド、構成のヒント、ベストプラクティスの推奨事項を確認し、アノテーション削除をサービスに統合する方法を学びます。
REST を使用して Node.JS で PDF から注釈オブジェクトを削除する完全な動作例
この例では、PDF をアップロードし、すべての注釈を削除し、GroupDocs.Annotation SDK を使用してクリーンアップされたファイルをダウンロードする方法を示します。
const fs = require('fs');
const path = require('path');
const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";
const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
const annotationsApi = new GroupDocsAnnotationCloud.AnnotationsApi(config);
const storageApi = new GroupDocsAnnotationCloud.StorageApi(config);
// ==== Local & Remote file definitions =======================================
const localInputPath = path.resolve(__dirname, "input.pdf");
const localOutputPath = path.resolve(__dirname, "output.pdf");
const remoteFilePath = "input.pdf";
// ==== Main workflow ==========================================================
(async () => {
// 1. Upload PDF to GroupDocs Cloud storage
const fileBytes = fs.readFileSync(localInputPath);
const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
path: remoteFilePath,
file: fileBytes
});
await storageApi.uploadFile(uploadRequest);
// 2. Build FileInfo object for the uploaded PDF
const fileInfo = new GroupDocsAnnotationCloud.FileInfo({
filePath: remoteFilePath
});
// 3. Retrieve all existing annotations
const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
fileInfo: fileInfo
});
const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
const annotationIds = (annotationsResult.annotations || []).map(a => a.id);
// 4. Delete all annotations (if any)
if (annotationIds.length > 0) {
const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
fileInfo: fileInfo,
annotationIds: annotationIds
});
await annotationsApi.deleteAnnotations(deleteRequest);
}
// 5. Download the cleaned PDF back to local storage
const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
path: remoteFilePath
});
const fileStream = await storageApi.downloadFile(downloadRequest);
fs.writeFileSync(localOutputPath, fileStream);
console.log(`All annotations removed. Clean file saved to ${localOutputPath}`);
})();
注意: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパスや設定値を実際の環境に合わせて更新し、必要な依存関係がすべて正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント を参照するか、サポートチーム にお問い合わせください。
cURL を使用した REST API で PDF アノテーションを削除する
以下は、GroupDocs.Annotation Cloud の REST エンドポイントを使用して同じ注釈削除ワークフローを実行する cURL コマンドです。
# 1. Obtain an access token
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
-H "Content-Type: application/json" \
-d "{\"client_id\":\"YOUR_CLIENT_ID\",\"client_secret\":\"YOUR_CLIENT_SECRET\"}"
# 2. Upload the source PDF
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/pdf" \
--data-binary "@input.pdf"
# 3. アノテーション ID の取得
curl -X GET "https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# 4. Delete all retrieved annotations
curl -X DELETE "https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"annotationIds\":[\"id1\",\"id2\"]}"
# 5. Download the cleaned PDF
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.pdf
エンドポイントとパラメータの完全な一覧については、公式 API ドキュメントをご覧ください。
REST と Node.JS で PDF からアノテーション オブジェクトを削除する方法
認証設定 -
ConfigurationクラスはclientIdとclientSecretを使用してインスタンス化され、以降のすべての API 呼び出しに対する認証済みコンテキストを作成します。const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);ファイルアップロード -
UploadFileRequestはローカル PDF バイト列を GroupDocs Cloud ストレージに送信します。storageApi.uploadFileメソッドが転送を処理します。const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({ path: remoteFilePath, file: fileBytes }); await storageApi.uploadFile(uploadRequest);アノテーションの取得 -
GetAnnotationsRequestはFileInfo参照を含むリクエストオブジェクトを構築します。annotationsApi.getAnnotations呼び出しはアノテーションオブジェクトのコレクションを返し、そこから ID が抽出されます。const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({ fileInfo: fileInfo }); const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);アノテーションの削除 - ID が存在する場合、
DeleteAnnotationsRequestが設定されannotationsApi.deleteAnnotationsに渡され、保存された PDF からアノテーションが永久に削除されます。const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({ fileInfo: fileInfo, annotationIds: annotationIds }); await annotationsApi.deleteAnnotations(deleteRequest);クリーンな PDF のダウンロード - 最後に、
DownloadFileRequestが更新されたファイルを取得し、fs.writeFileSyncがローカルファイルシステムに書き込みます。const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({ path: remoteFilePath }); const fileStream = await storageApi.downloadFile(downloadRequest); fs.writeFileSync(localOutputPath, fileStream);
クラスとメソッドの詳細な定義については、API リファレンス を参照してください。
インストールと構成 GroupDocs.Annotation Cloud SDK for Node.js
SDK は npm パッケージとして配布されています。以下のコマンドでインストールし、プロジェクトで require してください。
npm install groupdocs-annotation-cloud
最新のパッケージは、GitHub リリースページ または公式の ダウンロード URL から直接ダウンロードできます。
インストール後、ライブラリをインポートし、コード例に示すように構成オブジェクトを作成します。
const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
const config = new GroupDocsAnnotationCloud.Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
実行環境が Node.js のバージョン要件を満たしていること、そしてクライアント認証情報を取得するために有効な GroupDocs アカウントを持っていることを確認してください。
アノテーション削除オプションと設定
SDK は調整できる複数のパラメータを提供しています:
- clientId / clientSecret - OAuth認証のためのクレデンシャルです。
Configurationコンストラクタで設定します。 - fileInfo.filePath - GroupDocs Cloud ストレージ内の PDF のパスです。別のフォルダーにファイルを保存している場合はこれを調整してください。
- annotationIds -
GetAnnotationsが返す ID の配列です。サブセットを指定することで選択的に削除できます。
リクエストタイムアウトやプロキシ構成などの追加設定は SDK ドキュメントで利用可能です。完全な一覧については、公式ドキュメントをご覧ください。
REST を使用した PDF アノテーションの削除に関するベストプラクティス
- アノテーションIDの検証 - 削除しようとしているIDが存在するか常に確認してください;存在しないIDを削除しようとすると404エラーが発生する可能性があります。
- HTTPSを使用 - 認証情報とドキュメントデータを保護するため、すべてのAPI呼び出しはHTTPSで行う必要があります。
- チャンクアップロードで大容量ファイルを処理 - 100 MBを超えるPDFの場合、タイムアウトを回避するためにマルチパートアップロードエンドポイントを使用することを推奨します。
- APIレスポンスのログ記録 - 監査トレイルとトラブルシューティングを容易にするため、リクエストIDとレスポンスを保存してください。
- アクセストークンの再利用 - 認証オーバーヘッドを削減するため、OAuthトークンが期限切れになるまでキャッシュしてください。
よくある質問
GroupDocs.Annotation Cloud API の認証方法は?
GroupDocs アカウントからクライアント ID とシークレットを取得し、OAuth エンドポイントを介してアクセストークンをリクエストします。詳細は 公式ドキュメント をご覧ください。特定のアノテーションだけを削除できますか?
はい、削除したいアノテーションの ID を DeleteAnnotationsRequest に指定してください。SDK は GetAnnotations 呼び出しの後にアノテーション ID のリストを返します。Node.JS の REST で PDF から Annotation オブジェクトを削除するにはどうすればよいですか?
GroupDocs.Annotation Cloud SDK for Node.js を使用して、アノテーション ID を取得した後に DeleteAnnotations エンドポイントを呼び出します。このガイドのコード例と cURL セクションでフルワークフローが示されています。本番使用にはどのようなライセンスが必要ですか?
本番環境では有料ライセンスが必要です。評価中は一時ライセンスページから取得できます。
