غالبًا ما يكون تنسيق الخط المشطوب مطلوبًا للإشارة إلى الحذف أو التعديلات أو المهام المكتملة داخل المستندات المُنشأة. Conholdate.Total for Java يوفر مجموعة تطوير برامج قوية تتيح لك التعامل مع مستندات Word برمجيًا. في هذا الدليل ستتعلم كيفية إضافة نص مشطوب في Java، واستكشاف خيارات التكوين، ورؤية أفضل ممارسات الأداء، وتشغيل مثال كامل يمكنك تكييفه مع مشاريعك الخاصة.
قبل البدء: المتطلبات المسبقة والتثبيت
لمتابعة هذا البرنامج التعليمي تحتاج إلى:
- Java 17 أو أحدث مثبت على جهاز التطوير الخاص بك.
- Maven 3.6+ لإدارة التبعيات.
- بيئة تطوير متكاملة (IDE) مثل IntelliJ IDEA أو Eclipse.
أضف مستودع Maven الخاص بـ Conholdate واعتماد SDK إلى ملف pom.xml الخاص بك:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
قم بتنزيل أحدث ملفات SDK الثنائية من صفحة التنزيل إذا كنت تفضل إعدادًا يدويًا. بمجرد حل الاعتماد، تكون جاهزًا للبدء في الترميز. القسم التالي يشرح كل خطوة لإضافة نص مشطوب في Java.
دليل خطوة بخطوة لتطبيق النص المشطوب في Java
الخطوة 1: تحميل المستند المصدر
أولاً، أنشئ مثيلًا من Document. إذا كان ملف الإدخال موجودًا، يقوم SDK بتحميله؛ وإلا يتم إنشاء مستند فارغ جديد.
String inputPath = "input.docx";
Document doc;
File inputFile = new File(inputPath);
if (inputFile.exists()) {
doc = new Document(inputPath); // loads existing DOCX
} else {
doc = new Document(); // creates a new blank document
doc.removeAllChildren(); // ensure it's empty
}
تم توثيق فئة Document في مرجع API.
الخطوة 2: كتابة فقرة عادية
استخدم DocumentBuilder لإضافة فقرة عادية. يوضح ذلك أن النص العادي لا يتأثر بإعدادات الخط المشطوب.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");
الخطوة 3: تطبيق تنسيق النص المشطوب
قم بتمكين علامة الشطب على خط المُنشئ قبل كتابة النص المنسق.
builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false); // reset for subsequent text
الخطوة 4: البحث وتطبيق الشطب الشرطي
تكرار جميع كائنات Run، ابحث عن الكلمة “strike”، وطبق التنسيق برمجياً.
for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
String text = run.getText();
if (text != null && text.toLowerCase().contains("strike")) {
run.getFont().setStrikeThrough(true);
}
}
}
الخطوة 5: حفظ المستند
أخيرًا، احفظ المستند المعدل على القرص بتنسيق DOCX .
String outputPath = "output.docx";
doc.save(outputPath, SaveFormat.DOCX);
بعد حفظ المستند، يمكنك فتح output.docx للتحقق من ظهور تنسيق الخط المشطوب كما هو متوقع.
مثال عملي كامل لنص مشطوب Java
يعرض الكود التالي سير العمل الكامل لإضافة نص مشطوب في Java باستخدام Conholdate.Total.
import com.aspose.words.*;
import java.io.File;
public class StrikethroughExample {
public static void main(String[] args) {
String inputPath = "input.docx";
String outputPath = "output.docx";
Document doc = null;
try {
File inputFile = new File(inputPath);
if (inputFile.exists()) {
doc = new Document(inputPath);
} else {
doc = new Document();
doc.removeAllChildren();
}
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");
builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false);
for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
String text = run.getText();
if (text != null && text.toLowerCase().contains("strike")) {
run.getFont().setStrikeThrough(true);
}
}
}
doc.save(outputPath, SaveFormat.DOCX);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (doc != null) {
doc = null;
}
}
}
}
ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتتناسب مع بيئتك الفعلية، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.
ضبط دقيق لخيارات تنسيق الخط المشطوب
يتيح لك SDK التحكم في سمات الخط الإضافية مثل اللون والحجم وتسطير النص مع الحفاظ على تمكين علامة الشطب. على سبيل المثال، يمكنك تغيير لون النص المشطوب:
builder.getFont().setColor(java.awt.Color.RED);
builder.getFont().setStrikeThrough(true);
builder.writeln("Important deletion highlighted in red.");
إذا كنت بحاجة إلى تطبيق النمط نفسه على العديد من الـ runs، فكر في إنشاء كائن Font قابل لإعادة الاستخدام وتعيينه لكل Run لتجنب إعداد الخصائص المتكررة.
اعتبارات الأداء لتصوير الخط المشطوب
- إعادة استخدام كائن
Document- تحميل المستند مرة واحدة وإجراء جميع التعديلات في جلسة واحدة يقلل من عبء الإدخال/الإخراج. - تطبيق تغييرات النمط على دفعات - تطبيق علامة الشطب على مجموعة
ParagraphأوRunبدلاً من تبديلها لكل حرف. - تجنب التجوال غير الضروري - يجب تنفيذ الحلقة الشرطية التي تبحث عن كلمة “strike” فقط عندما تحتاج فعليًا إلى تنسيق ديناميكي.
- تدفق الإخراج عندما يكون ذلك ممكنًا - للمستندات الكبيرة، استخدم
doc.save(OutputStream, SaveFormat.DOCX)للكتابة مباشرة إلى تدفق وتوفير الذاكرة.
تساعد هذه النصائح في الحفاظ على انخفاض استهلاك الذاكرة وسرعة وقت التنفيذ، خاصةً عند معالجة مئات المستندات في مهمة دفعة.
أفكار ختامية
إضافة نص مشطوب في Java أمر بسيط باستخدام Conholdate.Total for Java. تسمح لك واجهة برمجة التطبيقات السلسة في SDK بخلط الفقرات العادية والمُنسقة، وتطبيق التنسيق الشرطي، وحفظ النتائج بصيغ معيارية صناعية. تذكر تكوين اعتماد Maven الخاص بك، وإعادة استخدام كائنات المستند، وتطبيق الأنماط بكفاءة لتحقيق الأداء الأمثل. بالنسبة لنشر الإنتاج ستحتاج إلى ترخيص صالح؛ تتوفر تفاصيل الأسعار على صفحة الأسعار ويمكن الحصول على ترخيص مؤقت من صفحة الترخيص المؤقت. برمجة سعيدة!
الأسئلة التي قد تكون لديك
كيف يمكنني تطبيق النص المشطوب في Java دون ضبط العلامة يدويًا لكل تشغيل؟
استخدمDocumentBuilder.getFont().setStrikeThrough(true)قبل كتابة الفقرة. تظل العلامة نشطة حتى تقوم بإعادة تعيينها، مما يسمح لك بكتابة عدة أسطر بنفس النمط.هل يمكنني شطب كل ظهور لكلمة مفتاحية تلقائيًا؟
نعم. قم بالتكرار عبر كلRunكما هو موضح في الشرح التفصيلي، تحقق منrun.getText()للعثور على الكلمة المفتاحية، واستدعِrun.getFont().setStrikeThrough(true)عندما يتم العثور على تطابق.أي صيغ المستندات تحتفظ بخط الشطب عند الحفظ؟
DOCX، DOC، RTF، وغيرها من صيغ النص الغني تحتفظ بخصية الشطب. راجع الوثائق الرسمية للحصول على قائمة كاملة بالصيغات المدعومة.هل سيؤدي تطبيق العديد من أنماط الشطب إلى إبطاء معالجة الملفات الكبيرة؟
التأثير ضئيل إذا اتبعت نصائح الأداء: إعادة استخدام كائنDocument، تجميع تغييرات الأنماط، وتجنب التجوال المتكرر. هذا يحافظ على انخفاض استهلاك الذاكرة ويسرّع المعالجة.
