Double vector graphics, double quality


TMS VCL UI Pack offers a wide range of visual and non-visual components. Recognizing visual components is easy: drop them on the form and you're ready to go. Non-visual components, which in many cases, carry and support a lot of the visual components are not that recognizable when going on an exploration mission through the contents of the TMS VCL UI Pack. In today's blog post, I want to focus on a non-visual component, and a powerful engine that brings high quality vector graphics to life in your application: TAdvPDFLib & SVG support. When combining both, we get an out of the box, best quality vector graphics experience that will take your application to the next level.

SVG support

A while ago, we added SVG support in TMS VCL UI Pack. Whenever an SVG file is loaded, the internal vector graphics engine takes over and renders the SVG. This all happpens automatically at designtime, but at runtime, when loading an svg, we need to make sure the SVG engine is registered. To do this, add AdvTypes to the uses list. After this unit is added, we can load SVG files by using one of the methods to assign a value to a TPicture property, or any other property included in the TMS VCL UI Pack that support SVG.

procedure TForm1.LoadSVG;

Exporting to PDF

When integrating reporting in your application, you often re-organize your data into a grid / table structure and add a graphic in the form of an image. This could be anything such as a company logo or a chart that accompanies the data. To make sure the image quality is good, the size needs to be large enough. Depending on the way the report is actually displayed or printed, this could result in quality loss as the image is added with a fixed size. By using an SVG, the size does not matter, as it will be rendered by the native PDF graphics engine with the best quality. When we apply this when exporting to PDF, the code looks like this:
  AdvPDFLib, Types;

 procedure TForm1.Button1Click(Sender: TObject);
  p: TAdvPDFLib;
  p := TAdvPDFLib.Create;
    p.Graphics.DrawImageFromFile('nature.svg', RectF(50, 50, p.PageWidth - 50, 500));

When zooming in, you'll notice that the quality is not affected because of the native vector graphics used inside the PDF document.


Go ahead and download TMS VCL UI Pack and explore the vast amount of visual and non-visual features and components.