PDF ファイルを DOCX 形式に変換することは、ドキュメント中心のアプリケーションを構築する際に頻繁に求められる要件であり、特に編集可能な Word 出力が必要な場合に重要です。 GroupDocs.Conversion Cloud SDK for Node.js は、このタスクをシンプルかつスケーラブルに実行できる堅牢な API を提供します。本ガイドでは、完全な非同期コードサンプルを確認し、cURL REST 呼び出しで同じ結果を得る方法を学び、SDK の設定方法と信頼性の高い変換のためのベストプラクティスを適用します。
完全なコード例:Node.JSでの非同期PDFからDOCXへの変換
この例では、GroupDocs.Conversion Cloud SDK for Node.js を使用して、非同期の PDF から DOCX への変換を実行する方法を示します。
// PDF to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const path = require('path');
// -------------------- Configuration --------------------
const CLIENT_ID = process.env.GROUPDOCS_CLIENT_ID || 'YOUR_CLIENT_ID';
const CLIENT_SECRET = process.env.GROUPDOCS_CLIENT_SECRET || 'YOUR_CLIENT_SECRET';
// Initialize API client
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient = new GroupDocsConversionCloud.ApiClient();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
// -------------------- Conversion Logic --------------------
async function convertPdfToDocx() {
try {
// Input file information (must already be uploaded to GroupDocs Cloud storage)
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf'); // generic path in cloud storage
// DOCX specific conversion options (optional, shown for demonstration)
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true; // keep original PDF layout as much as possible
docxOptions.password = null; // if PDF is password protected, set it here
// Build conversion request
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx'); // result will be stored in cloud storage
convertRequest.options = docxOptions; // attach format‑specific options
// Perform conversion (async)
const conversionResult = await apiInstance.convertDocument(convertRequest);
// conversionResult contains the path of the generated file and other metadata
console.log('Conversion succeeded.');
console.log('Output file path:', conversionResult.path);
console.log('File size (bytes):', conversionResult.size);
} catch (error) {
// Detailed error handling
if (error.response && error.response.body) {
console.error('API error:', error.response.body);
} else {
console.error('Unexpected error:', error.message);
}
}
}
// -------------------- Execution --------------------
(async () => {
// Optional: set a timeout to avoid hanging indefinitely
const timeoutMs = 300000; // 5 minutes
const timeout = setTimeout(() => {
console.error('Conversion timed out after', timeoutMs / 1000, 'seconds');
process.exit(1);
}, timeoutMs);
await convertPdfToDocx();
clearTimeout(timeout);
// Graceful shutdown
process.exit(0);
})();
注意: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパス(
input.pdf、output.docxなど)を実際の場所に合わせて更新し、必要なすべての依存関係がインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント を参照するか、サポートチーム にお問い合わせください。
cURL と REST API を使用したドキュメントの変換
コードを書かずに、GroupDocs.Conversion Cloud の REST エンドポイントを直接呼び出すことで、同じ PDF から DOCX への変換を実現できます。以下の手順では、アクセストークンの取得、PDF のアップロード、変換の開始、そして変換後の DOCX ファイルのダウンロード方法を示します。
- 認証してアクセストークンを取得する
YOUR_CLIENT_IDとYOUR_CLIENT_SECRETをあなたの認証情報に置き換えてください。
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type":"client_credentials",
"client_id":"YOUR_CLIENT_ID",
"client_secret":"YOUR_CLIENT_SECRET"
}'
レスポンスには、後続の呼び出しで使用する access_token が含まれています。
- ソース PDF をアップロード
curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/pdf" \
--data-binary @./local/input.pdf
- 変換を実行する
curl -X POST "https://api.groupdocs.cloud/v1.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"format":"docx",
"fileInfo":{"filePath":"input.pdf"},
"outputPath":"output.docx",
"options":{"preserveOriginalFormatting":true}
}'
レスポンスは生成された DOCX ファイルのパスを返します。
- 変換された DOCX をダウンロード
curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o ./local/output.docx
リクエスト ペイロードや追加オプションの詳細については、公式 API ドキュメントをご覧ください。
Node.JSでPDFからDOCXへの変換を分解する
以下は、非同期コードサンプルの主要部分の簡潔な手順解説です。
- クライアントのインポートと構成
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
ConversionApi クラス (API reference) は、すべての変換操作のエントリーポイントです。
- 認証資格情報を設定
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
JWT 認証はクラウドサービスへの各リクエストを保護します。
- 入力ファイル情報を準備する
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf');
FileInfo は、API にソース PDF が GroupDocs Cloud ストレージのどこにあるかを伝えます。
- DOCX固有のオプションを構成する
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true;
DocxConvertOptions を使用すると、元のレイアウトを保持し、必要に応じてパスワードを処理できます。
- 変換リクエストの作成と送信
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx');
convertRequest.options = docxOptions;
const conversionResult = await apiInstance.convertDocument(convertRequest);
convertDocument メソッドは実際の変換を実行し、出力パスやファイルサイズなどのメタデータを返します。
Node.JS 用 GroupDocs.Conversion Cloud SDK のインストールと構成
- パッケージをインストールする
npm install groupdocs-conversion-cloud
このパッケージはパブリック npm レジストリから入手できます。バージョンの詳細については、ダウンロードページをご覧ください。
前提条件
- Node.js 12 以上。
- クライアント ID とクライアント シークレットを持つ GroupDocs Cloud アカウント。
プロジェクトで SDK を初期化する (完全な例からの抜粋)
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
リージョン エンドポイントを使用する場合は、basePath を調整してください。
高性能ドキュメント変換のベストプラクティス
- APIクライアントを再利用 各変換ごとに新しいインスタンスを作成する代わりに、認証オーバーヘッドを削減します。
- ストリーミングアップロードを有効化 大きなPDFの場合、ファイル全体をメモリに読み込むのを防ぎます。
- 適切なタイムアウトを設定 (例: 5分) ハングするジョブを防ぎつつ、複雑なドキュメントが完了できるようにします。
- 必要な場合にのみ元の書式を保持; 無効にすると、テキストのみのシンプルなPDFの変換が高速化されます。
- API使用量の制限を監視 GroupDocsアカウントのダッシュボードでバッチ操作中のスロットリングを回避します。
結論
GroupDocs.Conversion Cloud SDK for Node.js は、フル機能のライブラリを使用する場合でも、cURL を使用した直接の REST 呼び出しを行う場合でも、PDF から DOCX への変換をシンプルに実行できます。非同期コードサンプルに従い、クライアントを正しく構成し、上記のパフォーマンスヒントを適用することで、任意の Node.JS サービスに信頼性の高いドキュメント変換を統合できます。製品ページで価格の詳細を確認し、本番環境で使用するための適切なライセンスを取得することを忘れないでください。また、評価目的で一時ライセンスは一時ライセンスページから取得できます。
よくある質問
Node.JS の PDF から DOCX への変換は複雑なレイアウトをどのように処理しますか?
SDK はデフォルトで元の書式設定を保持しようとします。DocxConvertOptionsのpreserveOriginalFormattingを切り替えることで、忠実度と速度をトレードオフできます。すべてのオプションについては、API リファレンス を参照してください。PDF から DOCX への変換におけるファイルサイズの制限は何ですか?
クラウドサービスは無料アカウントの場合、最大 200 MB のファイルを受け付けます。より大きなファイルはプランのアップグレードが必要です。アップロードはストリーミングされるため、サーバー側のメモリ使用量は低く抑えられます。複数のPDFを1つのリクエストでDOCXに変換できますか?
APIはリクエストごとに1つのドキュメントを処理しますが、Node.JSでファイルのリストをループし、並列で変換を実行することができ、アカウントの同時実行制限を遵守します。有料ライセンスなしでローカルで変換をテストする方法はありますか?
はい、一時ライセンスページから一時評価ライセンスをリクエストできます。これにより、開発およびテスト用にフル機能が提供されます。
