Автоматизація перетворення структурованих даних у відшліфовані документи є часто потрібною для бекенд‑сервісів. 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.

  1. Отримати токен доступу
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"
  1. Завантажте шаблон 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"
  1. Завантажте файл даних 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"
  1. Імпорт 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
         }'
  1. Конвертувати робочий зошит у 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"
  1. Завантажте згенерований 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.

  • Чи є спосіб протестувати процес, не впливаючи на дані продакшн?
    Ви можете скористатися тимчасовою ліцензією, розміщеною на сторінці тимчасової ліцензії, щоб запустити код у непродакшн середовищі.

Read More