xlsgen > overview > Chart rendering engine |
xlsgen has a chart rendering engine. A number of scenarios are enabled.
When chart rendering was introduced in xlsgen with version 2.5, the reliance over Microsoft OWC charting component was an obvious choice given that this component was free to use, originating from the Microsoft Office team, and versatile enough to accomodate a number of core scenarios.
But as time went by, while xlsgen refined the integration of Microsoft OWC charting component more and more with every release, two major obstacles made their way : 64-bit on the one hand ; Microsoft hotfixes and kill-switch related to Microsoft OWC on the other hand.
The 64-bit obstacle was unfortunate. 64-bit happened and Microsoft chose to never release a 64-bit version of their OWC charting component. So for 64-bit scenarios, xlsgen could not render charts. It could read and write charts from XLS and XLSX charts, but it could not render them in print, preview, PDF, ..., scenarios. This became a major problem for our customers when two years ago organizations out there started moving to Windows 7 64-bit, basically 64-bit on every desktop or server.
This problem became worse over time as Windows 7 proved to be more touchy about doing simple things such as registering COM components or even running a COM component at all as we have learned. So when we told our customers that they could run 32-bit scenarios on 64-bit systems, which was and is still true to this day, it forgets to take into account all the configuration work that has to occur on customers PCs to get such a simple scenario to work.
We had to come up with a better solution for this because from the beginning one of the tenets of xlsgen was to always provide a run-time environment that meets the environment of customers, not have our own customers adapt to us.
We have engineered a full chart rendering engine from scratch and can now render charts no matter the system you are using. Obviously, you can still use Microsoft OWC chart rendering if strict version compatibility is a key feature for you. One line of code for making the compatibility scenario up and running is all it takes (workbook.ChartEngine = chartengine_owc;
). By default, beginning with xlsgen 3.5, our built-in chart rendering engine draws all charts where chart rendering is involved, i.e.
print, preview, PDF, XPS, HTML and extract scenarios.
The other obstacle was Microsoft policy for hotfixes, patches and ActiveX kill-switches. To add insult to injury, Microsoft chose to provide their customers with disabling tools as opposed to fixing security problems in their own software, for instance vulnerabilities found in Microsoft OWC charting component over the last few years. By doing that, customers killed the very idea of using Microsoft OWC charting component either directly or through xlsgen. Combined with the move to 64-bit, it explains the urgency for us to come up with a working solution for Microsoft "legacy" support problems. Giving way to our own chart rendering engine.
As the name implies, bitmap charts get pixelized in almost any zoom level, whereas native charts scale to whatever zoom level. Also, when native charts are written in PDF files, they produce much smaller file size output than bitmaps. Consume less memory, and they are faster to generate and render.
Choosing which one is done like this :
workbook.ChartEngine = chartengine_builtin; // bitmap chartsor
workbook.ChartEngine = chartengine_scalable; // native PDF charts (is the default setting in xlsgen 4.5)
xlsgen documentation. © ARsT Design all rights reserved.