mORMot documentation as web

We have enhanced our SynProject Open Source tool, so that it is now able to generate its documentation as HTML, in addition to doc/pdf documents. You can take a look at this web page. It contains the whole SAD 1.18 content. The pdf is more than 16 MB, whereas this html page is only 6MB. Note that  […]

Continue reading


SynPDF now generates (much) smaller PDF file size

We have reduced PDF generated file size for all version of the PDF format, by trimming any uneeded space in the generated content.

We introduced a new optional PDFGeneratePDF15File property for even better compression, using advanced features (Object Streams and Cross-Reference Streams) of the PDF 1.5 format.
This PDF 1.5 format needs Acrobot 6.0 and up to open them.
Which should be the case on your computer.

Can be up to 70% smaller for a pdf with a lot of pages with simple textual context.

I suspect our library is able to generate the smallest file size possible, even in regard to other alternative libraries.
Open Source can be great, can't it?

Continue reading


SynPDF now implements 40 bit and 128 bit security

The trunk version of our Open Source SynPdf library now features encryption using 40 bit or 128 bit key size.

This is a long awaiting feature, and sounds working just fine from my tests.
Speed has been optimized (as usual with our libraries), as a consequence encrypting the content will only be slightly slower.

Continue reading


64 bit compatibility of mORMot units

I'm happy to announce that mORMot units are now compiling and working great in 64 bit mode, under Windows.
Need a Delphi XE2/XE3 compiler, of course!

ORM and services are now available in Win64, on both client and server sides.
Low-level x64 assembler stubs have been created, tested and optimized.
UI part is also available... that is grid display, reporting (with pdf export and display anti-aliasing), ribbon auto-generation, SynTaskDialog, i18n... the main SynFile demo just works great!

Overall impression is very positive, and speed is comparable to 32 bit version (only 10-15% slower).

Speed decrease seems to be mostly due to doubled pointer size, and some less optimized part of the official Delphi RTL.
But since mORMot core uses its own set of functions (e.g. for JSON serialization, RTTI support or interface calls or stubbing), we were able to release the whole 64 bit power of your hardware.

Delphi 64 bit compiler sounds stable and efficient. Even when working at low level, with assembler stubs.
Generated code sounds more optimized than the one emitted by FreePascalCompiler - and RTL is very close to 32 bit mode.
Overall, VCL conversion worked as easily than a simple re-build.
Embarcadero's people did a great job for VCL Win64 support, here!

Continue reading


Enhance existing projects with mORMot

Even if mORMot will be more easily used in a project designed from scratch, it fits very well the purpose of evolving any existing Delphi project, or even creating the server side part of an AJAX application. 

One benefit of such a framework is to facilitate the transition from a Client-Server architecture to a N-Tier layered pattern.

Continue reading


Synopse PDF Engine 1.18

Our SynPdf library was released as part of every mORMot version. But the stand-alone .zip was still in 1.15 revision. I have updated it, and now it reflects the latest version from our source code repository (i.e. 1.18). Open Source, working from Delphi 5 up to XE3. Thanks to nice proposals - like  […]

Continue reading


Synopse mORMot framework 1.17

Our Open Source mORMot framework is now available in revision 1.17.

The main new features are the following:

We have some very exciting features on the road-map for the next 1.18 release, like direct Event/CallBacks handling.
Stay tuned!

Continue reading


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


The mORMot attitude

In a discussion with Henrick Hellström, in Embarcadero forums, I wrote some high-level information about mORMot.

It was clear to me that our little mORMot is now far away from a simple Client-Server solution.

The Henrick point was that with Real Thin Client (RTC), you are able to write any Client-Server solution, even a RESTful / JSON based one.

He is of course right, but it made clear to me all the work done in mORMot since its beginning.
From a Client-Server ORM, it is now a complete SOA framework, ready to serve Domain-Driven-Design solutions.

Continue reading


Synopse PDF Engine 1.15

For our PDF generation Open-Source library, this is a small fix update.

It can now be compiled under Delphi XE2.
But it's still working from all previous IDE versions, starting with Delphi 5, and still 100% free - released under GPL/LGPL/MPL license, choice is yours.

Continue reading


Close future of the framework: database agnosticism

Our ORM RESTful Framework is about to access any available database engine.

It will probably change its name (since it won't use only SQlite3 as database), to become mORMot - could be an acronym for "Manage Object Relational Mapping Over Tables", or whatever you may think of...

We'll still rely on SQLite3 on the server, but a dedicated mechanism will allow to access via OleDB any remote database, and mix those tables content with the native ORM tables of the framework. A flexible Virtual Tables and column mapping will allow any possible architecture: either a new project in pure ORM, either a project relying on an existing database with its own table layout.

Continue reading


Synopse PDF Engine 1.14

Our SynPdf unit has been updated to the 1.14 version. Some enhancements: new SetCMYKFillColor and SetCMYKStrokeColor methods for TPdfCanvas now handles EMR_POLYBEZIER* commands in conversion from meta file content fixed EZeroDivided error when enumerating SetWindowExtEx(szlExtent(0,0)) some  […]

Continue reading


Synopse PDF Engine 1.13

Our SynPdf unit has been refreshed to the 1.13 version.

  • code modifications to compile with Delphi 5 compiler;
  • added horizontal scaling for GDI enumeration in case of text kerning (could occur for small fonts);
  • fixed "Save when closing with Acrobat Reader X" - thanks to Ondrej for the fix;
  • fixed clipping problems and vertical font positioning issue in GDI enumeration - thanks to Ondrej for those corrections!
Our pdf engine sounds almost stable by now.
Thanks to the feedback provided by some user of this Open Source library!

Continue reading


SQLite3 Framework updated to 1.12 - including engine 3.7.5

The Synopse SQLite3 Database Framework was just released under version 1.12:

  • internal SQLite3 database engine was updated to version 3.7.5, and SQL functions have been enhanced;
  • now handle prepared SQL statements with a neutral automated syntax;
  • with Delphi 2009/2010/XE, you can define directly Unicode string properties in TSQLRecord (will be stored as UTF-8);
  • include some overloaded methods using Variants for direct property access (e.g. in any grid);
  • SynPdf has now direct bookmarks and links methods, can reuse any existing bitmap, and generate PDF/A-1 files;
  • internal reporting now supports bookmarks and links (with on screen navigation), and better integrates with SynPdf;
  • a lot of bug fixes, new methods and enhancements.

Continue reading


Synopse SQLite3 Framework 1.8

The Synopse SQLite3 Database Framework was just released under Version 1.8.

SQLite3 just officially reached version 3.7.0, so it's time to commit our changes from our source code repository to the main "stable" zip.

Continue reading


htm2pdf free tool

Using our SynPDF library and a public domain THtmlView component, and discussion with some of our users, we were able to make a html to pdf conversion tool.

Continue reading


Making report from code

Did you notice the SQLite3Pages units?
It's a reporting unit included in our SQlite3/mORMot framework, but it can be used standalone...

Continue reading

Synopse PDF libray 1.8.1

Our PDF engine has been updated, it's now on version 1.8.1.

Continue reading


Synopse PDF engine 1.8

Our PDF engine has been updated, it's now on version 1.8.

Continue reading


SQLite3 Framework version 1.7

Our SQLite3 Framework has been updated into the 1.7 version. For Delphi 7 to Delphi 2010.

Mostly User-Interface (reporting) enhancements, and some bug fixes.

Continue reading

- page 1 of 2