اتوماتیک‌سازی تبدیل داده‌های ساختاریافته به اسناد صیقلی یک نیاز مکرر برای سرویس‌های بک‌اند است. Aspose.Cells Cloud SDK for Node.js به توسعه‌دهندگان امکان کار با کتاب‌کارهای Excel و تبدیل آن‌ها به فرمت‌های مختلف را از طریق یک REST API قدرتمند می‌دهد. در این راهنما خواهید آموخت که چگونه با استفاده از SDK داده‌های XML را به PDF وارد کنید، که تمام مراحل از احراز هویت تا بارگذاری فایل، نگاشت XML و تولید PDF را پوشش می‌دهد.

پیش‌نیازها و راه‌اندازی

قبل از شروع، مطمئن شوید که موارد زیر را دارید:

  • Node.js 14 یا بالاتر بر روی دستگاه شما نصب شده باشد.
  • یک حساب Aspose Cloud با client ID و client secret.
  • دسترسی به یک ترمینال یا 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 دانلود. با داشتن پیش‌نیازها، می‌توانیم به پیاده‌سازی واقعی برویم.

وارد کردن داده‌های 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);

گام ۲: تعریف تابع کمکی برای بارگذاری فایل

یک تابع قابل استفاده مجدد ایجاد کنید که یک فایل محلی را به ذخیره‌سازی Aspose Cloud بارگذاری می‌کند.

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 را بر روی کاربرگ هدف نگاشت کنید. این بخش اصلی جریان کاری import XML data to 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 - باید همراه با importDataOnly به true تنظیم شود تا گزینه فعال شود.
  • 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 ذخیره می‌نماید. برای مرجع‌های دقیق API، به Aspose.Cells Cloud SDK for Node.js مراجعه کنید.

  • آیا می‌توانم خروجی PDF را هنگام استفاده از وارد کردن داده‌های XML به PDF سفارشی کنم؟
    بله، متد saveWorkbook گزینه‌های خاص فرمت مانند جهت صفحه، کیفیت تصویر و سطح فشرده‌سازی را می‌پذیرد. این تنظیمات را در payload درخواست همان‌طور که در API reference توضیح داده شده است، تنظیم کنید.

  • کدام روش احراز هویت برای تماس‌های REST مورد نیاز است؟
    تمام درخواست‌ها باید شامل یک توکن دسترسی OAuth 2.0 باشد که از نقطه انتهای احراز هویت Aspose Cloud دریافت شده است. قبل از فراخوانی هر API، از client ID و client secret خود برای درخواست توکن استفاده کنید.

  • آیا راهی برای تست فرآیند بدون تأثیر بر داده‌های تولیدی وجود دارد؟
    می‌توانید از مجوز موقت ارائه‌شده در صفحه مجوز موقت برای اجرای کد در محیط غیرتولیدی استفاده کنید.

بیشتر بخوانید