private void putchartab()
        {
            var count = _lastchar - _firstchar + 1;
            var ctabs = new int[count];

            _inp.Seek(_chartab);
            for (var k = 0; k < count; ++k)
            {
                ctabs[k] = _inp.ReadUnsignedShortLe();
            }

            var back = new int[256];

            if (_charset == 0)
            {
                for (var i = _firstchar; i <= _lastchar; ++i)
                {
                    if (_win2PsStd[i] != 0)
                    {
                        back[_win2PsStd[i]] = i;
                    }
                }
            }
            /* Put outp the header */
            _outp.Write("StartCharMetrics");
            outval(count);
            _outp.Write('\n');

            /* Put outp all encoded chars */
            if (_charset != 0)
            {
                /*
                 * If the charset is not the Windows standard, just put outp
                 * unnamed entries.
                 */
                for (var i = _firstchar; i <= _lastchar; i++)
                {
                    if (ctabs[i - _firstchar] != 0)
                    {
                        outchar(i, ctabs[i - _firstchar], null);
                    }
                }
            }
            else
            {
                for (var i = 0; i < 256; i++)
                {
                    var j = back[i];
                    if (j != 0)
                    {
                        outchar(i, ctabs[j - _firstchar], _winChars[j]);
                        ctabs[j - _firstchar] = 0;
                    }
                }
                /* Put outp all non-encoded chars */
                for (var i = _firstchar; i <= _lastchar; i++)
                {
                    if (ctabs[i - _firstchar] != 0)
                    {
                        outchar(-1, ctabs[i - _firstchar], _winChars[i]);
                    }
                }
            }
            /* Put outp the trailer */
            _outp.Write("EndCharMetrics\n");
        }