Gekom used .NET Word API to Generate Invoices from User Input and Word template

About Gekom

Gekom company logo

Gekom is an online web application that offers small companies and freelancers a secure, reliable, and easy way to manage their customers’ quotes and invoices wherever they are. Gekom customers can quickly create and download an invoice in order to send it by e-mail or print it out.

Requirements

During the development of Gekom, one of the major difficulties was to find the right way to handle document generation. While using a database engine to store user input is a very common issue that is not difficult for a developer to solve but document generation is not a straightforward task. The main requirements while building Gekom were:

The third requirement was probably the most interesting to solve: the question was how to use Microsoft Word for authoring templates without using Microsoft Word for generating invoices?

Actors

The above-specified scenario was supposed to be performed daily by all users of the application.

Solution

After several tries and non-convincing results, the answer was found: Aspose.Words for .NET.

Generate Invoices as Words document
Image 1:- Collecting user input from within an ASP.NET WebForms application.
Invoice download preview
Image 2:- Downloading the invoice once it has been generated server-side.
PDF preview of resultant invoice
Image 3:- The result was a tailor-made invoice showing the chosen company logo.

Products Used

Aspose.Words for .NET has been used to build this use case into an ASP.NET web application written in C#. The following functionalities of Aspose.Words for .NET were used:

Why Aspose?

As a software developer, we have been facing the document generation challenges several times, in several contexts. We already have been using:

  • Word/SpreadsheetML in conjunction with XML data and XSLT transforms
  • Office automation
  • XSL-FO language and processors

But we were never convinced by any of these solutions: performance, easy templates management, and data integration requirements were never met all together.

Once we implemented real-world scenarios using Aspose.Words for .NET, we got to know for the first time, which components we will continue using.

Future Implementations

Aspose.Words for .NET provided a so simple solution to our main requirement (that was to be able to manage templates using Microsoft Word), that we seriously consider extending the use of other components. We consider providing the end-users with a way to generate monthly Excel extracts using Aspose.Cells for .Net.

Conclusion

We are really convinced about the quality and the robustness of Aspose components and would recommend every software developer to have a look at it.