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

Java API للكشف عن الرموز اللاتينية في خطوط TrueType و Type1

Aspose.Font for Java هي مكتبة للعمل مع الخطوط مثل TrueType ، CFF ، Type1 ، إلخ. تدعم واجهة برمجة التطبيقات التحميل ، والحفظ ، و استخراج المعلومات المتعلقة بالخطوط. تتيح لك واجهة برمجة التطبيقات أيضًا اكتشاف دعم الرموز اللاتينية في الخطوط. يمكنك إما تنزيل API باستخدام Maven أو تنزيل JAR من قسم التنزيلات.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-font</artifactId>
    <version>21.4</version>
</dependency>

اكتشف الرموز اللاتينية في خطوط TrueType باستخدام Java

فيما يلي خطوات اكتشاف ما إذا كان خط تروتايب معين يدعم الرموز اللاتينية أم لا.

  • قم بإنشاء مثيل لفئة FontDefinition باستخدام ملف الخط.
  • قم بإنشاء مثيل لفئة TtfFont باستخدام كائن FontDefinition الذي تم إنشاؤه في الخطوة السابقة.
  • قم بإجراء حلقة من خلال الرموز المختلفة وفك تشفيرها إلى معرفات الحروف الرسومية.
  • تحقق من معرفات الحروف الرسومية لدعم الرموز اللاتينية.

يُظهر نموذج التعليمات البرمجية التالي كيفية اكتشاف ما إذا كان خط تروتايب معين يدعم الرموز اللاتينية أم لا.

// مسار ملف الخط
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// قم بتحميل ملف الخط
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// تحقق من دعم الرموز اللاتينية
for (int code = 65; code < 123; code++)
{
    GlyphId gid = ttfFont.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", ttfFont.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", ttfFont.getFontName()));
}

كشف الرموز اللاتينية في خطوط Type1 باستخدام Java

تشبه عملية اكتشاف دعم الرموز اللاتينية في خطوط Type1 خطوط TrueType. الاختلاف الوحيد هو أننا سنستخدم فئة Type1Font للوصول إلى معلومات الخط. فيما يلي خطوات اكتشاف دعم الرموز اللاتينية في خطوط Type1.

  • قم بإنشاء مثيل لفئة FontDefinition باستخدام ملف الخط.
  • قم بإنشاء مثيل لفئة Type1Font باستخدام كائن FontDefinition الذي تم إنشاؤه في الخطوة السابقة.
  • قم بإجراء حلقة من خلال الرموز المختلفة وفك تشفيرها إلى معرفات الحروف الرسومية.
  • تحقق من معرفات الحروف الرسومية لدعم الرموز اللاتينية.

يوضح نموذج التعليمات البرمجية التالي كيفية اكتشاف ما إذا كان خط Type1 معين يدعم الرموز اللاتينية أم لا.

// مسار ملف الخط
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// قم بتحميل ملف الخط
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// تحقق من دعم الرموز اللاتينية
for (int code = 65; code < 123; code++)
{
    GlyphId gid = font.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", font.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", font.getFontName()));
}

احصل على رخصة مجانية

لتجربة واجهة برمجة التطبيقات بدون قيود تقييمية ، يمكنك طلب ترخيص مؤقت مجاني.

استنتاج

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

أنظر أيضا