كيفية إدراج أرقام صفحات مخصصة ابتداءً من الصفحة الثانية باستخدام طريقة ONLYOFFICE API الجديدة
تعد وحدات الماكرو في ONLYOFFICE أدوات قوية تسمح للمستخدمين بتوسيع وظائف المحررين وتخصيصها لتلبية احتياجات محددة. في ONLYOFFICE، نحن ملتزمون بالتحسين المستمر لمنتجاتنا بميزات جديدة. مع إصدار النسخة 8.3، قدمنا مجموعة واسعة من طرق API الجديدة المصممة لتبسيط سير عملك. في منشور المدونة هذا، سنستخدم إحدى هذه الطرق لإنشاء ماكرو يقوم بإدراج أرقام صفحات مخصصة عبر المستند بأكمله، بدءًا من الصفحة الثانية.
حول طريقة SetStartPageNumber
تعد طريقة SetStartPageNumber جزءًا من فئة ApiSection تتيح لك هذه الطريقة الجديدة تحديد رقم صفحة البداية لقسم معين في المستند. فيما يلي مثال على تنفيذه:
let doc = Api.GetDocument();
let paragraph = doc.GetElement(0);
paragraph.AddText("This section starts with second page number");
paragraph.AddPageBreak();
paragraph.AddText("Third page");
paragraph.AddPageBreak();
paragraph.AddText("Fourth page");
let section = paragraph.GetSection();
section.SetStartPageNumber(2);
let header = section.GetHeader("default", true);
paragraph = header.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();
let footer = section.GetFooter("default", true);
paragraph = footer.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();
لاحقًا في منشور المدونة هذا، سنستخدم هذه الطريقة لتعيين رقم صفحة البداية للصفحة الثانية من المستند.
بناء الماكرو
استرجاع المستند والأقسام
يبدأ الماكرو بالوصول إلى المستند النشط باستخدام Api.GetDocument().
ثم يسترجع القسم الأول باستخدام doc.GetSections()[0]، والذي يمثل الصفحة الأولى:
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];
تكوين الصفحة الأولى
// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
- SetTitlePage(true) تحدد الصفحة الأولى كصفحة عنوان.
- RemoveHeader(“title”) و RemoveFooter(“title”) تضمنان عدم ظهور أي رؤوس أو تذييلات على صفحة العنوان.
إعداد الصفحات اللاحقة
// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1
- يمثل المتغير finalSection القسم الذي سيتم فيه تطبيق الرؤوس والتذييلات وترقيم الصفحات.
- SetStartPageNumber(0) تضمن أن الترقيم يبدأ بشكل صحيح من الصفحة الثانية، مما يجعل الصفحة الأولى المرقمة هي “1”.
تكوين الرأس
// Header Configuration
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();
// Choose header justification (uncomment one):
//headerText.SetJc("left"); // Left alignment
headerText.SetJc("center"); // Center alignment
//headerText.SetJc("right"); // Right alignment
- GetHeader(“default”, true) يسترجع رأسًا للقسم.
- يتم الوصول إلى العنصر الأول في الرأس باستخدام GetElement(0).
- AddPageNumber() تدرج رقم صفحة ديناميكيًا.
- تحدد طريقة SetJc() محاذاة نص الرأس، ووضعه في اليسار أو الوسط أو اليمين.
تكوين التذييل
// Footer Configuration - uncomment for inserting a page number in the footer
let footer = finalSection.GetFooter("default", true);
const footerText = footer.GetElement(0);
footerText.AddPageNumber();
// Choose footer justification (uncomment one):
// footerText.SetJc("left"); // Left alignment
footerText.SetJc("center"); // Center alignment
// footerText.SetJc("right"); // Right alignment
- GetFooter(“default”, true) يسترجع تذييلًا للقسم.
- يتم الوصول إلى العنصر الأول في التذييل باستخدام GetElement(0).
- AddPageNumber() تدرج رقم صفحة ديناميكيًا في التذييل.
- تتحكم طريقة SetJc() في محاذاة نص التذييل، على غرار الرأس.
ملاحظة! بشكل افتراضي، يتم تعليق تكوين التذييل. يمكنك التبديل بين إدراج الترقيم في الرأس أو التذييل أو كليهما ببساطة عن طريق إلغاء التعليق أو تعليق الأقسام ذات الصلة.
الماكرو بأكمله هو التالي:
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];
// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1
// Header Configuration
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();
// Choose header justification (uncomment one):
//headerText.SetJc("left"); // Left alignment
headerText.SetJc("center"); // Center alignment
//headerText.SetJc("right"); // Right alignment
// Footer Configuration - uncomment for inserting a page number in the footer
// let footer = finalSection.GetFooter("default", true);
// const footerText = footer.GetElement(0);
// footerText.AddPageNumber();
// Choose footer justification (uncomment one):
// footerText.SetJc("left"); // Left alignment
// footerText.SetJc("center"); // Center alignment
// footerText.SetJc("right"); // Right alignment
دعونا نشغل الماكرو الخاص بنا ونرى كيف يعمل!
نأمل أن يصبح هذا الماكرو إضافة قيمة إلى مجموعة أدواتك، مما يساعدك على تبسيط سير عملك. في ONLYOFFICE، نحن ملتزمون بتزويد مستخدمينا بوظائف متعددة الاستخدامات والمرونة لتكييفها مع احتياجاتهم الخاصة.
الإصدار الأخير، قدمنا مجموعة كبيرة من الطرق الجديدة لمكتبة API الخاصة بنا. نحن نشجعك على استكشاف هذه التحسينات وإنشاء وحدات الماكرو الخاصة بك. إذا كان لديك أي أسئلة أو اقتراحات، فلا تتردد في التواصل معنا. حظًا سعيدًا في مساعيك الاستكشافية!
روابط مفيدة
ONLYOFFICE ١. أنشئ حسابك المجاني من
،٢. قم بعرض و تحرير أو التعاون على المستندات، الجداول ، العروض التقديمية