Η αυτοματοποίηση της μετατροπής δομημένων δεδομένων σε επαγγελματικά έγγραφα είναι μια συχνή ανάγκη για υπηρεσίες backend. 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 για 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);

Βήμα 2: Ορισμός βοηθητικής συνάρτησης για μεταφόρτωση αρχείου

Δημιουργήστε μια επαναχρησιμοποιήσιμη συνάρτηση που ανεβάζει ένα τοπικό αρχείο στην αποθήκη Aspose Cloud.

async function uploadFile(localFilePath, remoteFileName) {
    const fileContent = fs.readFileSync(localFilePath);
    await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}

Βήμα 3: Μεταφόρτωση Φύλλου Εργασίας και Αρχείων XML

Ανεβάστε το πρότυπο Excel και το αρχείο δεδομένων XML στον φάκελο Temp στην αποθήκευση cloud.

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 for Node.js;
    Το SDK ανεβάζει το πρότυπο Excel και το αρχείο XML στο Aspose Cloud storage, αντιστοιχίζει τα δεδομένα XML σε ένα φύλλο εργασίας και στη συνέχεια αποθηκεύει το βιβλίο εργασίας ως PDF. Δείτε το Aspose.Cells Cloud SDK for Node.js για λεπτομερείς αναφορές API.

  • Μπορώ να προσαρμόσω την έξοδο PDF όταν χρησιμοποιώ εισαγωγή δεδομένων XML σε PDF;
    Ναι, η μέθοδος saveWorkbook δέχεται επιλογές ειδικές για μορφή, όπως προσανατολισμός σελίδας, ποιότητα εικόνας και επίπεδο συμπίεσης. Ρυθμίστε αυτές τις ρυθμίσεις στο payload του αιτήματος όπως περιγράφεται στην αναφορά API.

  • Ποια μέθοδος ελέγχου ταυτότητας απαιτείται για τις κλήσεις REST;
    Όλες οι αιτήσεις πρέπει να περιλαμβάνουν ένα διακριτικό πρόσβασης OAuth 2.0 που λαμβάνεται από το σημείο ελέγχου ταυτότητας Aspose Cloud. Χρησιμοποιήστε το client ID και το client secret για να ζητήσετε ένα διακριτικό πριν καλέσετε οποιοδήποτε API.

  • Υπάρχει τρόπος να δοκιμάσετε τη διαδικασία χωρίς να επηρεάσετε τα δεδομένα παραγωγής;
    Μπορείτε να χρησιμοποιήσετε την προσωρινή άδεια που παρέχεται στη σελίδα προσωρινής άδειας για να εκτελέσετε τον κώδικα σε περιβάλλον μη‑παραγωγής.

Διαβάστε περισσότερα