Преобразование насыщенных страниц HTML в редактируемые файлы DOCX часто требуется в процессах создания отчетов и автоматизации документов. GroupDocs.Conversion Cloud SDK for Node.js позволяет разработчикам выполнять это преобразование полностью через REST‑ориентированную библиотеку. В этом руководстве вы увидите, как настроить SDK, написать код Node.JS, который выполняет конвертацию HTML в DOCX в Node.JS, использовать cURL для вызова API и применить параметры конфигурации для получения оптимальных результатов.
Требования и настройка
Прежде чем начать, убедитесь, что у вас есть следующее:
- Node.js 14 или более поздней версии, установленный на вашей машине разработки.
- Активный аккаунт GroupDocs.Conversion Cloud (вы можете зарегистрироваться для бесплатного пробного периода на странице продукта).
- Ваш Client ID и Client Secret из панели управления GroupDocs Cloud.
- Подключение к Интернету для вызова облачного REST API.
Установите SDK через npm:
npm install groupdocs-conversion-cloud
Скачайте последнюю версию пакета и просмотрите исходный код на GitHub, если вам нужно изучить код:
Скачать GroupDocs.Conversion Cloud SDK for Node.js
После установки SDK и подготовки учетных данных вы можете перейти к реализации.
Преобразование HTML в DOCX в Node.JS: пошаговое руководство
Ниже представлен краткий пошаговый обзор, показывающий каждый логический шаг. Полный исходный код будет предоставлен позже.
Шаг 1: Инициализировать клиент Conversion API
Создайте экземпляр ConversionApi и настройте аутентификацию.
const { ConversionApi, Configuration } = require('groupdocs-conversion-cloud');
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
const conversionApi = new ConversionApi(config);
Шаг 2: Загрузите исходный HTML‑файл
Загрузите HTML‑файл, который вы хотите конвертировать. API возвращает идентификатор файла, который вы будете использовать для конвертации.
const fs = require('fs');
const path = require('path');
const htmlPath = path.resolve(__dirname, 'sample.html');
const fileBytes = fs.readFileSync(htmlPath);
const uploadResponse = await conversionApi.uploadFile({
file: fileBytes,
fileName: 'sample.html'
});
const sourceFileId = uploadResponse.id;
Шаг 3: Установите параметры конвертации
Настройте любые параметры, специфичные для DOCX, такие как встраивание шрифтов или установка полей страницы. Этот шаг демонстрирует настройку Генерация DOCX из HTML.
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'A4',
marginTop: 20,
marginBottom: 20,
marginLeft: 15,
marginRight: 15
}
};
Шаг 4: Выполнить преобразование
Вызовите метод convert с идентификатором исходного файла и настройками, определенными выше.
const convertResponse = await conversionApi.convert({
fileId: sourceFileId,
convertSettings: convertSettings
});
const docxFileId = convertResponse.id;
Шаг 5: Скачайте полученный DOCX
Получите сгенерированный файл DOCX и сохраните его локально.
const docxData = await conversionApi.downloadFile({ fileId: docxFileId });
fs.writeFileSync(path.resolve(__dirname, 'output.docx'), docxData);
console.log('DOCX file saved as output.docx');
Приведённые выше шаги иллюстрируют полный конвертирование HTML в DOCX в Node.JS рабочий процесс с использованием GroupDocs.Conversion Cloud SDK.
Полный пример кода: генерация DOCX из HTML‑контента
Следующая программа собирает все части вместе в один исполняемый скрипт.
// Full working example for HTML to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js
const { ConversionApi, Configuration } = require('groupdocs-conversion-cloud');
const fs = require('fs');
const path = require('path');
async function convertHtmlToDocx() {
// 1. Configure the API client
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
const conversionApi = new ConversionApi(config);
// 2. Read the HTML file
const htmlPath = path.resolve(__dirname, 'sample.html');
const htmlBytes = fs.readFileSync(htmlPath);
// 3. Upload the HTML file
const uploadResult = await conversionApi.uploadFile({
file: htmlBytes,
fileName: 'sample.html'
});
const sourceFileId = uploadResult.id;
// 4. Define conversion settings
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'A4',
marginTop: 20,
marginBottom: 20,
marginLeft: 15,
marginRight: 15
}
};
// 5. Perform the conversion
const convertResult = await conversionApi.convert({
fileId: sourceFileId,
convertSettings: convertSettings
});
const docxFileId = convertResult.id;
// 6. Download the DOCX file
const docxBytes = await conversionApi.downloadFile({ fileId: docxFileId });
const outputPath = path.resolve(__dirname, 'output.docx');
fs.writeFileSync(outputPath, docxBytes);
console.log(`Conversion successful. DOCX saved to ${outputPath}`);
}
// Execute the conversion
convertHtmlToDocx().catch(err => {
console.error('Conversion failed:', err);
});
Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили пути к файлам (
sample.html,output.docx), проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.
Выполнение конвертации с помощью cURL и REST API
Если вы предпочитаете работать напрямую с HTTP, следующие команды cURL выполняют то же преобразование.
- Получить токен доступа
Замените YOUR_CLIENT_ID и YOUR_CLIENT_SECRET вашими учетными данными.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
Ответ содержит access_token.
- Загрузите HTML‑файл
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/files/sample.html" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@sample.html"
- Начать конверсию
curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sourceFilePath": "sample.html",
"outputFilePath": "output.docx",
"outputFormat": "DOCX",
"options": {
"embedFonts": true,
"pageSize": "A4"
}
}'
- Скачать преобразованный DOCX
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/files/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.docx
Для полного списка параметров см. официальную документацию API.
Настройка параметров конвертации HTML‑контента в DOCX
SDK предоставляет несколько свойств, позволяющих точно настроить вывод:
- embedFonts - Встраивает все используемые шрифты в DOCX, обеспечивая визуальную точность.
- pageSize - Устанавливает размер страницы (
A4,Letterи т.д.). - marginTop / marginBottom / marginLeft / marginRight - Регулирует поля страницы в пунктах.
Пример применения этих параметров:
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'Letter',
marginTop: 30,
marginBottom: 30,
marginLeft: 20,
marginRight: 20
}
};
Обратитесь к классу ConversionOptions для полного списка.
Соображения по производительности при конвертации HTML‑контента в DOCX
При конвертации больших или сложных HTML‑документов учитывайте следующие рекомендации:
- Повторное использование клиента API - Создание нового экземпляра
ConversionApiдля каждого файла добавляет накладные расходы. - Потоковая передача больших HTML‑файлов - Вместо загрузки всего файла в память используйте потоки (
fs.createReadStream) и метод SDKuploadFileStream. - Ограничение встроенных ресурсов - Удалите ненужные изображения или скрипты из HTML перед загрузкой, чтобы сократить время обработки.
- Пакетные конвертации - Обрабатывайте файлы последовательно в цикле, но учитывайте ограничения скорости API, чтобы избежать throttling.
Применение этих практик помогает поддерживать низкую задержку и умеренное потребление памяти.
Заключение
Преобразование HTML в DOCX в Node.JS становится простым с помощью GroupDocs.Conversion Cloud SDK for Node.js. Следуя приведённым выше шагам, вы можете интегрировать надёжную генерацию DOCX из HTML в любое серверное приложение, настроить вывод и оптимизировать производительность для больших нагрузок. Не забудьте получить соответствующую лицензию для использования в продакшене; вы можете приобрести подписку или получить временную лицензию со страницы временной лицензии. Приятного кодинга!
Часто задаваемые вопросы
Как начать конвертацию HTML в DOCX в Node.JS?
Используйте SDK для создания клиента ConversionApi, загрузите ваш HTML‑файл, задайте необходимые параметры конвертации и вызовите метод convert. Процесс полностью асинхронный и возвращает идентификатор файла DOCX для загрузки.
Какие параметры я могу настроить для генерации DOCX из HTML?
ConversionOptions объект позволяет встраивать шрифты, выбирать размер страницы, задавать поля и управлять обработкой изображений. См. справка API для всех доступных настроек.
Могу ли я конвертировать HTML, содержащий внешние CSS или изображения?
Да. Загрузите все связанные ресурсы (CSS, изображения) в ту же папку хранилища перед началом конвертации, и SDK разрешит ссылки во время обработки.
Нужна ли лицензия для развертываний в продакшн?
Для продакшн‑окружения требуется действующая лицензия. Вы можете получить временную лицензию для тестирования со страницы временной лицензии и приобрести полную подписку, когда будете готовы к запуску.
