Конвертування PDF файлів у формат DOCX часто необхідне при створенні документ‑центрованих застосунків, особливо коли потрібен редагований Word‑вихід. GroupDocs.Conversion Cloud SDK for Node.js надає потужний API, який робить це завдання простим і масштабованим. У цьому посібнику ви побачите повний асинхронний приклад коду, дізнаєтеся, як досягти того ж результату за допомогою cURL REST‑запитів, налаштуєте SDK та застосуєте рекомендації кращих практик для надійних конвертацій.
Повний приклад коду: Асинхронне перетворення PDF у DOCX у Node.JS
Цей приклад демонструє, як виконати асинхронне перетворення PDF у DOCX за допомогою GroupDocs.Conversion Cloud SDK for Node.js.
// 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
Ви можете виконати таке ж перетворення PDF у DOCX без написання коду, викликавши REST‑інтерфейси GroupDocs.Conversion Cloud безпосередньо. Нижче наведені кроки, які показують, як отримати токен доступу, завантажити 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.
Розбір конвертації PDF у DOCX у Node.JS
Нижче наведено стислий огляд ключових частин асинхронного прикладу коду.
- Імпорт та налаштування клієнта
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 виконує фактичну конвертацію та повертає метадані, такі як шлях до вихідного файлу та розмір файлу.
Встановлення та налаштування GroupDocs.Conversion Cloud SDK for Node.JS
- Встановіть пакет
npm install groupdocs-conversion-cloud
Пакет доступний у публічному реєстрі npm. Дивіться сторінку завантаження для деталей версії.
Вимоги
- Node.js 12 або вище.
- Обліковий запис GroupDocs Cloud з client ID та client secret.
Ініціалізуйте 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 забезпечує просту конвертацію PDF у DOCX, незалежно від того, чи ви віддаєте перевагу повнофункціональній бібліотеці, чи прямим REST‑запитам за допомогою cURL. Дотримуючись асинхронного прикладу коду, правильно налаштовуючи клієнт і застосовуючи наведені вище поради щодо продуктивності, ви можете інтегрувати надійну конвертацію документів у будь‑який сервіс Node.JS. Пам’ятайте про необхідність отримання належної ліцензії для використання у продакшн‑середовищі; деталі ціноутворення доступні на сторінці продукту, а тимчасову ліцензію можна отримати зі сторінки тимчасової ліцензії для оцінки.
FAQs
Як конвертація PDF у DOCX у Node.JS обробляє складні макети?
SDK за замовчуванням намагається зберегти оригінальне форматування. Ви можете переключитиpreserveOriginalFormattingуDocxConvertOptions, щоб обміняти точність на швидкість. Дивіться API reference для всіх параметрів.Які обмеження щодо розміру файлу для конвертації PDF у DOCX?
Хмарний сервіс приймає файли розміром до 200 МБ для безкоштовних акаунтів; для більших файлів потрібен оновлений план. Завантаження передаються у потоковому режимі, тому використання пам’яті на вашому сервері залишається низьким.Чи можу я конвертувати кілька PDF у DOCX в одному запиті?
API обробляє один документ за запитом, але ви можете перебрати список файлів у Node.JS і виконувати конвертації паралельно, дотримуючись лімітів одночасності вашого облікового запису.Чи є спосіб протестувати конвертацію локально без платної ліцензії?
Так, ви можете запросити тимчасову оцінювальну ліцензію на сторінці сторінка тимчасової ліцензії. Це забезпечує повну функціональність для розробки та тестування.
