فراخوان جذب نیروی برنامهنویس جاوااسکریپت و Node.js برای افزودن قابلیت «ستونهای مرتبط» به پکیج pdfmake
ما به دنبال یک برنامهنویس باتجربه برای یک پروژه هستیم که هدف آن افزودن یک قابلیت به بستهی متنباز pdfmake
در NPM است.
بستهی pdfmake
در حال حاضر فاقد قابلیت ستونهای مرتبط است که در issue #604 به مدت زیادی درخواست شده است.
در پیادهسازی فعلی، زمانی که به pdfmake
یک document definition object دارای دو ستون بدهیم که دارای یک جدول طولانی در ستون اول خود باشد، به جای اینکه هنگام چاپ اطلاعات بر روی صفحات PDF و رسیدن به انتهای صفحه، مابقی اطلاعات به ستون بعدی در همان صفحه بروند (پیکان سبز در اسکرینشات)، به ستون اول صفحه بعدی میروند (پیکان قرمز در اسکرینشات).
این رفتار مطلوب نیست. به جای آن، هدف ما این است که گزینهای به این پکیج اضافه کنیم که با فعال کردن آن بشود جدولها و اطلاعات از ستون اول صفحه اول به ستون دوم همان صفحه ادامه یابد، سپس به ستون اول صفحه دوم و الی آخر.
برای درک عملی این موضوع، میتوانید با استفاده از نمونهی document definition پیوست در pdfmake
playground این رفتار را آزمایش کنید.
Sample Document Definition
var dd = {
content: [
{
columns: [
{
table: {
widths: ['*', '*'],
headerRows: 1,
body: [
['Col1', 'Col2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
['1', '2'],
],
},
},
{
table: {
widths: ['*', '*'],
body: [
['Col3', 'Col4'],
['3', '4'],
['3', '4'],
],
},
},
],
},
],
};
وظیفهی اصلی شما پیادهسازی ویژگی «ستونهای مرتبط» در pdfmake
است. ما به پیادهسازیهای همگن که با API موجود بسته همخوانی داشته باشند ارزش میدهیم. همچنین ما شما را تشویق میکنیم که پس از اتمام کار، برای پکیج اصلی یک PR ثبت کنید و کاملاً اعتبار کار خود را دریافت کنید. در واقع، راهحل شما باید چیزی باشد که بتواند issue ذکر شده را رسما ببندد و با پکیج ادغام شود.
راهحل شما نباید مثال ارائه شده یا هر دادهی ورودیای را مستقیماً تغییر دهد. به جای آن، باید API و عملکرد اصلی پکیج را گسترش دهد تا با هر ورودی معتبر pdfmake
(جدول، متن و غیره) به صورت dynamic کار کند. پیادهسازی شما باید الهام گرفته شده از منطق پردازش و چاپ اطلاعات در داخل پکیج pdfmake
و نحوهی جاری شدن مطالب طویل از یک صفحه به صفحه دیگر در این پکیج باشد، با این تفاوت که برای ستونهای داخل یک صفحه هم کار کند.
برای اطمینان از اینکه تا اینجا توضیحات کار را مطالعه کردهاید، لطفاً تاریخ کامل باز شدن issue مذکور را در پیام ارسالی خود ذکر کنید.
- تسلط به دستور زبان قدیمی JavaScript ES5.
- درک قوی از وراثت در JavaScript با استفاده از prototypes.
- درک برنامهنویسی شیءگرا یا OOP.
- آشنایی با ماژول fs (FileSystem) در Node.js و کار با فایل PDF.
- تجربه در ساخت پکیج NPM مفید است.
- کار قبلی با خود پکیج
pdfmake
یا وابستگی آنpdfkit
هم یک امتیاز است. - مشارکت قبلی در پروژههای متنباز بسیار مطلوب است.
- باید کار کردن با ابزار کنترل ورژن Git را بلد باشید.
- حداقل یک سال تجربهی کار حرفهای برنامهنویسی.
ما بیصبرانه مشتاق همکاری با افراد دارای مهارتهای فوق هستیم. در صورت تمایل، لطفاً جهت اپلای به بنده پیام بدهید.