ضبط الخطوط لعرض أوراق العمل باستخدام Node.js عبر C++
سيناريوهات الاستخدام المحتملة
توفر واجهات برمجة التطبيقات Aspose.Cells إمكانية عرض أوراق العمل بصيغ الصور بالإضافة إلى تحويلها إلى صيغ PDF و XPS. لتحقيق أعلى قدر من دقة التحويل، من الضروري أن تتوفر الخطوط المستخدمة في ورقة العمل في مجلد الخطوط الافتراضي لنظام التشغيل. في حالة عدم وجود الخطوط المطلوبة، ستحاول واجهات برمجة التطبيقات Aspose.Cells استبدال الخطوط المطلوبة بأخرى متاحة.
اختيار الخطوط
أدناه هو العملية التي تتبعها Aspose.Cells APIs خلف الكواليس.
- تحاول الواجهة البرمجية الخارجية العثور على الخطوط في نظام الملفات تطابق اسم الخط المستخدم في الجدول الخليوي.
- إذا لم تتمكن الواجهة البرمجية الخارجية من العثور على الخطوط بنفس الاسم الدقيق، فإنها تحاول استخدام الخط الافتراضي المحدد في خصائص الدفتر.
- إذا لم تتمكن الواجهة البرمجية الخارجية من تحديد الخط المحدد تحت خصائص الدفتر، فإنها تحاول استخدام الخط المحدد تحت خصائص PdfSaveOptions.getDefaultFont() أو ImageOrPrintOptions.getDefaultFont().
- إذا لم تتمكن الواجهة البرمجية الخارجية من تحديد الخط المحدد تحت خصائص PdfSaveOptions.getDefaultFont() أو ImageOrPrintOptions.getDefaultFont()، فإنها تحاول استخدام الخط المحدد تحت خصائص FontConfigs.getDefaultFontName().
- إذا لم تتمكن الواجهة البرمجية الخارجية من تحديد الخط المحدد تحت خصائص FontConfigs.getDefaultFontName()، فإنها تحاول اختيار أنسب الخطوط من جميع الخطوط المتاحة.
- وأخيرًا، إذا لم تتمكن الواجهة البرمجية الخارجية من العثور على أي خطوط في نظام الملفات، تقوم بتقديم الجدول الخليوي باستخدام Arial.
تعيين مجلدات الخط المخصصة
تبحث واجهات برمجة التطبيقات Aspose.Cells في مجلد الخطوط الافتراضي لنظام التشغيل عن الخطوط المطلوبة. في حال عدم توفر الخطوط المطلوبة في مجلد الخطوط، تبحث الواجهات عبر المجلدات المخصصة (المعرفة من قبل المستخدم). exposes FontConfigs العديد من الطرق لضبط مجلدات الخطوط المخصصة كما هو موضح أدناه.
- FontConfigs.setFontFolder(string, boolean): تُفيد هذه الطريقة إذا كان هناك مجلد واحد فقط يجب تعيينه.
- **FontConfigs.setFontFolders(string[], boolean)**: تَكون هذه الطريقة مفيدةً عندما تتواجد الخطوط في مجلدات متعددة ويرغب المستخدم في تعيين كافة المجلدات بشكل منفصل بدلاً من دمج كل الخطوط في مجلد واحد.
- **FontConfigs.setFontSources(FontSourceBase[])**: يكون هذا الآلية مفيدًا عندما يرغب المستخدم في تحميل الخطوط من مجلدين أو ملف خط واحد أو بيانات الخط من مصفوفة بايت.
const AsposeCells = require("aspose.cells.node");
const path = require("path");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Defining string variables to store paths to font folders & font file
const fontFolder1 = path.join(dataDir, "Arial");
const fontFolder2 = path.join(dataDir, "Calibri");
const fontFile = path.join(dataDir, "arial.ttf");
// Setting first font folder with SetFontFolder method
// Second parameter directs the API to search the subfolders for font files
AsposeCells.FontConfigs.setFontFolder(fontFolder1, true);
// Setting both font folders with SetFontFolders method
// Second parameter prohibits the API to search the subfolders for font files
AsposeCells.FontConfigs.setFontFolders([fontFolder1, fontFolder2], false);
// Defining FolderFontSource
const sourceFolder = new AsposeCells.FolderFontSource(fontFolder1, false);
// Defining FileFontSource
const sourceFile = new AsposeCells.FileFontSource(fontFile);
// Defining MemoryFontSource
const sourceMemory = new AsposeCells.MemoryFontSource(require("fs").readFileSync(fontFile));
// Setting font sources
AsposeCells.FontConfigs.setFontSources([sourceFolder, sourceFile, sourceMemory]);
آلية الاستبدال للخطوط
توفر واجهات برمجة التطبيقات Aspose.Cells أيضًا القدرة على تحديد الخط البديل لأغراض العرض. هذه الآلية مفيدة عندما لا تتوفر الخطوط المطلوبة على الجهاز الذي يتم عليه التحويل. يمكن للمستخدمين تقديم قائمة بأسماء الخطوط كبديل للخطوط الأصلية. لتحقيق ذلك، توفر الواجهات Aspose.Cells الأسلوب **FontConfigs.setFontSubstitutes(string, string[])** الذي يقبل معاملين. المعامل الأول هو من نوع string، ويجب أن يكون اسم الخط الذي يحتاج إلى استبداله. المعامل الثاني هو مصفوفة من نوع string، ويمكن للمستخدمين تقديم قائمة بأسماء الخطوط كبديل لاسم الخط الأصلي (المحدد في المعامل الأول).
فيما يلي سيناريو استخدام بسيط.
const AsposeCells = require("aspose.cells.node");
const path = require("path");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const workbook = new AsposeCells.Workbook(filePath);
// Substituting the Arial font with Times New Roman & Calibri
AsposeCells.FontConfigs.setFontSubstitutes("Arial", ["Times New Roman", "Calibri"]);
تجميع المعلومات
بالإضافة إلى الطرق المذكورة أعلاه، قامت واجهات برمجة التطبيقات Aspose.Cells أيضًا بتوفير وسائل لجمع المعلومات حول المصادر والاستبدالات التي تم تعيينها.
- ترجع طريقة FontConfigs.getFontSources() مصفوفة من نوع FontSourceBase تحتوي على قائمة مصادر الخطوط المحددة. في حال عدم تعيين أي مصادر، ستعيد طريقة FontConfigs.getFontSources() مصفوفة فارغة.
- تقبل طريقة FontConfigs.getFontSubstitutes(string) وسيط من نوع string يحدد اسم الخط الذي تم تعيين استبداله. في حال عدم تعيين استبدال للخط المحدد، ستعيد طريقة FontConfigs.getFontSubstitutes(string) قيمة null.