Dinamik Word Sənədləri Yaratmaq üçün JavaScript API
Node.js və Brauzer əsaslı tətbiqlərlə Dinamik Word Sənədləri Yaratmaq üçün Açıq Mənbə JavaScript Kitabxanası.
Docx-templates nədir?
Docx-Templates, proqram təminatı inkişaf etdiricilərinə əvvəlcədən təyin edilmiş şablonlardan istifadə edərək dinamik Microsoft Word (.docx) sənədləri yaratmağa imkan verən açıq mənbəli JavaScript kitabxanasıdır. Word sənədlərini proqram vasitəsilə əl ilə yaratmaq əvəzinə, inkişaf etdiricilər Microsoft Word-də şablonlar dizayn edə və yerləşdirilmiş əmrlərlə dinamik məlumatları daxil edə bilərlər. Bu kitabxana həm Node.js, həm də brauzer mühitində işləyir, bu da müasir veb və server‑tərəfli tətbiqlər üçün onu çox yönlü edir. O, DOCX fayllarını onların daxili XML strukturu üzrə təhlil edərək və şablon əmrlərini icra zamanı faktiki məlumatlarla əvəz edərək emal edir.
Docx-Templates kitabxanası həm Node.js, həm də brauzer mühitləri üçün nəzərdə tutulmuş güclü, açıq mənbəli bir vasitədir. Kitabxananın əsas üstünlüyü dizayn və məntiqin ayrılmasıdır. Texniki olmayan istifadəçilər Word-də tərtibat və stil dizayn edə bilərlər, proqramçılar isə məlumatların daxil edilməsinə fokuslanırlar. Bu, döngülər, şərti formatlaşdırma kimi mürəkkəb məntiqi və hətta sənəd daxilində JavaScript parçacıklarının icrasını dəstəkləyir. Bu, XML və ya proprietar dizayn alətləri ilə mübarizə aparmadan yüksək dəqiqlikli hesabatlar yaratmaq lazım olan proqramçılar üçün ideal həll edir.
Docx-templates ilə Başlanğıc
Tövsiyə olunan Docx-templates kitabxanasını quraşdırma yolu npm vasitəsilədir. Zəhmət olmasa, problemsiz quraşdırma üçün aşağıdakı əmri istifadə edin
Docx-Templates-i NPM vasitəsilə quraşdırın
$ npm install docx-templates Docx-Templates-i Yarn vasitəsilə quraşdırın/strong>
$ yarn add docx-templates JS API vasitəsilə Şablon-əsaslı Sənəd Yaratma
Açıq mənbəli Docx-Templates kitabxanası proqram təminatı inkişaf etdiricilərinə Word-də sənədlər dizayn etməyə və sadə əmrlərlə dinamik olaraq məlumatları daxil etməyə imkan verir. Bu yanaşma təqdimatı məntiqdən ayırır, şablonları kodu dəyişdirmədən idarə etmək və yeniləmək asan olur. Məlumat obyektinizin xüsusiyyətlərinə birbaşa daxil ola bilərsiniz və ya sadə ifadələri işlədə bilərsiniz. Məsələn, tam adı daxil etmək üçün şablonunuz belə görünəcək: {firstName} {surname}. Kitabxana kodu qiymətləndirir və problemsiz şəkildə əvəz edir.
JavaScript tətbiqlərində Word sənədlərini dinamik olaraq necə yaratmaq olar?
import createReport from 'docx-templates';
import fs from 'fs';
const template = fs.readFileSync('template.docx');
const report = await createReport({
template,
data: { name: 'John', surname: 'Doe' },
});
fs.writeFileSync('output.docx', report);
JavaScript vasitəsilə Dinamik Şəkil İnjektsiyası
Mətnin xaricində, açıq mənbəli Docx-Templates kitabxanası şəkilləri anında daxil edə bilir. Bu, yerli faylları, URL-dən gələn şəkilləri və ya proqram vasitəsilə yaradılmış QR kodlarını əhatə edir. Şəklin ölçüsünü və yerləşdirilməsini idarə edə bilərsiniz. Bu xüsusiyyət, identifikasiya nişanları, məhsul kataloqları və ya dinamik qrafiklər və vizual sübutlar tələb edən hesabatlar yaratmaq üçün oyun dəyişdiricidir. Budur, JavaScript API vasitəsilə Word sənədlərinə şəkil əlavə etməyi göstərən sadə bir nümunə.
JavaScript API vasitəsilə Word sənədlərinə sürətli şəkildə şəkil necə əlavə etmək olar?
const buffer = await createReport({
template,
data: {
userAvatar: async () => {
const resp = await fetch('https://example.com/photo.png');
return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
}
},
});
// In Word: {IMAGE userAvatar()}
Güclü Döngülər (FOR/END-FOR)
Veri siyahılarını idarə etmək FOR əmri ilə problemsizdir. Bu xüsusiyyət sizə massivlər üzərində iterasiya edərək cədvəl sətirləri, siyahılar və ya hətta sənədin tam bölmələrini yaratmağa imkan verir. Docx-Templates kitabxanası iç-içə döngülərə dəstək əlavə edib, bu da sizə bölmələrin öz işçiləri ilə birlikdə bir siyahısı kimi mürəkkəb iyerarxik məlumat strukturlarını təqdim etməyə imkan verir, bütün bunlar orijinal Word stilini qoruyaraq. Aşağıdakı kod nümunəsi bunun necə əldə ediləcəyini göstərir.
JavaScript tətbiqlərində inkişaf etmiş döngü necə tətbiq etmək olar?
const buffer = await createReport({
template,
data: {
projects: [
{ name: 'SEO Optimization', status: 'Completed' },
{ name: 'API Integration', status: 'In Progress' }
]
},
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/
Xüsusi JavaScript Konteksti (EXEC)
Docx-Templates kitabxanasının ən inkişaf etmiş xüsusiyyətlərindən biri EXEC (və ya !) əmri ilə istənilən JavaScript parçalarını işlətmək qabiliyyətidir. əlavə bir additionalJsContext təqdim edərək, şablona xüsusi köməkçi funksiyalar əlavə edə bilərsiniz. Bu, şablona hesablamalar aparmağa, tarixləri formatlaşdırmağa və ya sətirləri daxili olaraq manipulyasiya etməyə imkan verir, əsas tətbiq məntiqinizdə hər bir məlumatı əvvəlcədən emal etməyə ehtiyac qalmır.