Exemplo n.º 1
0
        internal GdiFontMetrics(GdiDeviceContent dc, GdiFont currentFont)
        {
            if (dc.Handle == IntPtr.Zero)
            {
                throw new ArgumentNullException("dc", "Handle to device context cannot be null");
            }
            if (dc.GetCurrentObject(GdiDcObject.Font) == IntPtr.Zero)
            {
                throw new ArgumentException("dc", "No font selected into supplied device context");
            }
            this.dc          = dc;
            this.currentFont = currentFont;

            // FontFileReader requires the font facename because the font may exist in
            // a TrueType collection.
            StringBuilder builder = new StringBuilder(255);

            LibWrapper.GetTextFace(dc.Handle, builder.Capacity, builder);
            faceName = builder.ToString();

            ranges    = new GdiUnicodeRanges(dc);
            reader    = new FontFileReader(new MemoryStream(GetFontData()), faceName);
            converter = new PdfUnitConverter(EmSquare);

            // After we have cached the font data, we can safely delete the resource
            currentFont.Dispose();
        }
Exemplo n.º 2
0
        internal GdiFontMetrics(GdiDeviceContent dc, GdiFont currentFont) {
            if (dc.Handle == IntPtr.Zero) {
                throw new ArgumentNullException("dc", "Handle to device context cannot be null");
            }
            if (dc.GetCurrentObject(GdiDcObject.Font) == IntPtr.Zero) {
                throw new ArgumentException("dc", "No font selected into supplied device context");
            }
            this.dc = dc;
            this.currentFont = currentFont;

            // FontFileReader requires the font facename because the font may exist in 
            // a TrueType collection.
            StringBuilder builder = new StringBuilder(255);
            LibWrapper.GetTextFace(dc.Handle, builder.Capacity, builder);
            faceName = builder.ToString();

            ranges = new GdiUnicodeRanges(dc);
            reader = new FontFileReader(new MemoryStream(GetFontData()), faceName);
            converter = new PdfUnitConverter(EmSquare);

            // After we have cached the font data, we can safely delete the resource
            currentFont.Dispose();
        }
Exemplo n.º 3
0
 /// <summary>
 ///     Class constructor.
 /// </summary>
 /// <param name="pairs">Kerning pairs read from the TrueType font file.</param>
 /// <param name="converter">Class to convert from TTF to PDF units.</param>
 internal GdiKerningPairs(KerningPairs pairs, PdfUnitConverter converter) {
     this.pairs = pairs;
     this.converter = converter;
 }
Exemplo n.º 4
0
 /// <summary>
 ///     Class constructor.
 /// </summary>
 /// <param name="pairs">Kerning pairs read from the TrueType font file.</param>
 /// <param name="converter">Class to convert from TTF to PDF units.</param>
 internal GdiKerningPairs(KerningPairs pairs, PdfUnitConverter converter)
 {
     this.pairs     = pairs;
     this.converter = converter;
 }