توفر هذه الحزمة طريقة بسيطة لتحميل/تثبيت الخطوط التي تختارها لمكتبة DompDF في مشروع Symfony. توفر هذه الحزمة وظائف لتحميل عائلات الخطوط برمجياً أو تلقائيًا على عملية الاحماء ذاكرة التخزين المؤقت. يمكنك تحديد كل عائلة خط مع اسم ومسار إلى ملفات الخط أو السماح للحزمة باكتشاف جميع الخطوط في الدليل.
composer require jbtronics/dompdf-font-loader-bundleconfig/bundles.php (عادةً بواسطة Symfony Flex تلقائيًا)config/packages/jbtronics_dompdf_font_loader.yaml ، مع المحتوى الموضح أدناه (وتغييره وفقًا لاحتياجاتك) dompdf_font_loader :
# Set this to true to enable the automatic font loading on cache warmup, without it you have to load the fonts
# manually via the ConfiguredFontsInstaller service
auto_install : true
# You can specify font families here manually
fonts :
my_font : # The name of the font family (used to access it in dompdf later)
# A font family consists of up to four font files (normal, bold, italic, bold_italic)
normal : " %kernel.project_dir%/assets/fonts/my_font.ttf "
bold : " %kernel.project_dir%/assets/fonts/my_font_bold.ttf "
italic : " %kernel.project_dir%/assets/fonts/my_font_italic.ttf "
bold_italic : " %kernel.project_dir%/assets/fonts/my_font_bold_italic.ttf "
# But only the normal font file is required, the others can be omitted
unifont :
normal : " %kernel.project_dir%/assets/fonts/unifont.ttf "
# Autodiscover allows you to specify directories, where all fonts will be loaded automatically
autodiscovery :
# Each of this directory will be scanned for font files
paths :
- " %kernel.project_dir%/assets/fonts "
- " %kernel.project_dir%/vendor/fonts/package/ttfs "
exclude_patterns :
# You can exclude certain patterns from the autodiscovery if you want
- " exclude_this_font.ttf "تعد الخطوط ومفاتيح اكتشاف التلقائي اختياريًا ، ولكن هناك حاجة إلى واحدة على الأقل لتحميل الخطوط.
عندما تقوم بتمكين خيار auto_install ، لا يتعين عليك القيام بأي شيء آخر ، فسيتم تحميل الخطوط تلقائيًا على عملية الاحماء ذاكرة التخزين المؤقت (عند php bin/console cache:clear ). ستقوم الحزمة بنسخ ملفات الخط إلى دليل خط DOMPDF ، وإنشاء مقاييس الخط وتسجيلها في مكتبة DOMPDF.
ستقوم آلية الاستكشاف التلقائي بمسح الدلائل التي تم تكوينها لملفات TTF وتسجيلها كعائلات الخطوط باسم ملف الخط. يحاول أيضًا اكتشاف نوع الخط استنادًا إلى لاحقة: سيتم اكتشاف _bold أو _b كخطوط جريئة ، _italic ، _i كخطوط مائلة ، و _bold_italic أو _bi كخطوط غامضة. لذلك سيتم تسجيل my_font_bold.ttf كخط جريء لعائلة my_font وما إلى ذلك ، بينما سيتم تسجيل my_font.ttf كخط عادي لعائلة my_font .
من حيث المبدأ ، يجب أن يكون DOMPDF قادرًا على استخدام ملفات OTF أيضًا ، ولكن في اختباراتي لم تنجح ، لذلك يكتشف AutoDiscovery فقط ملفات TTF بشكل افتراضي. يمكنك تغيير أنواع الملفات المكتشفة عبر خيار autodiscovery.file_pattern .
لدى DompDF دليل الخط الخاص به ، حيث يقوم بتخزين ملفات الخطوط والمقاييس. تم تكوين هذا على أساس لكل مثيل على كائن DOMPDF باستخدام طريقة set_option('fontDir', $path) . لتحديد دليل الخط لمثيل DOMPDF المستخدمة في هذه الحزمة ، يجب عليك تزيين DompdfFactoryInterface وتكوين الكائن في طريقة create() :
#[AsDecorator(decorates: DompdfFactoryInterface::class)]
class MyDompdfFactory implements DompdfFactoryInterface
{
public function create (): Dompdf
{
return new Dompdf ([ ' fontDir ' => ' %kernel.project_dir%/var/dompdf/fonts ' ]);
}
} توفر هذه الحزمة خدمة DompdfFontLoader ، والتي يمكن استخدامها لتثبيت عائلات الخطوط يدويًا. يمكنك إما تثبيت عائلة خط واحد باستخدام طريقة installFontFamily() أو تثبيت جميع الخطوط الموجودة في مجلد باستخدام طريقة autodiscoverAndInstallFonts() .
هذه الحزمة مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر الترخيص للحصول على التفاصيل.