Автоматизація перетворення структурованих даних у відшліфовані документи є часто потрібною для бекенд‑сервісів. Aspose.Cells Cloud SDK for Node.js дозволяє розробникам працювати з Excel‑книгами та конвертувати їх у різні формати за допомогою потужного REST API. У цьому посібнику ви дізнаєтеся, як імпортувати дані XML у PDF за допомогою SDK, охоплюючи все від автентифікації до завантаження файлів, мапінгу XML та генерації PDF.
Вимоги та налаштування
Перш ніж розпочати, переконайтеся, що у вас є наступне:
- Node.js 14 або вище, встановлений на вашому комп’ютері.
- Обліковий запис Aspose Cloud з ідентифікатором клієнта та секретом клієнта.
- Доступ до терміналу або IDE, де ви можете запускати скрипти Node.js.
Встановіть Aspose.Cells Cloud SDK для Node.js:
npm install asposecellscloud
Далі налаштуйте свої облікові дані автентифікації. Наведений нижче фрагмент взято безпосередньо з референсної реалізації:
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);
Ви також повинні завантажити пакет SDK з офіційної сторінки випуску: Aspose.Cells Cloud SDK for Node.js Download. З передумовами на місці, ми можемо перейти до фактичної реалізації.
Імпорт даних XML у PDF у Node.js: покроковий посібник
Крок 1: Завантажте необхідні модулі та створіть API‑клієнт
Спочатку імпортуйте необхідні модулі та створіть екземпляр API‑клієнта.
const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);
Крок 2: Визначте допоміжну функцію для завантаження файлів
Створіть багаторазову функцію, яка завантажує локальний файл у Aspose Cloud storage.
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
Крок 3: Завантаження робочої книги та XML‑файлів
Завантажте шаблон Excel та файл даних XML у папку Temp у хмарному сховищі.
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
Крок 4: Імпорт даних XML у лист
Змапуйте файл XML на цільовий лист. Це є ядром процесу імпорт даних XML у PDF.
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
Крок 5: Перетворити оновлену робочу книгу у PDF і завантажити
Нарешті збережіть робочу книгу у форматі PDF і отримайте файл.
const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);
Після завершення цих кроків XML‑дані успішно імпортовано, і отриманий PDF готовий до використання.
Повний приклад коду: імпорт даних XML у PDF з докладними коментарями
Наступний код демонструє повний процес від початку до кінця.
const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');
// ---- Configuration ---------------------------------------------------------
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);
// ---- File definitions -------------------------------------------------------
const localFolder = __dirname;
const remoteFolder = 'Temp'; // folder in Aspose Cloud storage
const workbookName = 'template.xlsx'; // existing workbook template
const xmlDataName = 'data.xml'; // XML file containing data
const outputPdfName = 'result.pdf'; // final PDF name
// ---- Helper functions -------------------------------------------------------
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
async function importXml() {
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
}
async function convertToPdf() {
const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);
}
// ---- Main execution ---------------------------------------------------------
(async () => {
try {
// Upload required files to Aspose Cloud storage
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
// Import XML data into the workbook
await importXml();
// Convert the updated workbook to PDF and download locally
await convertToPdf();
console.log('XML data imported and PDF generated successfully.');
} catch (err) {
console.error('Error:', err.response ? err.response.text : err.message);
}
})();
Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності правильно встановлені, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь‑якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.
Перетворення XML у PDF за допомогою cURL та REST API
Нижче наведено робочий процес на основі cURL, який виконує ті ж операції без написання коду Node.js.
- Отримати токен доступу
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Завантажте шаблон Excel
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/template.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@template.xlsx"
- Завантажте файл даних XML
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/data.xml" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@data.xml"
- Імпорт XML у робочий лист
curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/worksheets/Sheet1/importxml" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"xmlFile": "Temp/data.xml",
"xmlMapIndex": 0,
"importDataOnly": true,
"importDataOnlySpecified": true
}'
- Конвертувати робочий зошит у PDF
curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/save?format=pdf&outPath=Temp/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
- Завантажте згенерований PDF
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Для повного списку параметрів та додаткових опцій, перегляньте довідку API.
Тонке налаштування параметрів XML у PDF
Операція імпорту пропонує кілька прапорців, які дозволяють вам контролювати, як об’єднуються дані XML:
- importDataOnly - Коли встановлено
true, імпортуються лише рядки даних, залишаючи існуюче форматування без змін. - importDataOnlySpecified - Має бути встановлено
trueразом зimportDataOnlyдля активації цієї опції. - xmlMapIndex - Вибирає, яка XML‑карта (якщо визначено кілька) має бути використана для імпорту.
Ці параметри вже продемонстровані в об’єкті importXmlRequest, який використовувався раніше:
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
Ви також можете налаштувати специфічні для PDF параметри, такі як розмір сторінки, орієнтація та якість зображення, передаючи об’єкт PdfSaveOptions у метод saveWorkbook. Дивіться довідка API для повного списку доступних параметрів.
Висновок
Дотримуючись цього посібника, ви тепер маєте повне рішення для імпорт XML даних у PDF за допомогою Aspose.Cells Cloud SDK for Node.js. Підхід поєднує прості виклики SDK з необов’язковими командами cURL, надаючи вам гнучкість, чи то повноцінна реалізація на Node.js, чи легка інтеграція REST. Пам’ятайте про захист своїх клієнтських облікових даних і розгляньте можливість використання тимчасової або платної ліцензії для виробничих навантажень. Ви можете отримати тимчасову ліцензію на сторінці тимчасової ліцензії та ознайомитися з варіантами ціноутворення на сторінці продукту. Щасливого кодування!
Часті запитання
-
Як працює імпорт даних XML у PDF за допомогою Aspose.Cells Cloud SDK для Node.js?
SDK завантажує ваш шаблон Excel та файл XML у сховище Aspose Cloud, відображає дані XML на листі, а потім зберігає робочу книгу у форматі PDF. Дивіться Aspose.Cells Cloud SDK for Node.js для детальних довідок API. -
Чи можу я налаштувати вихідний PDF при імпорті XML‑даних у PDF?
Так, методsaveWorkbookприймає параметри, специфічні для формату, такі як орієнтація сторінки, якість зображення та рівень стиснення. Налаштуйте ці параметри у навантаженні запиту, як описано в довідка API. -
Який метод автентифікації потрібен для REST‑викликів?
Усі запити повинні містити токен доступу OAuth 2.0, отриманий з кінцевої точки автентифікації Aspose Cloud. Використайте ваш client ID та client secret, щоб запросити токен перед викликом будь‑якого API. -
Чи є спосіб протестувати процес, не впливаючи на дані продакшн?
Ви можете скористатися тимчасовою ліцензією, розміщеною на сторінці тимчасової ліцензії, щоб запустити код у непродакшн середовищі.