التحويل إلى تنسيق الصفحة الثابتة

Aspose.Words تنفذ محرك تخطيط الصفحة الخاصة بها. قبل الخوض في مواصفاتها، من المفيد أولا مناقشة الوثيقة على مستوى عال. عند التفكير في مستند، يتخيل المستخدمون عادة عددا من الأوراق الورقية التي تحتوي على كلمات وصور وجداول ومخططات. يمكن أن تكون المستندات من أنواع مختلفة، مثل النصوص وجداول البيانات والشرائح والرسومات CAD والمخططات الانسيابية، وبالتالي يمكن أن يكون لها تخطيطات مختلفة بشكل أساسي. تسمح معظم التطبيقات بإرسال المستندات إلى الطابعة ؛ هذا هو الوقت الذي يمكن فيه للمستخدم عرض المظهر النهائي المقصود للمستند.

عرض مستند في تطبيقات مختلفة

تسمح تطبيقات عرض المستندات أو النشر المختلفة للمستخدمين بفتح (Adobe Acrobat، XPS عارض)، وأحيانا تحرير (أدوبي InDesign) مستندات بتنسيقات محددة. تنتج هذه التطبيقات عادة ما يسمى بمستندات تنسيق “الصفحة الثابتة”. يصف تنسيق المستند هذا بدقة مكان وضع محتوى المستند في كل صفحة. داخليا، يحتوي تنسيق PDF أو XPS على وصف لكل صفحة، بالإضافة إلى تعليمات الرسم، مع تحديد تخطيط المحتوى على الصفحة. هذا مشابه لتنسيقات الصور، حيث يصف مكان عرض المحتوى إما في شكل نقطي أو متجه.

في المقابل، لا تدعم بعض تطبيقات تحرير النص عرض صفحات المستند. على سبيل المثال، Microsoft المفكرة يدعم وظائف قليلة جدا بخلاف مجرد عرض وتحرير وطباعة النص. الملاحظة المهمة هنا هي أن مثل هذه التطبيقات لا يمكنها عرض صفحات المستند ولا إخبار المستخدم بعدد الصفحات التي ستتم طباعتها، مما يسمح فقط بعرض محتوى المستند. يمكن حفظ المستند بتنسيق نص عادي ويمكن فتحه بواسطة العديد من التطبيقات الأخرى. باستخدام تطبيق يسمح بعرض المحتوى الثنائي لملف تعسفي، يمكن للمرء أن يرى ما يتم تخزينه في ملف المستند – إنه مجرد نص عادي، ولا يوجد شيء آخر فيه.

قليلا أكثر تطورا تطبيقات تحرير النص، مثل Microsoft Wordالوسادة، حفظ المستند بتنسيق نص منسق (RTF)، والذي يدعم المزيد من وظائف التنسيق، مثل إدراج الصور وتنسيق الأحرف وهوامش الفقرة والتباعد. ومع ذلك، يحتوي تنسيق RTF أيضا على محتوى المستند فقط، ولا يحتوي على معلومات حول الصفحات.

Microsoft Word هو تطبيق تحرير النص الأكثر تقدما في Windows اليوم. يقوم بتنسيق الملفات بتنسيق DOCX، والذي يصف محتوى المستند بمرونة وعلى نطاق واسع، مما يسمح للمستخدمين بتحديد حجم الصفحة واتجاهها لقسم المستند، وكونه تطبيقا WYSIWYG حتى يعرض صفحات المستند على الشاشة. ومع ذلك، لا توجد حتى الآن معلومات حول كيفية عرض محتوى المستند على الصفحات المتوفرة في ملف المستند. يصف ملف المستند المحتوى نفسه فقط، وعلاقة كائنات المستند ببعضها البعض، إلى جانب بعض القيود الهندسية. نتيجة لذلك، قبل عرض مستند ،Microsoft Word يحسب تلك المعلومات نفسها. هذا هو المكان الذي يأتي تخطيط الصفحة في اللعب.

ما هو تخطيط الصفحة

تخطيط صفحة المستند هو بنية بيانات تصف مكان وجود كائن معين في الصفحات لجميع كائنات المستند. بالإضافة إلى ذلك، نظرا لأن الكائنات لها خصائص تؤثر على مظهرها، مثل حجم الخط أو تأثيرات التظليل أو الرسم، فأنت لا تحتاج فقط إلى معرفة مكان الكائن، ولكن أيضا ما هي المنطقة (المناطق) من الصفحة التي يشغلها، وما إذا كان سيتم تطبيقه على صفحات متعددة بحيث لا تتداخل الكائنات الأخرى مع نفس المنطقة (المناطق).

Aspose.Words ينفذ وظيفة تخطيط الصفحة داخليا مما يمكنها من إنتاج جميع تنسيقات الصفحات الثابتة، مثل PDF و XPS وتنسيقات الصور المختلفة. بدون تخطيط الصفحة، لن تكون المعلومات المخزنة في ملف مستند الصفحة الثابتة متاحة ولن يتم دعم جميع هذه التنسيقات.

العلاقة بين المستند وتخطيط الصفحة بسيطة للغاية. بينما يصف المستند المحتوى، يصف تخطيط الصفحة المقابل هندسة هذا المحتوى. لاحظ أن تخطيط الصفحة لا يمكن أن يوجد بدون مستند لأنه لن يكون هناك محتوى لحساب الهندسة، ولكن يمكن أن يوجد مستند بدون تخطيط صفحة. على سبيل المثال، عندما يتم تحويل مستند DOCX إلى مستند RTF، فمن غير الضروري عادة معرفة الشكل الهندسي، حيث لا يقوم أي من التنسيقين بتخزينه.

إنشاء تخطيط الصفحة

يمكن أن يكون إنشاء تخطيط الصفحة إجراء مكلفا، سواء من حيث السرعة أو الذاكرة. هذا يرجع إلى عدة أسباب:

  • قد يحتوي المستند على كمية كبيرة من المحتوى، والتي قد تحتاج إلى عرضها على آلاف الصفحات. يجب وصف هندسة كل كائن في كل صفحة، مما يستهلك موارد الذاكرة.
  • قد تحتوي الوثيقة على العديد من القواعد، مما يضع قيودا على الهندسة. قد يتم إنفاق وقت حسابي كبير، مما يضمن تلبية كل قيد.
  • تقوم بعض ميزات المستند، على سبيل المثال، حقل NUMPAGES، بإنشاء تبعيات متكررة لقيم الخصائص المستقبلية، والتي لا تتوفر في وقت الحساب. هذا يؤدي إلى حسابات متكررة ويضيف في وقت الحساب.

نظرا للأسباب المذكورة أعلاه، ستنشئ Aspose.Words تخطيط صفحة فقط عندما يكون ذلك ضروريا. قد يكون السبب النموذجي لذلك هو طلب عرض صفحات المستند أو الحصول على قيمة حقل تعتمد على المعلومات المتاحة في تخطيط الصفحة. قد يكون السبب الأقل وضوحا هو تصدير مستند إلى HTML. على الرغم من أن HTML ليس تنسيق صفحة ثابتة ولا يصف هندسة كائنات المحتوى، إلا أنه لا يزال يدعم الصور. قد تكون هذه الصور في شكل أشكال تم إنشاؤها في Microsoft Word مع نص بداخلها. على سبيل المثال، يمكن تصدير مخطط مع تسميات المحور إلى HTML كصورة، ولكن قبل أن يتم ذلك Aspose.Words يحتاج إلى عرض تلك الصورة، وبالتالي يحتاج إلى معرفة مكان عرض التسمية. انظر مثال الرسم البياني أدناه:

converting-to-fixed-page-format-aspose-words-

خصائص غير هندسية

بالإضافة إلى التعامل مع المعلومات الهندسية، فإن تخطيط الصفحة مسؤول أيضا عن حساب الألوان وأنماط الحدود. في Microsoft Word، يمكن تحديد لون النص تلقائيا، مما يعني أن اختيار اللون يجب أن يعتمد على لون التظليل للخلية أو الفقرة، أو بناء على لون الصفحة، حيث يظهر النص.

يحسب تخطيط الصفحة مكان ظهور النص والمحتوى الذي سيتم عرضه خلفه، مما يتيح حساب اللون. هناك حسابات محددة أخرى يقوم بها تخطيط الصفحة. على سبيل المثال، يعتمد الحد الأفقي في الجدول على ما إذا كان صف الجدول هو الأخير في عمود النص، وما إذا كان مقسما عبر الأعمدة. إذا تم عرض صف آخر في عمود، فسيتم استخدام الحد السفلي بدلا من الأفقي.

non_geometric_properties_aspose-words-java

في Aspose.Words، يمكن للمستخدم طلب إنشاء تخطيط صفحة جديد أو تحديث تخطيط موجود. يمكن تنفيذ كلاهما بواسطة طريقة UpdatePageLayout، التي توفرها فئة Document. إذا لم يكن تخطيط الصفحة موجودا، ولكن هناك حاجة إليه (على سبيل المثال، عندما يتم تصدير المستند إلى تنسيق صفحة ثابتة)، فسيقوم Aspose.Words باستدعاء هذه الطريقة تلقائيا. ومع ذلك، إذا كان تخطيط الصفحة موجودا بالفعل، فسيستخدم Aspose.Words المخطط الحالي، لتجنب استهلاك الموارد اللازمة لتحديثه. في هذه الحالة، يحتاج المستخدم إلى استدعاء طريقة UpdatePageLayout، للتأكد من أن تخطيط الصفحة محدث مع نموذج المستند.

هيكل ديناميكي

تتكون عملية إنشاء تخطيط الصفحة من الخطوات التالية:

  • Conversion - تعداد محتوى نموذج المستند وإعداد كائنات التخطيط المقابلة.
  • Build - ترتيب كائنات التخطيط لتمثيل محتوى المستند على الصفحات.
  • Reflow - تحديث ترتيب الكائنات لتلبية قيود الهندسة.
  • Projecting layout objects into fixed page presentation and finalizing color information.
  • Building and reflowing of shape content - خطوة مطلوبة إذا كان المستند يحتوي على أشكال ذات محتوى نصي متداخل.

ملاحظة، أن تخطيط الصفحة هو بنية ديناميكية، والتي يمكن إعادة بنائها جزئيا. هذا مطلوب بشكل خاص عندما يكون من المستحيل حساب قيم الحقل دون إعادة بناء بنية تخطيط المستند. يمكن للحقل الرجوع إلى موقع كائن على الصفحة، وفي نفس الوقت يتم عرض قيمة الحقل نفسها أيضا على الصفحة، مما يؤثر على موقع الكائن المشار إليه. لا يمكن إنشاء تخطيط الصفحة دفعة واحدة، لأن قيم الحقول قد لا تكون متاحة بعد في وقت تحديد الموضع على الصفحة.

ضع في اعتبارك السيناريو النموذجي عندما يظهر الحقل NUMPAGES في تذييل الصفحة الأولى في المستند. قيمة هذا الحقل هي العدد الإجمالي للصفحات. من أجل وضع الحقل على الصفحة، يجب معرفة قيمته. إذا تم إنشاء الصفحة الأولى فقط حاليا، فإن العدد الإجمالي للصفحات غير معروف بعد. في هذه الحالة، يجب أن يستخدم تخطيط الصفحة القيمة الافتراضية ثم يعود لاحقا إلى هذا الحقل ويغير قيمته وفقا للحسابات الفعلية. ومع ذلك، قد يؤثر تغيير قيمة الحقل على محتوى مستند آخر على الصفحة ويؤدي في النهاية إلى إلحاق صفحة جديدة أو إزالة صفحة موجودة، مما يجعل القيمة المحسوبة قديمة. يمكن حل هذه المشكلة عن طريق تمكين تحديث تخطيط الصفحة الحالي.

عند إنشاء تخطيط، من الممكن أيضا إعداد خصائص LayoutOptions التي تؤثر على إخراج المستند على الصفحات.

الحفظ في تنسيق الصفحة الثابتة

بعد بناء تخطيط الصفحة وحساب هندسة الكائنات وموقعها على الصفحة، يمكن حفظ المستند بتنسيق صفحة ثابتة مدعوم بـ Aspose.Words. عند حفظ المستندات بتنسيقات الصفحات الثابتة، يمكن استخدام خيارات العرض الشائعة لجميع هذه التنسيقات. أنها تسمح للسيطرة:

يوضح المثال أدناه كيفية حفظ مستند بتنسيق JPEG باستخدام طريقة Save وخيارات العرض: