compare fonts
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 1004
Ctcompare 2.2
Ctcompares project purpose is to allow you to compare several sets of C code trees on a token basis... more>>
Ctcompares project purpose is to allow you to compare several sets of C code trees on a token basis, rather than on a line by line basis. The programs help to identify similarities between snippets of code in both trees.
Enhancements:
- The comparison method has been completely rewritten.
- A database is now used to hold 16-token "tuples" as keys; the result attached to each key is the list of source files which have that tuple.
- Tuples with multiple files from different source trees indicate potential code similarity.
- These are then fully tested to find actual code similarity.
<<lessEnhancements:
- The comparison method has been completely rewritten.
- A database is now used to hold 16-token "tuples" as keys; the result attached to each key is the list of source files which have that tuple.
- Tuples with multiple files from different source trees indicate potential code similarity.
- These are then fully tested to find actual code similarity.
Download (0.035MB)
Added: 2007-06-09 License: GPL (GNU General Public License) Price:
867 downloads
Gnome Font Sampler 0.4
Gnome Font Sampler lets you browse your installed fonts using whatever color. more>>
Gnome Font Sampler lets you browse your installed fonts using whatever color, size, attributes (Bold/Italics/Underline), and example text you like.
Main features:
- Quickly compare your fonts
- Select font size, text color, background color, bold, italics, underline, and example text used
- Preview fonts before adding them to the list
- Pretty good keyboard control
- It costs $0 and is Free software
Enhancements:
- New application icon.
- Improved keyboard control (navigate font lists and choose fonts using just the keyboard).
<<lessMain features:
- Quickly compare your fonts
- Select font size, text color, background color, bold, italics, underline, and example text used
- Preview fonts before adding them to the list
- Pretty good keyboard control
- It costs $0 and is Free software
Enhancements:
- New application icon.
- Improved keyboard control (navigate font lists and choose fonts using just the keyboard).
Download (0.30MB)
Added: 2005-08-05 License: GPL (GNU General Public License) Price:
1543 downloads
Choosefont 0.3
Choosefont is an efficient font finder. more>>
Choosefont is a simple but extremely efficient tool for quickly finding the required font in a large amount of fonts.
It was created due to the lack of decent font selection widgets in many application.
Apart from finding a font, Choosfont can also creat css, html and other code for the selected font, this code is automatically copied to the X clipboard.
<<lessIt was created due to the lack of decent font selection widgets in many application.
Apart from finding a font, Choosfont can also creat css, html and other code for the selected font, this code is automatically copied to the X clipboard.
Download (0.030MB)
Added: 2005-04-21 License: GPL (GNU General Public License) Price:
1650 downloads
Schema-compare 0.2
Schema-compare is a script that will compares two database schema and show the differences side-by-side. more>>
Schema-compare is a script that will compares two database schema and show the differences side-by-side.
Schema-compare can also generate SQL statements that will alter the old database to match the schema of the new database.
The comparisons are correct, but the SQL statements at the bottom are not quite right, they are close to what is necessary, but probably not exactly right.
To install simply ungzip/untar the file wherever you want to put it in your web folder and then edit the include/config.inc.php file with the information needed to connect to the two databases you want to compare. Both databases need to be on the same database server and use the same username and password to connect to them.
Enhancements:
- This is the first release of schema-compare. It compares the database schema just fine, but the sql alter statements it creates could use some work.
<<lessSchema-compare can also generate SQL statements that will alter the old database to match the schema of the new database.
The comparisons are correct, but the SQL statements at the bottom are not quite right, they are close to what is necessary, but probably not exactly right.
To install simply ungzip/untar the file wherever you want to put it in your web folder and then edit the include/config.inc.php file with the information needed to connect to the two databases you want to compare. Both databases need to be on the same database server and use the same username and password to connect to them.
Enhancements:
- This is the first release of schema-compare. It compares the database schema just fine, but the sql alter statements it creates could use some work.
Download (0.41MB)
Added: 2006-03-07 License: BSD License Price:
1329 downloads
List::Compare 0.33
List::Compare is a Perl module to compare elements of two or more lists. more>>
List::Compare is a Perl module to compare elements of two or more lists.
SYNOPSIS
The bare essentials:
@Llist = qw(abel abel baker camera delta edward fargo golfer);
@Rlist = qw(baker camera delta delta edward fargo golfer hilton);
$lc = List::Compare->new(@Llist, @Rlist);
@intersection = $lc->get_intersection;
@union = $lc->get_union;
General Comments
List::Compare is an object-oriented implementation of very common Perl code (see "History, References and Development" below) used to determine interesting relationships between two or more lists at a time. A List::Compare object is created and automatically computes the values needed to supply List::Compare methods with appropriate results. In the current implementation List::Compare methods will return new lists containing the items found in any designated list alone (unique), any list other than a designated list (complement), the intersection and union of all lists and so forth. List::Compare also has (a) methods to return Boolean values indicating whether one list is a subset of another and whether any two lists are equivalent to each other (b) methods to pretty-print very simple charts displaying the subset and equivalence relationships among lists.
Except for List::Compares get_bag() method, multiple instances of an element in a given list count only once with respect to computing the intersection, union, etc. of the two lists. In particular, List::Compare considers two lists as equivalent if each element of the first list can be found in the second list and vice versa. Equivalence in this usage takes no note of the frequency with which elements occur in either list or their order within the lists. List::Compare asks the question: Did I see this item in this list at all? Only when you use List::Compare::get_bag() to compute a bag holding the two lists do you ask the question: How many times did this item occur in this list?
<<lessSYNOPSIS
The bare essentials:
@Llist = qw(abel abel baker camera delta edward fargo golfer);
@Rlist = qw(baker camera delta delta edward fargo golfer hilton);
$lc = List::Compare->new(@Llist, @Rlist);
@intersection = $lc->get_intersection;
@union = $lc->get_union;
General Comments
List::Compare is an object-oriented implementation of very common Perl code (see "History, References and Development" below) used to determine interesting relationships between two or more lists at a time. A List::Compare object is created and automatically computes the values needed to supply List::Compare methods with appropriate results. In the current implementation List::Compare methods will return new lists containing the items found in any designated list alone (unique), any list other than a designated list (complement), the intersection and union of all lists and so forth. List::Compare also has (a) methods to return Boolean values indicating whether one list is a subset of another and whether any two lists are equivalent to each other (b) methods to pretty-print very simple charts displaying the subset and equivalence relationships among lists.
Except for List::Compares get_bag() method, multiple instances of an element in a given list count only once with respect to computing the intersection, union, etc. of the two lists. In particular, List::Compare considers two lists as equivalent if each element of the first list can be found in the second list and vice versa. Equivalence in this usage takes no note of the frequency with which elements occur in either list or their order within the lists. List::Compare asks the question: Did I see this item in this list at all? Only when you use List::Compare::get_bag() to compute a bag holding the two lists do you ask the question: How many times did this item occur in this list?
Download (0.18MB)
Added: 2007-01-23 License: Perl Artistic License Price:
1007 downloads
6,760 Fonts
6,760 Fonts is a large archive with many free fonts. more>>
6,760 Fonts is a large archive with many free fonts.
The Absolute Fonts Archive created a page that will let you download many fonts one at a time, or for a fee you can download them all as a zip file.
Upon careful inspection of their site I found a multitude of corrupted font files. After removing all the corrupted files I was left with 6,760 fonts. I have chosen to turn them into a tarball and offer them as a free download.
Absolute Fonts Archive has neither licensed nor created any of the fonts on their site, but they do warn against commercial use of these fonts.
Version restrictions:
- installing that amount of fonts really slows down the KDE startup.
<<lessThe Absolute Fonts Archive created a page that will let you download many fonts one at a time, or for a fee you can download them all as a zip file.
Upon careful inspection of their site I found a multitude of corrupted font files. After removing all the corrupted files I was left with 6,760 fonts. I have chosen to turn them into a tarball and offer them as a free download.
Absolute Fonts Archive has neither licensed nor created any of the fonts on their site, but they do warn against commercial use of these fonts.
Version restrictions:
- installing that amount of fonts really slows down the KDE startup.
Download (MB)
Added: 2007-03-02 License: Freely Distributable Price:
996 downloads
Array::Compare 1.14
Array::Compare is a Perl extension for comparing arrays. more>>
SYNOPSIS
use Array::Compare;
my $comp1 = Array::Compare->new;
$comp->Sep(|);
$comp->Skip({3 => 1, 4 => 1});
$comp->WhiteSpace(0);
$comp->Case(1);
my $comp2 = Array::Compare->new(Sep => |,
WhiteSpace => 0,
Case => 1,
Skip => {3 => 1, 4 => 1});
my @arr1 = 0 .. 10;
my @arr2 = 0 .. 10;
$comp1->compare(@arr1, @arr2);
$comp2->compare(@arr1, @arr2);
If you have two arrays and you want to know if they are the same or different, then Array::Compare will be useful to you.
All comparisons are carried out via a comparator object. In the simplest usage, you can create and use a comparator object like this:
my @arr1 = 0 .. 10;
my @arr2 = 0 .. 10;
my $comp = Array::Compare->new;
if ($comp->compare(@arr1, @arr2)) {
print "Arrays are the samen";
} else {
print "Arrays are differentn";
}
Notice that you pass references to the two arrays to the comparison method.
Internally the comparator compares the two arrays by using join to turn both arrays into strings and comparing the strings using eq. In the joined strings, the elements of the original arrays are separated with the ^G character. This can cause problems if your array data contains ^G characters as it is possible that two different arrays can be converted to the same string.
To avoid this, it is possible to override the default separator character, either by passing and alternative to the new function
my $comp = Array::Compare->new(Sep => |);
or by changing the seperator for an existing comparator object
$comp->Sep(|);
In general you should choose a separator character that wont appear in your data.
You can also control whether or not whitespace within the elements of the arrays should be considered significant when making the comparison. The default is that all whitespace is significant. The alternative is for all consecutive white space characters to be converted to a single space for the pruposes of the comparison. Again, this can be turned on when creating a comparator object:
my $comp = Array::Compare->new(WhiteSpace => 0);
or by altering an existing object:
$comp->WhiteSpace(0);
You can also control whether or not the case of the data is significant in the comparison. The default is that the case of data is taken into account. This can be changed in the standard ways when creating a new comparator object:
my $comp = Array::Compare->new(Case => 0);
or by altering an existing object:
$comp->Case(0);
In addition to the simple comparison described above (which returns true if the arrays are the same and false if theyre different) there is also a full comparison which returns a list containing the indexes of elements which differ between the two arrays. If the arrays are the same it returns an empty list. In scalar context the full comparison returns the length of this list (i.e. the number of elements that differ). You can access the full comparision in two ways. Firstly, there is a DefFull attribute. If this is true then a full comparison if carried out whenever the compare method is called.
my $comp = Array::Compare->new(DefFull => 1);
$comp->compare(@arr1, @arr2); # Full comparison
$comp->DefFull(0);
$comp->compare(@arr1, @arr2); # Simple comparison
$comp->DefFull(1);
$comp->compare(@arr1, @arr2); # Full comparison again
Secondly, you can access the full comparison method directly
$comp->full_compare(@arr1, @arr2);
For symmetry, there is also a direct method to use to call the simple comparison.
$comp->simple_compare(@arr1, @arr2);
The final complication is the ability to skip elements in the comparison. If you know that two arrays will always differ in a particular element but want to compare the arrays ignoring this element, you can do it with Array::Compare without taking array slices. To do this, a comparator object has an optional attribute called Skip which is a reference to a hash. The keys in this hash are the indexes of the array elements and the values should be any true value for elements that should be skipped.
For example, if you want to compare two arrays, ignoring the values in elements two and four, you can do something like this:
my %skip = (2 => 1, 4 => 1);
my @a = (0, 1, 2, 3, 4, 5);
my @b = (0, 1, X, 3, X, 5);
my $comp = Array::Compare->new(Skip => %skip);
$comp->compare(@a, @b);
This should return true, as we are explicitly ignoring the columns which differ.
Of course, having created a comparator object with no skip hash, it is possible to add one later:
$comp->Skip({1 => 1, 2 => 1});
or:
my %skip = (1 => 1, 2 => 2);
$comp->Skip(%skip);
To reset the comparator so that no longer skips elements, set the skip hash to an empty hash.
$comp->Skip({});
You can also check to see if one array is a permutation of another, i.e. they contain the same elements but in a different order.
if ($comp->perm(@a, @b) {
print "Arrays are permsn";
else {
print "Nope. Arrays are completely differentn";
}
In this case the values of WhiteSpace and Case are still used, but Skip is ignored for, hopefully, obvious reasons.
Download (0.008MB)
Added: 2007-08-15 License: Perl Artistic License Price:
800 downloads
File::DirCompare 0.3
File::DirCompare is a Perl module to compare two directories using callbacks. more>>
File::DirCompare is a Perl module to compare two directories using callbacks.
SYNOPSIS
use File::DirCompare;
# Simple diff -r --brief replacement
use File::Basename;
File::DirCompare->compare($dir1, $dir2, sub {
my ($a, $b) = @_;
if (! $b) {
printf "Only in %s: %sn", dirname($a), basename($a);
} elsif (! $a) {
printf "Only in %s: %sn", dirname($b), basename($b);
} else {
print "Files $a and $b differn";
}
});
# Version-control like Deleted/Added/Modified listing
my (@listing, @modified); # use closure to collect results
File::DirCompare->compare(old_tree, new_tree), sub {
my ($a, $b) = @_;
if (! $b) {
push @listing, "D $a";
} elsif (! $a) {
push @listing, "A $b";
} else {
if (-f $a && -f $b) {
push @listing, "M $b";
push @modified, $b;
} else {
# One file, one directory - treat as delete + add
push @listing, "D $a";
push @listing, "A $b";
}
}
});
File::DirCompare is a perl module to compare two directories using a callback, invoked for all files that are different between the two directories, and for any files that exist only in one or other directory (unique files).
File::DirCompare has a single public compare() method, with the following signature:
File::DirCompare->compare($dir1, $dir2, $sub, $opts);
The first three arguments are required - $dir1 and $dir2 are paths to the two directories to be compared, and $sub is the subroutine reference called for all unique or different files. $opts is an optional hashref of options - see OPTIONS below.
The provided subroutine is called for all unique files, and for every pair of different files encountered, with the following signature:
$sub->($file1, $file2)
where $file1 and $file2 are the paths to the two files. For unique files i.e. where a file exists in only one directory, the subroutine is called with the other argument undef i.e. for:
$sub->($file1, undef)
$sub->(undef, $file2)
the first indicates $file1 exists only in the first directory given ($dir1), and the second indicates $file2 exists only in the second directory given ($dir2).
<<lessSYNOPSIS
use File::DirCompare;
# Simple diff -r --brief replacement
use File::Basename;
File::DirCompare->compare($dir1, $dir2, sub {
my ($a, $b) = @_;
if (! $b) {
printf "Only in %s: %sn", dirname($a), basename($a);
} elsif (! $a) {
printf "Only in %s: %sn", dirname($b), basename($b);
} else {
print "Files $a and $b differn";
}
});
# Version-control like Deleted/Added/Modified listing
my (@listing, @modified); # use closure to collect results
File::DirCompare->compare(old_tree, new_tree), sub {
my ($a, $b) = @_;
if (! $b) {
push @listing, "D $a";
} elsif (! $a) {
push @listing, "A $b";
} else {
if (-f $a && -f $b) {
push @listing, "M $b";
push @modified, $b;
} else {
# One file, one directory - treat as delete + add
push @listing, "D $a";
push @listing, "A $b";
}
}
});
File::DirCompare is a perl module to compare two directories using a callback, invoked for all files that are different between the two directories, and for any files that exist only in one or other directory (unique files).
File::DirCompare has a single public compare() method, with the following signature:
File::DirCompare->compare($dir1, $dir2, $sub, $opts);
The first three arguments are required - $dir1 and $dir2 are paths to the two directories to be compared, and $sub is the subroutine reference called for all unique or different files. $opts is an optional hashref of options - see OPTIONS below.
The provided subroutine is called for all unique files, and for every pair of different files encountered, with the following signature:
$sub->($file1, $file2)
where $file1 and $file2 are the paths to the two files. For unique files i.e. where a file exists in only one directory, the subroutine is called with the other argument undef i.e. for:
$sub->($file1, undef)
$sub->(undef, $file2)
the first indicates $file1 exists only in the first directory given ($dir1), and the second indicates $file2 exists only in the second directory given ($dir2).
Download (0.008MB)
Added: 2007-07-05 License: Perl Artistic License Price:
841 downloads
Struct::Compare 1.0.1
Struct::Compare is a recursive diff for perl structures. more>>
Struct::Compare is a recursive diff for perl structures.
SYNOPSIS
use Struct::Compare;
my $is_different = compare($ref1, $ref2);
Compares two values of any type and structure and returns true if they are the same. It does a deep comparison of the structures, so a hash of a hash of a whatever will be compared correctly.
This is especially useful for writing unit tests for your modules!
PUBLIC FUNCTIONS
$bool = compare($var1, $var2)
Recursively compares $var1 to $var2, returning false if either structure is different than the other at any point. If both are undefined, it returns true as well, because that is considered equal.
<<lessSYNOPSIS
use Struct::Compare;
my $is_different = compare($ref1, $ref2);
Compares two values of any type and structure and returns true if they are the same. It does a deep comparison of the structures, so a hash of a hash of a whatever will be compared correctly.
This is especially useful for writing unit tests for your modules!
PUBLIC FUNCTIONS
$bool = compare($var1, $var2)
Recursively compares $var1 to $var2, returning false if either structure is different than the other at any point. If both are undefined, it returns true as well, because that is considered equal.
Download (0.003MB)
Added: 2007-02-12 License: Perl Artistic License Price:
984 downloads
DejaVu fonts 2.19
The DejaVu fonts are a font family based on the Bitstream Vera Fonts. more>>
The DejaVu fonts are a font family based on the Bitstream Vera Fonts release 1.10 (see the list of other Bitstream Vera derivatives or Unicode Font Guide).
DejaVu fonts purpose is to provide a wider range of characters (see Current status page for more information) while maintaining the original look and feel through the process of collaborative development (see Authors).
The family is available as TrueType fonts and also as third-party packages for various operating systems including handhelds.
Enhancements:
- fixed misplaced symbols (U+2325,2326) in Sans Oblique (by John Karp)
- added Mark to Base anchors: cedilla for combining cedilla and above-legacy for stacking above precomposed glyphs (just a,e,i,o,u with macron for now) in Sans (by Denis Jacquerye).
- added contextual substitution for Case and Dotless forms in all Sans variants (by Denis Jacquerye).
- renamed ccmp lookups for RTL and Basic (LGC, etc.) (by Denis Jacquerye)
- added anchor cedilla for vowels in Sans. (by Denis Jacquerye)
- extended contextual dotless and case substitutions to handle both below and above diacritics (by Denis Jacquerye)
- renamed Dotless and Case Form GSUB lookups in Sans with meaningful names (by Denis Jacquerye)
<<lessDejaVu fonts purpose is to provide a wider range of characters (see Current status page for more information) while maintaining the original look and feel through the process of collaborative development (see Authors).
The family is available as TrueType fonts and also as third-party packages for various operating systems including handhelds.
Enhancements:
- fixed misplaced symbols (U+2325,2326) in Sans Oblique (by John Karp)
- added Mark to Base anchors: cedilla for combining cedilla and above-legacy for stacking above precomposed glyphs (just a,e,i,o,u with macron for now) in Sans (by Denis Jacquerye).
- added contextual substitution for Case and Dotless forms in all Sans variants (by Denis Jacquerye).
- renamed ccmp lookups for RTL and Basic (LGC, etc.) (by Denis Jacquerye)
- added anchor cedilla for vowels in Sans. (by Denis Jacquerye)
- extended contextual dotless and case substitutions to handle both below and above diacritics (by Denis Jacquerye)
- renamed Dotless and Case Form GSUB lookups in Sans with meaningful names (by Denis Jacquerye)
Download (MB)
Added: 2007-08-06 License: Freely Distributable Price:
822 downloads
Gentium fonts 1.02
Gentium is a typeface family designed to enable the diverse ethnic groups around the world. more>>
Gentium is a typeface family designed to enable the diverse ethnic groups around the world who use the Latin script to produce readable, high-quality publications.
Gentium fonts project supports a wide range of Latin-based alphabets and includes glyphs that correspond to all the Latin ranges of Unicode.
The design is intended to be highly readable, reasonably compact, and visually attractive. The additional "extended" Latin letters are designed to naturally harmonize with the traditional 26 ones. Diacritics are treated with careful thought and attention to their use.
Gentium also supports both ancient and modern Greek, including a number of alternate forms. These fonts were originally the product of two years of research and study by the designer at the University of Reading, England, as part of an MA program in Typeface Design.
SIL International has now embraced the Gentium project, and plans to continue development. Expansion of the glyph set to include more extended Latin glyphs, archaic Greek symbols, and full Cyrillic script support is the next step. Work on this has already begun, but the results will not be available for a few months. Addition of bold and bold italic faces will follow.
Gentium is freely available and may be used by anyone at no cost. It is now released under the SIL Open Font License, a free and open source license that permits modification and redistribution.
Our hope is that it will stimulate literature production and elevate extended Latin alphabets to greater parity with the basic Latin alphabet. We also hope it will encourage other type designers to appreciate and support those fascinating and beautiful extra letters.
<<lessGentium fonts project supports a wide range of Latin-based alphabets and includes glyphs that correspond to all the Latin ranges of Unicode.
The design is intended to be highly readable, reasonably compact, and visually attractive. The additional "extended" Latin letters are designed to naturally harmonize with the traditional 26 ones. Diacritics are treated with careful thought and attention to their use.
Gentium also supports both ancient and modern Greek, including a number of alternate forms. These fonts were originally the product of two years of research and study by the designer at the University of Reading, England, as part of an MA program in Typeface Design.
SIL International has now embraced the Gentium project, and plans to continue development. Expansion of the glyph set to include more extended Latin glyphs, archaic Greek symbols, and full Cyrillic script support is the next step. Work on this has already begun, but the results will not be available for a few months. Addition of bold and bold italic faces will follow.
Gentium is freely available and may be used by anyone at no cost. It is now released under the SIL Open Font License, a free and open source license that permits modification and redistribution.
Our hope is that it will stimulate literature production and elevate extended Latin alphabets to greater parity with the basic Latin alphabet. We also hope it will encourage other type designers to appreciate and support those fascinating and beautiful extra letters.
Download (2.2MB)
Added: 2005-12-28 License: Freely Distributable Price:
1401 downloads
Hunky Fonts 0.3
Free Unicode TrueType fonts for Baltic, Central European, South European and other languages. more>>
Free Unicode TrueType fonts for Baltic, Central European, South European and other languages, including Azeri, Maori, Welsh and Esperanto.
<<less Download (0.24MB)
Added: 2005-04-18 License: LGPL (GNU Lesser General Public License) Price:
1658 downloads
Apache FOP 0.93 Beta
Apache FOP is an XSL-FO formatter. more>>
FOP (Formatting Objects Processor) is the worlds first print formatter driven by XSL formatting objects (XSL-FO) and the worlds first output independent formatter.
Apache FOP project is a Java application that reads a formatting object (FO) tree and renders the resulting pages to a specified output. Output formats currently supported include PDF, PCL, PS, SVG, XML (area tree representation), Print, AWT, MIF and TXT. The primary output target is PDF.
Enhancements:
- This release is the successor of version 0.20.5, FOPs production grade version.
- It contains the new API first introduced in 0.92 beta; support for Open Type fonts; support for the rgb-icc() function and a proprietary cmyk() function; copy/paste from PDF content using embedded TrueType fonts; support for PDF/A-1b and PDF/X-3:2003; improved Java2D, print, and bitmap renderers; and automatic support for all Java2D fonts for TIFF, PNG, print, AWT rendering.
<<lessApache FOP project is a Java application that reads a formatting object (FO) tree and renders the resulting pages to a specified output. Output formats currently supported include PDF, PCL, PS, SVG, XML (area tree representation), Print, AWT, MIF and TXT. The primary output target is PDF.
Enhancements:
- This release is the successor of version 0.20.5, FOPs production grade version.
- It contains the new API first introduced in 0.92 beta; support for Open Type fonts; support for the rgb-icc() function and a proprietary cmyk() function; copy/paste from PDF content using embedded TrueType fonts; support for PDF/A-1b and PDF/X-3:2003; improved Java2D, print, and bitmap renderers; and automatic support for all Java2D fonts for TIFF, PNG, print, AWT rendering.
Download (1.3MB)
Added: 2007-01-09 License: The Apache License 2.0 Price:
1023 downloads
Bit-mapped Japanese font parser 2.0
Bit-mapped Japanese font parser is a font parser. more>>
Bit-mapped Japanese font parser is a font parser. Note, this package doesnt include the actual font data. To get the font data you need to download it from the download section in the left.
Then move *.jfr into the directory where you unpacked this parser, and follow with the quick instructions.
Quick instructions:
Complete parse requires about 4 megabytes of free disk space. This is a huge improvement over the original version which required almost 45 megabytes.
1. make
2. make parse
3. watch the progress indicator
4. mv *.pcf.gz /usr/X11R/lib/X11R6/fonts/misc
5. make clean
6. HUP your font server if you use one
7. xset fp rehash
8. xlsfonts | grep kanji
/usr/X11R/lib/X11R6/fonts/misc is the standard location for all sorts of random bit-mapped fonts, but you might have a special location. Substitute that in step 4.
About:
I came across a number of these "raster fonts" a while ago. Quick look inside the files proved that they are bit-mapped fonts, and the format looked pretty straight-forward. I wrote the original parser for these just guessing the values, basically by experimenting and playing around. Later on I came across some docs on the subject - looks like these fonts were used in Windows 3.1 Japanese edition to substitute back-then low quality Japanese TTF fonts at small point sizes. These were designed using full-scale 16 bit programming techniques.
Quick info about the font format, there are some headers, then follows a "segment table" which is basically a table with pointers inside the font file where to locate a particular chunk of data. Because the 16 bit way of accessing memory is by using 65k "segments", each file is virtually split into < 65k segments which get loaded into separate memory areas, and then there is a algorithm how to assemble whatever character by using the segment number and offset. Anyway, with 32 bit access all of that doesnt really matter. In my implementation I just mmap the whole file and read it all out of memory.
Generating table.h was a LOT of work! First, I took the codearea table out of one of the jfr files (this maps shift-jis code to the character number inside the font file), and extracted the number ranges. These were shift-jis, of course, and X uses jis0208. There is no converter from a shift
jis byte into jis0208. So I had to write one. Taking iconv, and some tables from glibc 2.1.93, I hacked together something which converted the shift-jis data into ucs4 (unicode, I guess) and then from that into jis0208. The code to the converter is about 500k thanks to the huge jis->unicode->jis conversion tables, and you wont need it unless you get a jfr font with a different encoding table (unlikely). Anyway. After I got the font format figured out and converted the character table, everything else was pretty easy. Note some bit hackery in the bitmapXX() functions which was necessary to present the font data in a usable format. Also notice cool use of function pointers to select a conversion function at runtime.
Enhancements:
- This version uses correct JISX0208 tables, and is much faster.
<<lessThen move *.jfr into the directory where you unpacked this parser, and follow with the quick instructions.
Quick instructions:
Complete parse requires about 4 megabytes of free disk space. This is a huge improvement over the original version which required almost 45 megabytes.
1. make
2. make parse
3. watch the progress indicator
4. mv *.pcf.gz /usr/X11R/lib/X11R6/fonts/misc
5. make clean
6. HUP your font server if you use one
7. xset fp rehash
8. xlsfonts | grep kanji
/usr/X11R/lib/X11R6/fonts/misc is the standard location for all sorts of random bit-mapped fonts, but you might have a special location. Substitute that in step 4.
About:
I came across a number of these "raster fonts" a while ago. Quick look inside the files proved that they are bit-mapped fonts, and the format looked pretty straight-forward. I wrote the original parser for these just guessing the values, basically by experimenting and playing around. Later on I came across some docs on the subject - looks like these fonts were used in Windows 3.1 Japanese edition to substitute back-then low quality Japanese TTF fonts at small point sizes. These were designed using full-scale 16 bit programming techniques.
Quick info about the font format, there are some headers, then follows a "segment table" which is basically a table with pointers inside the font file where to locate a particular chunk of data. Because the 16 bit way of accessing memory is by using 65k "segments", each file is virtually split into < 65k segments which get loaded into separate memory areas, and then there is a algorithm how to assemble whatever character by using the segment number and offset. Anyway, with 32 bit access all of that doesnt really matter. In my implementation I just mmap the whole file and read it all out of memory.
Generating table.h was a LOT of work! First, I took the codearea table out of one of the jfr files (this maps shift-jis code to the character number inside the font file), and extracted the number ranges. These were shift-jis, of course, and X uses jis0208. There is no converter from a shift
jis byte into jis0208. So I had to write one. Taking iconv, and some tables from glibc 2.1.93, I hacked together something which converted the shift-jis data into ucs4 (unicode, I guess) and then from that into jis0208. The code to the converter is about 500k thanks to the huge jis->unicode->jis conversion tables, and you wont need it unless you get a jfr font with a different encoding table (unlikely). Anyway. After I got the font format figured out and converted the character table, everything else was pretty easy. Note some bit hackery in the bitmapXX() functions which was necessary to present the font data in a usable format. Also notice cool use of function pointers to select a conversion function at runtime.
Enhancements:
- This version uses correct JISX0208 tables, and is much faster.
Download (0.020MB)
Added: 2006-10-19 License: GPL (GNU General Public License) Price:
1101 downloads
VSOFont 1.8
VSOFont is a small library used to draw very simple and fast user definable 2D vector fonts. more>>
VSOFont is a small library used to draw very simple and fast user definable 2D vector fonts. At some point in time, when working with handheld devices, the font functions GLUT offered proved to be too massive. so i decided to write a very simple 3D vector text system using OpenGL myself. The application is coded in ANSI C.
Enhancements:
- added vsofont_read_font_from_memory().
- changed vsofont_read_font() to vsofont_read_font_from_file().
- example shows now how to draw a bolded string.
- VSOFONT header file should now work in C++ projects.
- small optimizations here and there.
<<lessEnhancements:
- added vsofont_read_font_from_memory().
- changed vsofont_read_font() to vsofont_read_font_from_file().
- example shows now how to draw a bolded string.
- VSOFONT header file should now work in C++ projects.
- small optimizations here and there.
Download (0.018MB)
Added: 2006-07-15 License: GPL (GNU General Public License) Price:
1196 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above compare fonts search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed