GcImaging v3.1

Render Special CJK Characters

GcImaging adds GrapeCity.Documents.Text.TextFormat.EnableFontHinting and GrapeCity.Documents.Text.Font.EnableHinting properties to enhance support for rendering specific CJK characters on Images.

To support CJK glyphs, GcImaging adds support for special true-type features (called hinting for drawing glyphs). This feature is helpful for the far-east Asian audience, using CJK text in PDF files. While hinting instructions can also help to improve the general text on the PDF files, these instructions can be used (especially in CJK fonts) to reuse some glyph parts in different glyphs, regardless of the font size. The feature is also supported when converting PDF documents to images (through GcPdf).

Visit Help | Demo

GcImaging v3

Render HTML Content to Images

Render HTML Content to Images

Saving web pages directly as HTML may not give the same rendering results as the original HTML, especially when viewing the page on different devices. When browsing the web, some content may need to be used in other formats, (Word, Excel, PowerPoint, or another documents). It's best to have the content as images, so you make edits like re-sizing, formatting or annotating through standard image editors.

GrapeCity Documents for HTML

The new GrapeCity Documents for Html package will help you render HTML content to Images. It is a utility package available with the GcPdf/GcImaging packages. A platform independent package, GcHtml can convert HTML content to images (PNG, JPEG, and PDF documents). To learn more, see what's New in GrapeCity Documents for PDF.

It also provides a set of convenient extension methods - DrawHtml() to render HTML content on the graphics. HTML rendering is done using the industry standard Chromium web browser engine working in headless mode, offering the advantage of rendering HTML to images on any platform (Windows, Linux, and macOS).

Users can additionally set various image settings while converting HTML to images. You do not need an additional license required to run GcHtml.

The package, GrapeCity.Documents.Html, includes the GcHtmlRenderer class, the main class that can render HTML content to Images. Internally, it uses one of three system-dependent HTML engine packages:

  • GrapeCity.Documents.Html.Windows.X64
  • GrapeCity.Documents.Html.Mac.X64
  • GrapeCity.Documents.Html.Linux.X64

GcHtml will automatically select the correct system-dependent engine package at runtime. That package must be referenced by your project so that GcHtml can find it. You can add references to all three platform packages to your project, or if you only target one or two platforms. Just add the relevant packages for the target platforms.

Key Features
  • Multi-platform package to render HTML content on Windows, macOS or Linux
  • Render HTML string/page/URI source to JPEG, PNG Images
  • Supports:
    • Images
    • CSS
    • JavaScript
    • HTML5
    • SVG
    • HTML Tables
  • Split long HTML content into multiple pages
  • Specify Page Margins
  • Specify JPEG Settings, PNG settings
    • DefaultBackgroundColor
    • WindowSize
    • Viewport
  • Specify JPEG Compression Quality (0%-100%)
  • Specify HtmlToImageFormat - formatting attributes for rendering HTML on GcGraphics

Read more about how to convert HTML content to images using GcImaging.

Help | GcHtml Architecture | Demo

Bitmap Glyphs Support

GcImaging now supports glyph bitmaps specified by the EBDT (Embedded bitmap data) table. With the new release, two new properties -AllowFontSbits and UseBitmapCache are added for rendering small text with low resolution in images.

Sbits are embedded bitmaps present in OpenType fonts for rendering complex glyphs at very small sizes. Such bitmaps usually appear in CJK fonts. If such bitmaps are provided in the font, the Font use these bitmaps when rendering the glyphs. Enlarge the two images below. The first one is before applying the bitmaps and the second one is after applying the AllowFontSBits and UseBitmapCache properties which looks much sharper.

Before applying bitmaps:

After applying bitmaps:

After applying bitmaps:

Documentation