تكوين الخطوط لرسم الجداول الخليوية
سيناريوهات الاستخدام المحتملة
توفر Aspose.Cells APIs مرفق تقديم الجداول الخليوية بتنسيق الصور وتحويلها إلى تنسيقات PDF و XPS. من أجل زيادة دقة التحويل، من الضروري أن تكون الخطوط المستخدمة في الجدول الخليوي متوفرة في مجلد الخط الافتراضي لنظام التشغيل. في حالة عدم توفر الخطوط المطلوبة، ستحاول Aspose.Cells APIs استبدال الخطوط المطلوبة بتلك المتاحة.
اختيار الخطوط
أدناه هو العملية التي تتبعها Aspose.Cells APIs خلف الكواليس.
- تحاول الواجهة البرمجية الخارجية العثور على الخطوط في نظام الملفات تطابق اسم الخط المستخدم في الجدول الخليوي.
- إذا لم تتمكن الواجهة البرمجية الخارجية من العثور على الخطوط بنفس الاسم الدقيق، فإنها تحاول استخدام الخط الافتراضي المحدد في خصائص الدفتر.
- إذا لم تتمكن الواجهة البرمجية الخارجية من تحديد الخط المحدد تحت خصائص الدفتر، فإنها تحاول استخدام الخط المحدد تحت خصائص PdfSaveOptions.DefaultFont أو ImageOrPrintOptions.DefaultFont.
- إذا لم تتمكن الواجهة البرمجية الخارجية من تحديد الخط المحدد تحت خصائص PdfSaveOptions.DefaultFont أو ImageOrPrintOptions.DefaultFont، فإنها تحاول استخدام الخط المحدد تحت خصائص FontConfigs.DefaultFontName.
- إذا لم تتمكن الواجهة البرمجية الخارجية من تحديد الخط المحدد تحت خصائص FontConfigs.DefaultFontName، فإنها تحاول اختيار أنسب الخطوط من جميع الخطوط المتاحة.
- وأخيرًا، إذا لم تتمكن الواجهة البرمجية الخارجية من العثور على أي خطوط في نظام الملفات، تقوم بتقديم الجدول الخليوي باستخدام Arial.
تعيين مجلدات الخط المخصصة
تقوم Aspose.Cells APIs بالبحث في مجلد الخط الافتراضي لنظام التشغيل عن الخطوط المطلوبة. في حالة عدم توفر الخطوط المطلوبة في مجلد الخط الخاص بالنظام، تقوم الواجهة البرمجية الخارجية بالبحث من خلال المجلدات المخصصة (المحددة من قبل المستخدم). كما يوضح الفئة FontConfigs عددًا من الطرق لتعيين مجلدات الخط المخصصة كما هو مفصل أدناه.
- FontConfigs.setFontFolder: تُفيد هذه الطريقة إذا كان هناك مجلد واحد فقط يجب تعيينه.
- FontConfigs.setFontFolders: تَكون هذه الطريقة مفيدةً عندما تتواجد الخطوط في مجلدات متعددة ويرغب المستخدم في تعيين كافة المجلدات بشكل منفصل بدلاً من دمج كل الخطوط في مجلد واحد.
- FontConfigs.setFontSources: يكون هذا الآلية مفيدًا عندما يرغب المستخدم في تحميل الخطوط من مجلدين أو ملف خط واحد أو بيانات الخط من مصفوفة بايت.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(SetCustomFontFolders.class); | |
// Defining string variables to store paths to font folders & font file | |
String fontFolder1 = dataDir + "/Arial"; | |
String fontFolder2 = dataDir + "/Calibri"; | |
String fontFile = dataDir + "/Arial/arial.ttf"; | |
// Setting first font folder with setFontFolder method | |
// Second parameter directs the API to search the sub folders for font files | |
FontConfigs.setFontFolder(fontFolder1, true); | |
// Setting both font folders with setFontFolders method | |
// Second parameter prohibits the API to search the sub folders for font files | |
FontConfigs.setFontFolders(new String[] { fontFolder1, fontFolder2 }, false); | |
// Defining FolderFontSource | |
FolderFontSource sourceFolder = new FolderFontSource(fontFolder1, false); | |
// Defining FileFontSource | |
FileFontSource sourceFile = new FileFontSource(fontFile); | |
// Defining MemoryFontSource | |
byte[] bytes = Files.readAllBytes(new File(fontFile).toPath()); | |
MemoryFontSource sourceMemory = new MemoryFontSource(bytes); | |
// Setting font sources | |
FontConfigs.setFontSources(new FontSourceBase[] { sourceFolder, sourceFile, sourceMemory }); |
آلية الاستبدال للخطوط
توفر واجهات برمجة التطبيقات Aspose.Cells أيضًا القدرة على تحديد الخط البديل لأغراض التقديم. تكون هذه الآلية مفيدة عندما لا يكون الخط المطلوب متوفرًا على الجهاز الذي يجب أن تتم فيه التحويل. يمكن للمستخدمين توفير قائمة أسماء الخطوط كبديل للخط المطلوب أصلاً. ومن أجل تحقيق ذلك، فقد عرضت واجهات برمجة التطبيقاتAspose.Cells الطريقة FontConfigs.setFontSubstitutes التي تقبل 2 معلمة. المعلمة الأولى هي من النوع String، التي يجب أن تكون اسم الخط الذي يجب أن يكون بديلًا. المعلمة الثانية هي مصفوفة من النوع String. يمكن للمستخدمين تقديم قائمة من أسماء الخطوط كبدائل للخط الأصلي (المحدد في المعلمة الأولى).
فيما يلي سيناريو استخدام بسيط.
//Substituting the Arial font with Times New Roman & Calibri
FontConfigs.setFontSubstitutes("Arial", new String[] { "Times New Roman", "Calibri" });
تجميع المعلومات
بالإضافة إلى الطرق المذكورة أعلاه، قدمت واجهات برمجة التطبيقات Aspose.Cells وسيلة لجمع المعلومات حول المصادر والاستبدالات التي تم تعيينها.
- FontConfigs.getFontSources: تُخرج هذه الطريقة مصفوفة من النوع FontSourceBase تحتوي على قائمة المصادر النوعية للخطوط المحددة. في حالة عدم تعيين أي مصادر، فإن الطريقة FontConfigs.getFontSources ستُرجع مصفوفة فارغة.
- FontConfigs.getFontSubstitutes: تقبل هذه الطريقة معلمة من نوع String تمكن من تحديد اسم الخط الذي تم تعيين الاستبدال له. في حالة عدم تم تعيين استبدال لاسم الخط المحدد ستُعيد الطريقة FontConfigs.getFontSubstitutes قيمة فارغة.