Synopse

To content | To menu | To search

Tag - GDI

Entries feed

2012, Tuesday July 10

Better Unicode support in Reports and PDF generation

By default, both GDI+ anti-aliased drawing and PDF file generation using our libraries did lack of font-fallback implementation.

If some of the characters in a string are not supported in a requested font, they were drawn as square symbols on the GDI+ canvas or the PDF content.

The font-fallback mechanism implemented will use a third-party font (Arial Unicode MS by default, which is installed with Microsoft Office), for any glyph that are missing when rendering the content. Of course, for PDF generation, you are able to embed the font within the generated file (this is by the way mandatory for PDF/A-1 format).

Both of these new features are handled by the SQlite3Pages unit, i.e. for report anti-aliased drawing preview and PDF generation.

By the way, the TGDIPages class itself (the one used for report generation from code) now handles by default Unicode text, even with Delphi versions prior to 2009 (via the SynUnicode string type, which maps WideString before Delphi 2009, then UnicodeString starting with Delphi 2009). Does make sense with such a font-fallback mechanism.

Continue reading...

2010, Friday April 2

Antialiased drawing from TMetaFile

The new version of our Open Source SynGdiPlus  unit does provide a lot of new features: 
- dynamic linking (your program runs even on Windows 98/2000), without the gdiplus.dll library
- use version 1.1 of GDI+ if available on your system (under Vista/Seven or the one embedded since Office 2003)
- can convert from a TMetaFile (i.e. emf) into a GDI+ metafile (i.e. emf+)
- can draw TMetaFiles into any canvas, with GDI+ anti-aliasing!

Continue reading...

2010, Saturday March 20

GIF, TIF, PNG and JPG pictures TGraphic read/write via GDI+

Implements TGraphic descendants able to load and save GIF, TIF, PNG and JPG pictures, using the GDI+ library. Freeware Opensource component, licensed under a MPL/GPL/LGPL tri-license. Works from Delphi 3 to 2010.

Continue reading...