লিনাক্সে, আপনার কাছে .ttf ফন্ট থাকলে, সম্ভবত আপনার কাছে ফন্টকনফিগও রয়েছে যা fc.scan
ইউটিলিটি সহ আসে । আপনি যে তথ্য চান তার জন্য আউটপুট পার্স করতে পারেন বা খারাপভাবে নথিভুক্ত --format
বিকল্পটি ব্যবহার করতে পারেন ।
উদাহরণ স্বরূপ:
fc-scan --format "%{foundry} : %{family}\n" /usr/share/fonts/truetype/msttcorefonts/arialbd.ttf
ফন্ট বৈশিষ্ট্যাবলী আপনি এভাবে মুদ্রণ করতে পারেন এখানে দেখানো হয়: http://www.freedesktop.org/software/fontconfig/fontconfig-user.html#AEN21
কিছু বৈশিষ্ট্য একাধিক ভাষায় তালিকাভুক্ত। উদাহরণস্বরূপ, %{fullname}
একটি তালিকা হতে পারে। সেক্ষেত্রে, %{fullnamelang}
ভাষায় তালিকা প্রস্তুত করা। যদি এটি আপনাকে তালিকার চতুর্থ অবস্থানে আপনার ভাষা দেখায়, আপনি %{fullname[3]}
কেবলমাত্র সেই ভাষায় পুরো নামটি মুদ্রণের জন্য ফর্ম্যাট স্ট্রিং হিসাবে ব্যবহার করতে পারেন ।
এই ভাষার স্টাফগুলি বেশ অসুবিধে হওয়ার কারণে, আমি কেবল একটি ভাষায় যে তথ্য চাইছিলাম তা তালিকার জন্য একটি পূর্ণ পার্ল স্ক্রিপ্ট লিখে শেষ করেছি:
#!/usr/bin/perl
use strict;
my $VERSION=0.1;
my $debug=1;
my @wanted = qw(foundry family fullname style weight slant width spacing file);
my @lang_dependent = qw(family fullname style);
my $lang = "en";
my $separator = ", ";
use File::Basename;
use Data::Dumper; $Data::Dumper::Sortkeys = 1;
my $me = basename $0;
die "Usage: $me FILENAME\n" unless @ARGV;
my $fontfile = shift;
unless (-f $fontfile) {
die "Bad argument: '$fontfile' is not a file !\n";
}
my $fc_format = join( "\\n", map { "\%{$_}" } @wanted );
my @info = `fc-scan --format "$fc_format" "$fontfile"`;
chomp @info;
my %fontinfo;
@fontinfo{@wanted} = @info;
if ( grep /,/, @fontinfo{ @lang_dependent } ) {
my $format = join( "\\n", map { "\%{${_}lang}" } @lang_dependent );
my @langs = `fc-scan --format "$format" "$fontfile"`;
for my $i (0..$#lang_dependent) {
my @lang_list = split /,/, $langs[$i];
my ($pos) = grep { $lang_list[$_] ~~ $lang } 0 .. $#lang_list;
my @vals = split /,/, $fontinfo{$lang_dependent[$i]};
$fontinfo{$lang_dependent[$i]} = $vals[$pos];
}
}
warn Dumper(\%fontinfo), "\n" if $debug;
$fontinfo{'fullname'} ||= $fontinfo{'family'}; # some old fonts don't have a fullname? (WINNT/Fonts/marlett.ttf)
print join($separator, @fontinfo{@wanted}), "\n";
brew install lcdf-typetools