Printer’s Apprentice 8.0.22 – New Character Set Support

October 15th, 2008 by Bryan Kinkel

Printer’s Apprentice 8.0.22 adds support for displaying character sets besides the standard 255 glyphs in the standard Latin Windows set (1252). This enables you to easily display and print characters found in non-Western alphabets such as Hebrew, Greek and Cyrillic.

You can download this version from the following link:

icon_greenarrow16 Download Printer’s Apprentice 8.0.22 for Vista & XP

In this post, I want to review how non-Western characters are implemented under Windows and the new features in Printer’s Apprentice 8.0.22.

Windows supports the Unicode standard along with several code pages that are included for backward compatibility. Unicode supports over 65,000 characters with defined subsets for different languages and glyphs (Latin, Greek, Arabic, etc). More information about Unicode can be found at unicode.org. Wikipedia also has a good article covering the topic.

The Windows character set approach is an encoding implemented by Microsoft prior to Unicode. Each set contains 255 numbered spots that map to the glyphs in the particular set. A standard set of alphanumeric, symbol and control characters occupy the the first 128 positions. Additionally, Microsoft provides tables, hosted at unicode.org,  that map each character to its associated Unicode value. For example, the Windows Hebrew character set maps the Hebrew letter bet in slot 225 to code point 0x05D1 in Unicode. Printer’s Apprentice uses the Unicode values to draw glyphs on screen and on paper.

With Printer’s Apprentice, I chose to mimic the display of the Windows Character Map (charmap.exe) utility. This app displays glyphs using the full Unicode range, Unicode subsets and Windows Character sets.

charmap charmap2

 

This build, 8.0.22, uses the character set approach to group and display glyphs within a font. Eventually I will support full Unicode & Unicode subset displays. By using the Windows character sets, I minimized the changes to the existing code. It also meant that I did not have to design new printed sample sheets for the charts. The existing printed sample sheets work very will with non-Western sets.

One important note – internally, Printer’s Apprentice is a fully Unicode-based application. Strings in Microsoft’s .NET platform are represented as collections of Unicode characters which makes it easy to do the type of things I’m doing under the hood.

And in these example screen shots, I use Cyrillic. But Printer’s Apprentice supports the single byte character sets listed below. (Other sets and Unicode ranges are planned!)

When Printer’s Apprentice starts, it attempts to determine the locale that you are running. For example, if you are running a localized Russian version of Windows, PA will automatically default to displaying the Cyrillic character set.

You will notice the following minor changes in the user interface:

  • The Single Character and Character Set tabs display the ANSI and Unicode values in the upper right hand corner. You can toggle their display using the Options screen.
  • The current character set in use is displayed in the blue title bar in the upper right hand corner. It is a hotlink that will open the Options screen.
charset-cy charset-cy2

 

To change the change the character set being used, select Options from the Tools menu or click the set name in the blue title bar. This opens the Options dialog box where you can change the current character set. Also note the new sizes for the Character Set grid.

options gridsize

 

I also added support for printing the new character sets. So if Cyrillic is currently selected, you can print sheets that look like the sample below. The current character set name has also been added to the pages in the upper right hand corner. If you want to print a different set just click the Options tab on the Print dialog.

print1 print2

As always, we encourage feedback on how features are implemented in Printer’s Apprentice. Feel free to comment in the blog or shoot an email to helpdesk at lose your mind dot com. — Bryan

Posted in Printer's Apprentice, Programming, Windows | 1 Comment »

Printer’s Apprentice 8.0 – "Check for New Version"

September 4th, 2008 by Bryan Kinkel

Just about every Windows application has some sort of function for checking if there is a new version available. And considering the pace of development in our software, it makes absolute sense for Printer’s Apprentice to have this function as well.

The Printer’s Apprentice web site already has a changelog.dbf table that drives the product update pages. So it was trivial to add additional information and make it drive the "check for new version" function.

At this time, the UI is very simple. A menu item launches the operation with a confirmation dialog.

check1   check2

Once the operation is confirmed by the user, Printer’s Apprentice queries our server through a .NET based web service running on the box. The web service sends down the latest version information in an XML data structure. Printer’s Apprentice then picks apart the data and shows you a dialog box with the new version information.

check3

Clicking "Download New Version" will then download the most recent ZIP file. At this time, the software does not automatically unzip the file and launch the new executable. I will eventually get to that – but I wanted to get things going and keep it simple.

The "Check for New Version" function will be available in the next beta. — Bryan

Posted in Printer's Apprentice | 2 Comments »