نحوه ادغام فایل های Word با استفاده از NodeJS
ادغام فایل های Word برای برنامه هایی مانند اتوماسیون اسناد ضروری است، جایی که چندین گزارش، پیشنهاد یا فرم باید در یک سند واحد ادغام شوند.
سیستم های مدیریت محتوا نیز برای ترکیب اسناد برای ویرایش مشترک یا آرشیو بر این قابلیت تکیه می کنند.
Node.js انتخاب خوبی برای چنین کارهایی است زیرا از عملیات سمت سرور و سمت سرویس گیرنده پشتیبانی می کند و امکان مدیریت کارآمد اسناد در محیط های مختلف را فراهم می کند.
در این آموزش، نحوه ادغام اسناد Word با استفاده ازبرنامه های کاربردی وب توسعه یافته در Node.js را توضیح خواهم داد.
پیش نیازها
Node.js و npm – مطمئن شوید که هر دو برای مدیریت وابستگی ها نصب شده اند.
کتابخانه ها - کتابخانه های زیر مورد نیاز است:
docx-merger
برای ادغام فایل های Word در سمت سرور.
mammoth
برای تبدیل .docx
به HTML، مفید برای ادغام سمت مشتری.
html-docx-js
(یا یک کتابخانه مشابه) برای تبدیل HTML به .docx
.
روش 1: ادغام سمت سرور با استفاده از docx-merger
docx-merger
یک کتابخانه تخصصی Node.js است که برای ادغام چندین فایل .docx
با ترکیب مستقیم محتوای آنها از جمله متن، جداول و سایر عناصر مشترک در یک سند منسجم طراحی شده است. این به ویژه زمانی مفید است که نیاز به حفظ ساختار و قالب بندی اصلی در اسناد ادغام شده دارید.
در اینجا نحوه کار ادغام docx و دلیل موثر بودن آن برای ادغام سمت سرور آورده شده است:
ادغام مستقیم عناصر .docx
: docx-merger
ساختار XML زیرین هر فایل .docx
را می خواند و آنها را در سطح سند ترکیب می کند. این طرح، سبک ها، سرصفحه ها، پاورقی ها و حتی ساختارهای پیچیده مانند جداول و تصاویر را حفظ می کند، پس خروجی ظاهر فایل های اصلی را حفظ می کند.
گزینه های ادغام قابل تنظیم : کتابخانه انعطاف پذیری در ادغام ارائه می دهد. میتوانید تعیین کنید که آیا کل اسناد ترکیب شوند یا بخشهای خاص به صورت انتخابی ادغام شوند. این به ویژه برای مواردی مفید است که فقط بخشهایی از اسناد باید ادغام شوند، مانند ضمیمه کردن خلاصهها، گفت ن صفحات عنوان، یا ترکیب بخشهایی از چندین گزارش.
مدیریت اشیاء جاسازی شده : docx-merger
از عناصر جاسازی شده مانند تصاویر، اشکال و رسانه های دیگر پشتیبانی می کند. هنگام ادغام، این اشیاء را حفظ می کند و اطمینان حاصل می کند که عناصر بصری در خروجی گم نمی شوند یا تحریف نمی شوند. این برای گزارشها، ارائهها و سایر اسنادی که گرافیک نقش مهمی دارد، بسیار مهم است.
API ساده شده برای ادغام : API برای docx-merger
ساده است و ترکیب آن را در برنامه های Node.js آسان می کند. شما کتابخانه را با اسنادی که می خواهید ادغام کنید مقداردهی اولیه می کنید، هر گزینه ادغام را پیکربندی می کنید و سپس نتیجه را به عنوان یک فایل .docx
خارج می کنید. این سهولت استفاده، گفت ن ادغام اسناد را به گردش کار موجود، چه به عنوان یک اسکریپت مستقل و چه به عنوان بخشی از خط لوله پردازش اسناد بزرگتر، ساده می کند.
با استفاده از docx-merger
، میتوانید حجم زیادی از اسناد را با اطمینان از اینکه قالببندی و محتوای اصلی آنها حفظ میشود، به طور مؤثر ادغام کنید، و آن را به گزینهای ایدهآل برای پردازش اسناد سمت سرور در Node.js تبدیل میکند.
راه اندازی docx-merger
:
برای شروع، docx-merger
از طریق npm نصب کنید:
npm install docx-merger
این کتابخانه به هیچ راه اندازی اضافی غیر از نصب نیاز ندارد. پس از نصب، می توانید آن را وارد کرده و نمونه جدیدی را برای شروع ادغام فایل ها مقداردهی کنید.
با خواندن هر فایل .docx
به عنوان یک بافر، و سپس ترکیب آنها در یک فایل خروجی کار می کند.
ادغام فایل ها با docx-merger
:
مراحل زیر را برای ادغام فایلهای docx با استفاده از docx-merge
دنبال کنید:
ابتدا، fs
برای مدیریت خواندن فایل و docx-merger
برای ادغام وارد کنید.
docx-merger
با یک شی پیکربندی خالی و آرایه ای از بافرهای فایل برای ادغام، راه اندازی کنید.
از متد .save()
برای ادغام و ذخیره فایل به عنوان بافر استفاده کنید، سپس با استفاده از fs.writeFileSync()
آن را روی دیسک بنویسید.
مثال:
const fs = require ( 'fs' ); const DocxMerger = require ( 'docx-merger' ); const files = [fs.readFileSync( 'file1.docx' ), fs.readFileSync( 'file2.docx' )]; const docxMerger = new DocxMerger({}, files); docxMerger.save( 'nodebuffer' , ( data ) => { fs.writeFileSync( 'merged.docx' , data); });
این مثال file1.docx
و file2.docx
را به عنوان بافر می خواند، آنها را ادغام می کند و سند ادغام شده را به عنوان merged.docx
ذخیره می کند.
موارد استفاده برای ادغام سمت سرور:
ادغام سمت سرور با docx-merger
برای سناریوهایی که نیاز به پردازش یا اتوماسیون با حجم بالا دارند ایده آل است. به عنوان مثال:
پردازش دستهای اسناد : ادغام صورتحسابها، گزارشها یا سوابق برای مجموعه دادههای بزرگ را خودکار میکند.
گردش کار سند خودکار : ادغام بخش های مختلف یک سند از منابع مختلف برای گردش کار مانند تولید گزارش یا آرشیو.
خدمات Backend : در محیطهای سرور اجرا میشود که در آن کاربر به طور غیرمستقیم تعامل دارد، مانند ادغام اسناد از طریق یک API یا یک کار برنامهریزی شده باطن.
روش 2: ادغام سمت مشتری با تبدیل mammoth
و HTML
mammoth
یک کتابخانه Node.js است که فایلهای word را به HTML تبدیل میکند و آن را برای برنامههای سمت کلاینت که نیاز به دستکاری اسناد بلادرنگ دارند، ایدهآل میکند. این رویکرد به ویژه برای سناریوهایی مفید است که کاربران باید اسناد را قبل از صادرات مستقیماً در مرورگر ویرایش یا ترکیب کنند.
در اینجا چیزی است که mammoth
به یک ابزار قدرتمند برای مدیریت اسناد سمت مشتری تبدیل می کند:
وفاداری بالا – تبدیل .docx
به HTML: mammoth
محتوای .docx
را به HTML تمیز و معنایی ترجمه میکند و قالببندی ضروری مانند سرفصلها، پاراگرافها و فهرستها را حفظ میکند. این تضمین می کند که اسناد تبدیل شده ساختار اصلی خود را حفظ کرده و به راحتی در یک محیط وب قابل دستکاری هستند.
مدیریت تصویر جاسازی شده با Base64 – هنگامی که mammoth
با تصاویر جاسازی شده در یک فایل .docx
روبرو می شود، آنها را به عنوان Base64 رمزگذاری می کند و آنها را در تگ های <img>
در خروجی HTML قرار می دهد. این اجازه می دهد تا تصاویر به طور یکپارچه نمایش داده شوند، ادغام شوند یا در کنار متن دستکاری شوند و سند نهایی در هنگام صادرات مجدد به .docx
منسجم تر و از نظر بصری دقیق تر شود.
ویرایش پویا سند – از آنجایی که mammoth
HTML را خروجی میدهد، اضافه کردن یا تنظیم محتوای سند در سمت مشتری با استفاده از جاوا اسکریپت یا چارچوبهای سمت کلاینت آسان است. کاربران می توانند چند قطعه HTML را از فایل های .docx
مختلف ترکیب کنند، بخش ها را مجدداً مرتب کنند یا حتی محتوای جدید را به صورت پویا تزریق کنند، که برای برنامه هایی که نیاز به سفارشی سازی محتوای بلادرنگ دارند، ارزشمند است.
تبدیل بازگشت به .docx
با html-docx-js
– پس از ایجاد یا ویرایش یک سند در HTML، میتوانید آن را با استفاده از کتابخانههایی مانند html-docx-js
به فرمت .docx
. تبدیل کنید. این کتابخانه محتوای HTML ادغام شده را می گیرد و یک فایل .docx
قابل بارگیری تولید می کند و بازگرداندن سند نهایی به کاربر را در قالب اصلی آسان می کند.
استفاده از mammoth
برای ادغام سمت کلاینت، راه تعاملی و انعطاف پذیری را برای مدیریت محتوای سند در مرورگر ارائه می دهد، با ویژگی هایی که هم متن و هم تصاویر را پشتیبانی می کند. در ترکیب با html-docx-js
یا ابزاری مشابه، میتوانید برنامههای کاربردی قدرتمندی بسازید که به کاربران اجازه میدهد اسناد را در لحظه سفارشیسازی و ادغام کنند، سپس کار خود را بهعنوان فایلهای .docx
صادر کنند.
تبدیل .docx
به HTML با mammoth
ابتدا mammoth
نصب کنید:
npm install mammoth
پس از نصب، می توان از mammoth
برای تبدیل فایل های .docx
به HTML استفاده کرد، که امکان ادغام آسان محتوای سند، از جمله تصاویر، را با دستکاری خروجی HTML فراهم می کند.
کد مثال برای تبدیل فایل های .docx
به HTML:
import mammoth from 'mammoth' ; import fs from 'fs' ; async function convertDocxToHtml ( filePath ) { const result = await mammoth.convertToHtml({ path : filePath }); return result.value; } async function mergeHtmlFiles ( ) { const html1 = await convertDocxToHtml( 'file1.docx' ); const html2 = await convertDocxToHtml( 'file2.docx' ); const mergedHtml = html1 + html2; return mergedHtml; } const mergedHtmlContent = await mergeHtmlFiles();
در این مثال، convertDocxToHtml
یک فایل .docx
را می خواند و آن را به فرمت HTML تبدیل می کند. mammoth
به طور خودکار هر تصویر موجود در سند را به URL های داده کدگذاری شده با Base64 تبدیل می کند، پس می توان آنها را ادغام کرد و در کنار متن نمایش داد.
ادغام HTML با تصاویر و تبدیل بازگشت به .docx
:
پس از ادغام محتوای HTML، از جمله هر تصویر کدگذاری شده با Base64، می توانید html-docx-js
برای تبدیل مجدد آن به قالب .docx
استفاده کنید. این فرآیند تضمین می کند که هم متن و هم تصاویر در خروجی نهایی حفظ می شوند.
html-docx-js
را نصب کنید :
npm install html-docx-js
سپس، از کتابخانه برای بسته بندی HTML ادغام شده و تبدیل آن به .docx
استفاده کنید:
import htmlDocx from 'html-docx-js' ; import fs from 'fs' ; const wrappedHtmlContent = < html > < body > ${mergedHtmlContent} </ body > </ html > ; const docxBuffer = htmlDocx.asBlob(wrappedHtmlContent); fs.writeFileSync( 'merged_with_images.docx' , docxBuffer);
در این کد، محتوای HTML ادغام شده، که حاوی متن و تصاویر است، در یک ساختار اولیه HTML پیچیده شده و سپس به htmlDocx.asBlob()
منتقل می شود. این تابع یک بافر .docx
تولید می کند که هم متن و هم تصاویر را حفظ می کند و سپس به عنوان یک فایل .docx
روی دیسک ذخیره می شود.
موارد استفاده برای مدیریت تصویر در ادغام سمت مشتری:
ادغام سمت کلاینت با mammoth
و html-docx-js
برای موارد زیر مفید است:
ویرایش بلادرنگ سند : برنامههای کاربردی تعاملی که در آن کاربران میتوانند فایلهای .docx
را مستقیماً در مرورگر آپلود، ادغام و دانلود کنند، همراه با تصاویر جاسازیشده.
پلتفرم های مشارکتی : ابزارهایی برای ایجاد اسناد مشترک، که در آن کاربران باید فایل های .docx
را ادغام کنند و تصاویر را دست نخورده نگه دارند.
تولیدکنندگان اسناد سفارشی : برنامههایی که اسناد را با متن و تصاویر از چندین فایل .docx
تولید میکنند، مانند گزارشهای سفارشیشده، که تضمین میکنند همه عناصر در خروجی نهایی حفظ میشوند.
این روش یک راه حل جامع برای ادغام اسناد سمت سرویس گیرنده ارائه می دهد که امکان مدیریت انعطاف پذیر محتوای غنی را در موارد استفاده مختلف فراهم می کند.
مدیریت خطا و بهترین روش ها
ادغام فایلهای Word میتواند چالشهای متعددی را ایجاد کند، به ویژه در مورد قالببندی و مدیریت خطا. در اینجا مسائل کلیدی به همراه نکات رسیدگی به خطا آورده شده است:
مسائل رایج و رسیدگی به خطاها
تناقضات چیدمان : تبدیل HTML ممکن است منجر به تفاوتهای قالببندی غیرمنتظره در هنگام تبدیل مجدد به .docx
شود.
تفاوتهای استایل : سبکهای سفارشی در .docx
ممکن است به درستی به HTML ترجمه نشوند، که منجر به اختلاف فونت و حاشیه میشود. همیشه تأیید کنید که هر فایل به درستی تبدیل شده است و برای به حداقل رساندن تناقضات، یک شیوه نامه ثابت اعمال کنید.
قالببندی تصویر : تصاویر کدگذاری شده با Base64 ممکن است به درستی در .docx
نهایی نمایش داده نشوند، مشابه چالشهایی که در ادغام فایلهای PDF وجود دارد. اطمینان حاصل کنید که همه تصاویر قبل از ادغام به درستی فرمت شده اند و مشکلات را در طول تبدیل تحلیل کنید.
بهترین شیوه ها
قالب بندی ثابت : سبک ها را در اسناد با استفاده از یک شیوه نامه از پیش تعریف شده عادی کنید تا ناسازگاری ها به حداقل برسد.
یکپارچگی داده : با تحلیل خروجی هر تبدیل، تأیید کنید که هر فایل به درستی خوانده و تبدیل شده است.
رمزگذاری و تحلیل فرمت : تأیید کنید که همه فایلها با فرمت .docx
مورد انتظار هستند و تصاویر Base64 به درستی قالببندی شدهاند تا از تبدیلهای موفق مطمئن شوید.
نتیجه گیری
دو روش برای ادغام فایلهای Word با Node.js - استفاده از docx-merger
برای ادغام سمت سرور و تبدیل mammoth
با HTML برای ادغام سمت مشتری - انعطافپذیری را برای موارد استفاده مختلف فراهم میکند:
ادغام سمت سرور (docx-merger):
ایده آل برای پردازش دسته ای و گردش کار خودکار.
مناسب برای ادغام اسناد با حجم بالا بدون تعامل کاربر.
به طور موثر با چارچوب هایی مانند Express.js و NestJS کار می کند و اجازه می دهد تا یکپارچه سازی یکپارچه در سرویس های پشتیبان برای پردازش چندین فایل انجام شود.
ادغام سمت مشتری (تبدیل ماموت و HTML):
بهترین گزینه برای برنامه های تعاملی و بلادرنگ که کاربران به طور مستقیم اسناد را دستکاری می کنند.
از ویرایش پویا و ترکیب اسناد در مرورگر پشتیبانی می کند.
با فریم ورک هایی مانند Astro.js، React یا Vue.js به خوبی کار می کند و ادغام نرم با برنامه های کاربردی وب مدرن را تسهیل می کند.
برای گسترش این قابلیت، مراحل زیر را در نظر بگیرید:
این روش ها را در یک برنامه کاربردی یا وب سرویس بزرگتر ادغام کنید که در آن کاربران می توانند اسناد را مستقیماً بارگذاری و ادغام کنند.
بهینه سازی عملکرد برای محیط های پر مصرف با کاوش:
ذخیره فایل برای کاهش پردازش اضافی.
بهینه سازی فرآیند تبدیل برای سرعت و کارایی.
تعادل بار برای پیاده سازی های سمت سرور برای رسیدگی به درخواست های متعدد.
با پیروی از بهترین شیوهها و اطمینان از مدیریت قوی خطا، میتوانید راهحلی قابل اعتماد و مقیاسپذیر برای ادغام فایلهای .docx
با Node.js ایجاد کنید.
ارسال نظر