About Arcoba

Arcoba Company logo

Arcoba is a small company specialized in financial software. We provide analysis and development of software solutions, advanced and proactive customer support, data migration, and constant updates. Arcoba also deals directly with the analysis, development, and design of software solutions aimed at satisfying the operational/functional needs of its customers.

Problem

Our goal and our need were to develop a feature that allowed users to convert a text (.html) generated by web-based JavaScript WYSIWYG HTML editor (TinyMCE) in word (both .doc and .docx) and pdf format. We needed to realize this as a .NET service, working under both Linux (mono) and Windows environment.

Experience

We started to look for software components (possibly free - our budget was quite low) to use for our development.

We tried many components, including:

  • Wkhtmltopdf (html to pdf – free)
  • Essentialobjects (html to pdf - third party)
  • Nreco (html to pdf – free)
  • Docx4j (html do docx – free)
  • Gembox (html to docx - third party)
  • Html to OpenXML (.docx to html - free on codeplex)
  • OpenXML (.docx to html – free)
  • DocX (.docx to html - free on codeplex)

and, after some (not really exciting) experimentation, we chose to use Wkhtmltopdf, available for both Windows and Linux and Docx4j (java) for our project.

Unfortunately, both of these components were not able to replicate faithfully the content of the HTML file, so we had to dynamically make changes to the HTML content in order to have acceptable results. Even with this approach, it was impossible to be sure about the quality of the results! (the HTML files included many combinations of tags which cannot be managed correctly).

Since we had a really short time, so we presented the developed solution to our customers, who became very disappointed due to the following reasons:

  • The font style in some cases suffered changes
  • Pagination and text disposition on the page were not always fully respected
  • Images were not aligned and sized properly
  • The overall conversion performance was not really exciting

Practically, only a few customers were able to use the new feature and it only worked in very simple conversions.

Solution

We did not give up, so we decided to try Aspose.Words for .NET component, which we did not consider in the first place, because of the relatively high prices.

Well… the results were exciting:

  • Excellent conversion quality (absolutely no problem with page style and pagination itself)
  • Use of a single component to perform conversions between HTML, Word or PDF
  • Significantly improved conversion performance
  • No more need to develop dynamic changes to the content of the HTML file
  • It works really well in both Windows and Linux environment
  • And finally: faithful and identical output from the HTML conversion to MS Word document and HTML conversion to PDF format

It was very easy to use Aspose.Words for .NET to load and manipulate HTML files and for the conversion process.

HTML to Word conversion code snippet

Image:- Preview of HTML to MS Word document conversion code snippet

Preview of TinyMCE editor

Image 2:- TinyMCE editor (source HTML template example)

Resultant PDF generated with Aspose.Words for .NET

Image 3:- Final PDF output

Resultant DOCX preview

Image 4:- Final DOCX output

Develop

We used a free trial to try and test Aspose.Words for .NET in our application. We also contacted Aspose Technical support (free for all) to ask help about some conversion behaviours.

Next Steps

In future, we will implement a feature to dynamically generate excel documents and, surely after this experience, we will directly use Aspose.Cells for .NET. It will help us in saving time and we hope that the results would be excellent.

Summary

Aspose.Words for .NET is a powerful component, very easy to integrate and to use. We recommend Aspose not only for its products but also for its open-source feel approach (frequent releases, features prioritized according to your requests, free support for anyone).

**Stefano Facchetti
**Software Engineer