Yapılandırılmış verilerin şık belgelere dönüştürülmesini otomatikleştirmek, arka uç hizmetleri için sık bir ihtiyaçtır. Aspose.Cells Cloud SDK for Node.js geliştiricilerin Excel çalışma kitaplarıyla çalışmasını ve güçlü bir REST API aracılığıyla çeşitli formatlara dönüştürmesini sağlar. Bu rehberde SDK’yı kullanarak XML verilerini PDF‘ye aktar öğrenecek, kimlik doğrulamadan dosya yüklemeye, XML eşleştirmeye ve PDF oluşturulmasına kadar her şeyi kapsayacağız.
Önkoşullar ve Kurulum
Başlamadan önce, aşağıdakilere sahip olduğunuzdan emin olun:
- Node.js 14 ve üzeri makinenizde kurulu olmalıdır.
- Bir Aspose Cloud hesabı, istemci kimliği ve istemci gizli anahtarı ile.
- Node.js betiklerini çalıştırabileceğiniz bir terminal veya IDE’ye erişim.
Aspose.Cells Cloud SDK for Node.js’yi kurun:
npm install asposecellscloud
Sonra, kimlik doğrulama kimlik bilgilerinizi yapılandırın. Aşağıdaki snippet doğrudan referans uygulamasından alınmıştır:
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);
Ayrıca resmi sürüm sayfasından SDK paketini indirmeniz gerekir: Aspose.Cells Cloud SDK for Node.js Download. Gereksinimler sağlandığında, gerçek uygulamaya geçebiliriz.
Node.js’te XML Verilerini PDF’ye Aktarma: Adım Adım Kılavuz
Adım 1: Gerekli Modülleri Yükleyin ve API İstemcisini Oluşturun
İlk olarak, gerekli modülleri içe aktarın ve API istemcisini örnekleyin.
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);
Adım 2: Dosya Yükleme İçin Yardımcı Fonksiyonu Tanımla
Yerel bir dosyayı Aspose Cloud depolama alanına yükleyen yeniden kullanılabilir bir fonksiyon oluşturun.
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
Adım 3: Çalışma Kitabı ve XML Dosyalarını Yükleme
Excel şablonunu ve XML veri dosyasını bulut depolamadaki Temp klasörüne yükleyin.
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
Adım 4: XML Verilerini Çalışma Sayfasına Aktarın
XML dosyasını hedef çalışma sayfasına eşleyin. Bu, XML verilerini PDF’ye aktar iş akışının temelidir.
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
Adım 5: Güncellenmiş Çalışma Kitabını PDF’ye Dönüştür ve İndir
Son olarak, çalışma kitabını PDF olarak kaydedin ve dosyayı alın.
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);
Bu adımlar tamamlandığında, XML verileri başarıyla içe aktarılır ve ortaya çıkan PDF kullanıma hazırdır.
Tam Kod Örneği: XML Verilerini PDF’ye Aktarma ve Ayrıntılı Yorumlar
Aşağıdaki kod, tam uçtan uca süreci gösterir.
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);
}
})();
Not: Bu kod örneği temel işlevselliği gösterir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi belgelere başvurun veya destek ekibi ile iletişime geçin.
cURL ve REST API Kullanarak XML’den PDF’ye Dönüştürme
Aşağıda, herhangi bir Node.js kodu yazmadan aynı işlemleri gerçekleştiren cURL‑tabanlı bir iş akışı bulunmaktadır.
- Erişim belirteci alın
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 şablonunu yükleyin
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 veri dosyasını yükleyin
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’i çalışma sayfasına içe aktar
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
}'
- Çalışma kitabını PDF’ye dönüştür
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"
- Oluşturulan PDF’yi indirin
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Tam bir parametre listesi ve ek seçenekler için, API referansı inceleyin.
XML’den PDF’ye Seçenekleri İnce Ayarlama
İçe aktarma işlemi, XML verisinin nasıl birleştirileceğini kontrol etmenizi sağlayan çeşitli bayraklar sunar:
- importDataOnly -
trueolarak ayarlandığında, yalnızca veri satırları içe aktarılır ve mevcut biçimlendirme dokunulmaz şekilde bırakılır. - importDataOnlySpecified - Seçeneği etkinleştirmek için
importDataOnlyile birliktetrueolarak ayarlanmalıdır. - xmlMapIndex - İçe aktarım için kullanılacak XML haritasını (birden fazla tanımlıysa) seçer.
Bu seçenekler, daha önce kullanılan importXmlRequest nesnesinde zaten gösterilmiştir:
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
Ayrıca, saveWorkbook metoduna bir PdfSaveOptions nesnesi geçirerek sayfa boyutu, yönlendirme ve görüntü kalitesi gibi PDF‑özel ayarları da ayarlayabilirsiniz. Mevcut seçeneklerin tam listesi için API referansına bakın.
Sonuç
Bu öğreticiyi izleyerek, artık Aspose.Cells Cloud SDK for Node.js kullanarak XML verilerini PDF’ye aktarma için eksiksiz bir çözüme sahipsiniz. Yaklaşım, basit SDK çağrılarını isteğe bağlı cURL komutlarıyla birleştirerek, tam yığın Node.js uygulaması mı yoksa hafif bir REST entegrasyonu mu tercih ettiğinize bağlı olarak esneklik sağlar. İstemci kimlik bilgilerinizi güvence altına almayı ve üretim yükleri için geçici veya ücretli bir lisans uygulamayı düşünmeyi unutmayın. Geçici bir lisansı geçici lisans sayfasından edinebilir ve ürün sayfasında fiyatlandırma seçeneklerini inceleyebilirsiniz. Kodlamanın tadını çıkarın!
FAQs
-
XML verilerini PDF’ye aktarma Aspose.Cells Cloud SDK for Node.js ile nasıl çalışır?
SDK, Excel şablonunuzu ve XML dosyanızı Aspose Cloud depolama alanına yükler, XML verilerini bir çalışma sayfasına eşler ve ardından çalışma kitabını PDF olarak kaydeder. Ayrıntılı API referansları için Aspose.Cells Cloud SDK for Node.js adresine bakın. -
XML verisini PDF’ye aktarırken PDF çıktısını özelleştirebilir miyim?
Evet,saveWorkbookyöntemi sayfa yönelimi, görüntü kalitesi ve sıkıştırma seviyesi gibi format‑özel seçenekleri kabul eder. Bu ayarları, istek yükünde, API referansı adresinde açıklandığı gibi ayarlayın. -
REST çağrıları için hangi kimlik doğrulama yöntemi gereklidir?
Tüm istekler, Aspose Cloud kimlik doğrulama uç noktasından alınan bir OAuth 2.0 erişim belirtecini içermelidir. Herhangi bir API’yi çağırmadan önce bir belirteç talep etmek için istemci kimliğinizi ve istemci gizlinizi kullanın. -
Üretim verilerini etkilemeden süreci test etmenin bir yolu var mı?
Kodu üretim dışı bir ortamda çalıştırmak için geçici lisans sayfasında sağlanan geçici lisansı kullanabilirsiniz.