أتمتة تحويل البيانات المهيكلة إلى مستندات مصقولة هي حاجة متكررة لخدمات الخلفية. Aspose.Cells Cloud SDK for Node.js يتيح للمطورين العمل مع دفاتر Excel وتحويلها إلى صيغ مختلفة عبر واجهة REST API قوية. في هذا الدليل ستتعلم كيفية استيراد بيانات XML إلى PDF باستخدام SDK، مع تغطية كل شيء من المصادقة إلى تحميل الملفات، وتعيين XML، وإنشاء PDF.

المتطلبات والإعداد

قبل أن تبدأ، تأكد من أن لديك ما يلي:

  • Node.js 14 أو أعلى مثبت على جهازك.
  • حساب Aspose Cloud مع client ID وclient secret.
  • الوصول إلى طرفية أو بيئة تطوير متكاملة (IDE) حيث يمكنك تشغيل سكريبتات Node.js.

قم بتثبيت Aspose.Cells Cloud SDK for 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.

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

فيما يلي سير عمل يعتمد على 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‑specific مثل حجم الصفحة والاتجاه وجودة الصورة عن طريق تمرير كائن PdfSaveOptions إلى طريقة saveWorkbook. راجع مرجع API للحصول على القائمة الكاملة للخيارات المتاحة.

الخلاصة

باتباعك لهذا البرنامج التعليمي، لديك الآن حل كامل استيراد بيانات XML إلى PDF باستخدام Aspose.Cells Cloud SDK for Node.js. يجمع النهج بين استدعاءات SDK المباشرة وأوامر cURL الاختيارية، مما يمنحك المرونة سواء كنت تفضّل تنفيذ كامل على Node.js أو تكامل REST خفيف. تذكّر تأمين بيانات اعتماد العميل الخاصة بك والنظر في تطبيق ترخيص مؤقت أو مدفوع لأعباء العمل الإنتاجية. يمكنك الحصول على ترخيص مؤقت من صفحة الترخيص المؤقت واستكشاف خيارات التسعير على صفحة المنتج. برمجة سعيدة!

الأسئلة المتكررة

  • كيف يعمل استيراد بيانات XML إلى PDF باستخدام Aspose.Cells Cloud SDK for Node.js؟
    يقوم SDK بتحميل قالب Excel وملف XML إلى Aspose Cloud storage، ويربط بيانات XML بورقة العمل، ثم يحفظ المصنف كملف PDF. راجع Aspose.Cells Cloud SDK for Node.js للحصول على مراجع API التفصيلية.

  • هل يمكنني تخصيص مخرجات PDF عند استيراد بيانات XML إلى PDF؟
    نعم، طريقة saveWorkbook تقبل خيارات محددة للنسق مثل اتجاه الصفحة وجودة الصورة ومستوى الضغط. قم بتعديل هذه الإعدادات في حمولة الطلب كما هو موضح في مرجع API.

  • ما طريقة المصادقة المطلوبة لاستدعاءات REST؟
    يجب أن تتضمن جميع الطلبات رمز وصول OAuth 2.0 يتم الحصول عليه من نقطة مصادقة Aspose Cloud. استخدم معرف العميل والسر الخاص بالعميل لطلب رمز قبل استدعاء أي واجهة برمجة تطبيقات.

  • هل هناك طريقة لاختبار العملية دون التأثير على بيانات الإنتاج؟
    يمكنك استخدام الترخيص المؤقت المتوفر في صفحة الترخيص المؤقت لتشغيل الكود في بيئة غير إنتاجية.

اقرأ المزيد