Aspose Helps DTS Manage PowerPoint Slides

Share on FacebookTweet about this on TwitterShare on LinkedIn

As a business, we recently embarked on a journey of developing our own web apps to help our customers and streamline some of our internal workflows. Having employed an internal software developer, we started building an application to help our customers (typically trainers, coaches, consultants and facilitators) access high-quality workshop content that was professionally designed and easy to use.

Our goal was to create a system that managed our several thousand workbook activity pages and create a marketplace for thought leaders to buy and sell content. The app would build a PDF workbook from a series of single workbook activity pages selected and ordered by the user.

We had always wanted to include PowerPoint slides with the system, but with an aggressive launch target, we had almost abandoned the idea. Then our developer found Aspose Slides. The API quickly provided us with a seamless integration and the functionality we needed. By investing a day in the integration, we saved a few weeks of Dev time that could be spent on other critical components of our application.

Some notes from our developer:

“We initially tried using PHPPresentation by PHPOffice to handle merging and splitting of our slides, with no luck. It wasn’t able to manipulate slides as we hoped it would. We also tried Apache POI using the php-java-bridge, but this was quite a messy solution. Their APIs were not as extensive or clean as Aspose Slides Java for PHP. Using the php-java-bridge we were able to build a fast application that can move slides between presentations and add in a copyright line to each slide’s footer. It’s also great to know that we are able to achieve any other PowerPoint editing the app might need to handle in future.”

In our first iteration of our App we have used only a few basic functions like merging and splitting PowerPoints. Utilising the Aspose API has opened up a number of other opportunities for us to develop future features in our application that will allow our users to manipulate, create and edit PowerPoint too. This will be a valuable and desirable feature set in future versions of our App.

While we could have spent the time to develop our own code to manipulate the PPT files, licensing Aspose accelerated our development process and ultimately our launch.

As we launch the App, we know that our users will love that they have a ready-to-use PowerPoint deck to accompany their workbook. Thanks, Aspose!

For more info, checkout Aspose Slides

Posted in Aspose.Total Product Family | Leave a comment

Use 64-bits Aspose.Cells for C++ 19.4 lib in NuGet repos. that works equally well in debug and release modes

Share on FacebookTweet about this on TwitterShare on LinkedIn

You cannot deny some useful features of NuGet repos. Obviously using the NuGet you can have simple and portable compilation of your codes. Without NuGet, you have to load library for all developers before compiling it on their environments. Surely, for industrialization, it would be simple to have the library on NuGet gallery.

Previously we included 64-bits lib (for VS2017) package in NuGet repos. But there was a drawback in it for certain users. We found x64 based program (using the Aspose.Cells for C++ library) compiles fine in Release mode but fails in Debug mode. Some users wanted to use it in debug mode for their scenarios, they needed some objects like lists which were not accessible in Release mode. In this release, we have gone one step further. We have published the new library in NuGet repos. which can make your program compiled successfully in Debug mode as well.

We also fixed a bug in formula calculation engine where it was throwing an exception and was terminating the program. The formula calculations is another reliable aspect provided by component and you may utilize it efficiently to calculate the formulas/functions in the spreadsheet.

I would recommend you to try the release Aspose.Cells for C++ v19.4. And, if you have more time, browse Developers’ Guide for your complete reference on what you can deliver using the API. You are always welcome to share your review, concerns or feedback on forums.

Posted in Aspose.Cells Product Family | Leave a comment

Basic Map rendering and export to SVG using Aspose.GIS for .NET 19.4

Share on FacebookTweet about this on TwitterShare on LinkedIn

So when we talk about some GIS API, rendering advanced map files seems to be the first thing which comes in mind. Good news is that the new release  Aspose.GIS for .NET 19.4 contains this feature. This is not all about this release as there are many other upgrades as well. You should go through the release notes to get a complete list of what is new and fixed. Let us see what is inspiring there in this release.

Basic map rendering

It seems you were waiting since long to render maps using Aspose.GIS and that’s it, the wait is over as this feature is provided in the latest API to render Shapefile, FileGDB, GeoJSON, KML or other supported file formats to SVG. We have put special effort to keep this process simple i.e. render maps using very few lines of code for the sake of simplicity and quick results without setting a large number of properties. Just have a look at how simple is it to render a map.

See how easy it is by just setting the resultant image resolution, selecting the driver according to the input file type and that’s all. The map is ready to render as SVG.

Here is the output of the program:

You may be worried about the look and feel like its just a black and white blueprint. Is this the new feature which was awaited since long? No! this is just the simplest output to show the functionality. You can customize rendering and feature styles in order to achieve the look you want. Here is an advanced sample code demonstrating more features in this new release.

Let us see how the styles will change the output using above sample code:

Wow! great. Now you can start working with this feature using your sample maps. Is it?

To understand the details of the code please visit this article in the documentation section.

Datum conversion due to incomplete SRS WKT

Aspose.GIS has introduced a new feature of converting between datums when SRS WKT definition is not complete. In order to transform between geographic SRS, TO_WGS84 parameters are required. If they are present in WKT definition, Aspose.GIS can transform between any geographic SRSs. If they are not present, Aspose.GIS tries to detect TO_WGS84 parameters by SRS name. If this fails, Aspose.GIS tries to find SRS with the same parameters and similar datum name, in order to take TO_WGS84 parameters from a similar SRS.

Other upgradations

Following up gradations are done to make the library more user friendly and error free.

  • Some extra content at the end of the document was reported while overwriting an existing file. This problem is no more there.
  • There were some issues while specifying paths in the same folder as the executable, however, this issue is resolved now.
  • There were instances where misleading error messages were thrown for a missing file. It was like “Unexpected end of file” which was not indicating the actual issue. This message is corrected now.
  • There was an un-necessary constructor in the GPX driver class which is removed now to avoid any confusion.

Hope you got a fair idea about this new release. Enjoy using this latest version and share your thoughts to enhance it on our support forum.

API Resources

Posted in Aspose.GIS Product Family | Leave a comment

Identify Style Separator Paragraph, Get Font Line Spacing, Fake Result of Field, and Load Fonts from Stream

Share on FacebookTweet about this on TwitterShare on LinkedIn

Hi guys! We are pleased to announce the new release of Aspose.Words for .NET 19.5. After reading this blog, you will be able to work with paragraph style separator, smart style behavior while joining documents, line spacing of font, get the field’s result that has no field separator node, load fonts from stream, and DML text effect. Interesting, isn’t it?

Let’s check out these features one by one.

Added Overload of AppendDocument Method With Additional ImportFormatOptions Parameter

We added ImportFormatOptions.SmartStyleBehavior property in Aspose.Words 19.4 to specify how styles will be imported while importing one document into another. In this release, we added overload of Document.AppendDocument method that uses this property while joining documents. The additional options will affect the formatting of result document. Here is a simple code example for you.

Identify Style Separator Paragraph

The style separator can be added to the end of a paragraph using the Ctrl + Alt + Enter Keyboard Shortcut into MS Word. This feature allows for two different paragraph styles used in one logical printed paragraph. Starting from Aspose.Words 19.5, you will be able to identify either paragraph break is a Style Separator or not. The Paragraph.BreakIsStyleSeparator property has been added in this release. Below code example shows how to use it.

How to Get Font Line Spacing

In typography, leading (line spacing of a font) refers to the distance between adjacent lines of type. It is the vertical distance between the baselines of two consecutive lines of text. Thus, the line spacing includes the blank space between lines along with the height of the character itself.

The solution to get the font line space is simple. It is Font.LineSpacing property that has been added in this release. Please check the following code example.

Obtain Fake Result of Field

Starting from Aspose.Words 19.5, you can get the result of field that has no field separator node. We added Field.DisplayResult property to achieve it. Note that MS Word displays it in the document by calculating the field’s value on the fly. You can use this property as shown below.

Add feature to Load Fonts from Stream

In some cases, you need to load fonts from stream instead of disk. Now, you do not need to worry about it. We added new feature in this release to load the fonts from stream that will be used during Document import and rendering document to fixed file formats. Please refer to the following article for more detail.
Loading Fonts from Stream

How to Check DML Text Effect

MS Word allows user to set the text effect e.g. Glow, Fill, Shadow etc. To get this text effect, we added Font.HasDmlEffect method in this release. Below code example shows how to use it.

Obsolete Properties and Methods Related to Font Substitution Settings were Removed from FontSettings class

You may be wondering about deleted API. Here is the detail of deleted properties and methods.

Obsolete property DefaultFontName was removed from FontSettings class. Please use SubstitutionSettings.DefaultFontSubstitution instead.

Obsolete property EnableFontSubstitution was removed from FontSettings class. Please use SubstitutionSettings.FontInfoSubstitution instead.

Obsolete methods GetFontSubstitutes, SetFontSubstitutes, AddFontSubstitutes was removed from FontSettings class. Please use SubstitutionSettings.TableSubstitution instead.

There are many other features, enhancement, and bug fixes included in this release. Please check the release notes of Aspose.Words for .NET 19.5.

When time allows you can check Aspose.Words’ API examples at Github, talk about this release and other API related issues in our forum.



Posted in Aspose.Words Product Family | Leave a comment

Support for encoding MPX files available in Aspose.Tasks 19.4

Share on FacebookTweet about this on TwitterShare on LinkedIn

aspose-tasks-for-netHi friends! In today’s blog, I will be giving you tour of latest Aspose.Tasks 19.4. The commendable thing about Aspose team is that it publishes both .NET and Java based API for Aspose.Tasks simultaneously every month. Both .NET and Java based variants are at same level in terms of features and both API users may explore the new features in their respective environments. In following section, I will be discussing about new features and improvement carried in API.

Encoding Microsoft Project File Exchange (MPX) Files

MPX is a ASCII coded text based file format used by Microsoft Project. It’s mainly used for transferring project data between different versions of Project. These files can also be opened by some project planning programs, such as Primavera Project Planner etc.

With this new support available, one can also import data from Primavera MPX file format too. In following example, you may observe a scenario importing data from Primavera MPX file format.

The similar Java based implementation for the same is like as under:

Rendering Improvements

In this release the focus has also been set on improvement of rendering performance of API. For that matter, limitations like missing header footer information, improper Gantt chart colors in rendered images or PDFs have also been addressed

Hold on, there’s many other features, enhancement, and bug fixes included in this release. Here you can get the detail!

We have also maintained the working sample examples for both .NET and Java based APIs on Github so that users may right away use different samples and explore API features. You may also talk about API related issues with us in our product support forum.

Posted in Aspose.Tasks Product Family | Leave a comment

Release JAR Upgraded to JDK 7, Add Bi-Directional Marks in TXT and much more by using Aspose.Words for Java 19.3

Share on FacebookTweet about this on TwitterShare on LinkedIn

Guys, lets check out what’s new for you in Aspose.Words for Java 19.3 release.

Release JAR Upgraded to JDK 7

We have upgraded the release JAR of Aspose.Words for Java from JDK 6 to JDK 7. This means that if you are referencing Aspose.Words for Java from Maven then you will have to update the classifier value to jdk17 as follows:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>19.3</version>
    <classifier>jdk17</classifier>
</dependency>

Preserve Representation of Legacy Control Characters While Exporting Document to OOXML

Some document formats support legacy control characters. MS Word does not save these symbols to DOCX format (more accurately in OOXML formats). However, we added new property KeepLegacyControlChars in OoxmlSaveOptions class to preserve such control characters. So far only one legacy character (ShortDateTime) is supported which declared in the “DOC” format. Here’s how you can use this property:

How to Add Bi-Directional Marks

You can use TxtSaveOptions.AddBidiMarks property to specify whether to add bi-directional marks before each BiDi run when exporting in plain text format. Aspose.Words inserts Unicode Character ‘RIGHT-TO-LEFT MARK’ (U+200F) before each bi-directional Run in text. This option corresponds to “Add bi-directional marks” option in MS Word File Conversion dialog when you export to a Plain Text format. Note that it appears in dialog only if any of Arabic or Hebrew editing languages are added in MS Word. Below code example shows how to use TxtSaveOptions.AddBidiMarks property. The default value of this property is false.

Predefined Font Fallback Settings for Google Noto Fonts

You may know about Noto. It is a font family comprising over a hundred individual fonts. We have added predefined font fallback settings for Google Noto fonts. These are free fonts licensed under SIL OFL. Here are two important points:

  • The predefined settings uses only Sans style Noto fonts with regular weight.
  • Aspose.Words does not support advanced typography. So, the Noto fonts that use advanced typography may be rendered inaccurately

Following code example shows how to use predefined font fallback settings

Text Alignment of Axis Tick Labels

If you want to set text alignment for multi-line labels, you can simply achieve this by setting the value of ChartAxis.setTickLabelAlignment() property. Following code example shows how to tick label alignment.

Specify How List Levels are Indented When Exporting Document to Plain Text Format

Aspose.Words introduced TxtListIndentation class that allows specifying how list levels are indented while exporting to a plain text format. While working with TxtSaveOption, the ListIndentation property is provided to specify the character to be used for indenting list levels and count specifying how many characters to use as indentation per one list level. The default value for character property is ‘\0’ indicating that there is no indentation. For count property, the default value is 0 which means no indentation.

Using Tab Character

Using Space Character

Using Default Indentation

See also Useful Links

Keeping the Aspose tradition, you are welcome to shape the upcoming releases of Aspose.Words for Java API by posting your suggestions and concerns in the Aspose.Words for Java Support Forum.

Posted in Aspose.Words Product Family | Leave a comment

Device Independent Bitmap (DIB) file format support included in Aspose.Imaging 19.4

Share on FacebookTweet about this on TwitterShare on LinkedIn

Hello guys, in this blog I would like to introduce you with new enhancements being made in Aspose.Imaging 19.4. The good thing about Aspose team is that it releases both .NET and Java based APIs simultaneously every month. This way both API user remain recurrent with changes being made in APIs every month.

In subsequent sections, I am going to give you a walk through of what new features have been included in API.

Working with Devise Independent Bitmap (DIB) files

The DIB file format was developed to allow free image transfer regardless of display device or operating system. It is similar to bitmap files, the only thing differentiating them being the lack of a file header and the fact that they’re not device dependent. The DIB file format contains all the information required for displaying a bitmap including color palette and metric resolution. DIB files can store 2D images of various resolutions, widths or heights and with color depths of 1, 4, 8, 16, 24 or 32 bits per pixel.

Using Aspose.Imaging, now you can access the DIB files and may convert them to other file formats like PNG, BMP or JPEG. In the following example, demonstration of loading an existing DIB file and its conversion to PNG is exhibited.

The similar Java based implementation is like as under:

CorelDRAW Drawing File (CDR) support

CDR files are created with CorelDRAW. The CDR file format is proprietary and it is used by Corel as the default for saving images. It can store simple drawings and vector images. It is also capable of storing data used by CorelDraw such as nodes, layers or segments.

In this version of Aspose.Imaging the support for CDR files has been included. In the following example below, an existing CDR file is loaded by passing the file path to the Image class static Load method.

The similar Java based implementation is like as under:

Raster image Masking

The process of Masking involves setting some of the pixel values in an image to zero, or some other “background” value. Aspose.Imaging supports both Manual and Automatic masking features.

Manual Masking

The following exhibit how to apply manual masking to a raster image.

The similar Java based implementation is like as under:

Automatic Masking

The following sample demonstrates how to apply auto masking to a raster image.

The similar Java based implementation is like as under:

Wait, there’s many other features, enhancement, and bug fixes included in this release. Here you can get the detail!

When time allows you can check out API examples at Github, talk about this release and other API related issues in our forum.

Posted in Aspose.Imaging Product Family | Leave a comment

Support for managing external chart data workbook available in Aspose.Slides 19.4

Share on FacebookTweet about this on TwitterShare on LinkedIn

Good news guys! I like to share experience after using latest Aspose.Slides 19.4 which has been enriched with improved chart data support features. The good thing about Aspose.Slides is that it has a monthly release where .NET, Java, Android via Java and C++ based APIs are published together. So, whats available in .NET based API is also available for Java, Android via Java and C++ based APIs. This way the users feels comfortable with API they are using and with same features available across the board.

In following sections, I am going to give you a walk through of what new features have been included and what improvements have been carried in API.

Working with chart data external workbook

As all of may be aware of the fact MSO (Microsoft Office) charts support is available in PowerPoint that display the chart in slides but maintain its data in chart data workbook. Usually, the chart data workbook is embedded inside PowerPoint presentation and linked with its respective chart. The other option is to maintain external workbook to hold chart data by linking chart with that external workbook.

Good news is that Aspose.Slides has also introduced the support for managing external chart data workbook in this new release. You can create an external chart data workbook for existing chart in presentation by accessing it chart data workbook stream and saving that as file. Here’s how you can use this feature.

The similar Java based example for this is:

The similar C++ based example for this is:

You can also set the path to external workbook for existing chart. However, while doing so, you need to ensure that chart data is in accordance with chart categories and series. Otherwise, you need to point the chart categories and series data to respective cells in new external chart workbook. Here’s how you can use this feature:

The similar Java based example for this is:

The similar C++ based example for this is:

Moreover, you can also modify the chart data in workbook as well. Here’s how you can use this feature:

The similar Java based example for this is:

The similar C++ based example for this is:

Wait, there’s many other features, enhancement, and bug fixes included in this release. Here you can get the detail!

When time allows you can check out API examples at Github, talk about this release and other API related issues in our forum.

Posted in Aspose.Slides Product Family | Leave a comment

Save Word Document to PCL, Align Chart Label by using Aspose.Words for C++ 19.5

Share on FacebookTweet about this on TwitterShare on LinkedIn

Guys, lets check out what’s new for you in Aspose.Words for C++ 19.5 release.

Save Word Document to PCL

Aspose.Words for C++ now provides support to save Word document to PCL (Printer Command Language). Aspose.Words can save documents to PCL 6 (PCL 6 Enhanced or PCL XL) format. PclSaveOptions class can be used to specify additional options when saving a document into the PCL format. The following code example shows how to save the document to PCL using save options.

Additional Text Positioning

We have added a AdditionalTextPositioning member in PdfSaveOptions class which can be used to specify whether to write additional text positioning operators or not. If you set it to true, then additional text positioning operators are written to the output PDF. This may help to overcome issues with inaccurate text positioning with some printers. The downside is the increased PDF document size.

Predefined Font FallBack Settings for Google Noto Fonts

We have added a new LoadNotoFallbackSettings member to FontFallbackSettings class that loads predefined fallback settings which uses Google Noto fonts. Google Noto are free fonts licensed under SIL OFL and can be downloaded from here (https://www.google.com/get/noto/). Sample usage code is as follows:

Specify Unit of Measure to OpenDocument

We now provide a MeasureUnit option in OdtSaveOptions class to specify units of measure that can be applied to document content. Open Office uses centimeters when specifying lengths, widths and other measurable formatting and content properties in documents whereas MS Office uses inches. You can use OdtSaveOptions.MeasureUnit property to specify the unit of measure to apply to document content. The following code example shows how to use this property.

Prevent Embedding Fonts while saving Document into HtmlFixed

By default, Aspose.Words embeds the fonts into HtmlFixed file format. You can set the value of HtmlFixedSaveOptions.UseTargetMachineFonts property as true to prevent fonts from embedding into HtmlFixed document. When the value of this property is true, the fonts from the target machine will be used to display the document.

Write all CSS Declarations of HtmlFixed Document into Single File

By default, Aspose.Words saves “@font-face” rules of HtmlFixed documents into a separate file “fontFaces.css” while other CSS declarations are written to “styles.css”. You can change this behavior by setting the value of HtmlFixedSaveOptions.SaveFontFaceCssSeparately property to false. This saves all CSS rules and declarations into the same file “styles.css”. Below code example shows how to save all CSS rules and declarations into one file.

How to Align Chart Label

If you want to set a text alignment for multi-line labels, you can simply achieve this by setting the value of ChartAxis.TickLabelAlignment property. The following code example shows how to tick label alignment.

See Also Useful Links

The resources, you may need to accomplish your tasks:

Keeping the Aspose tradition, you are welcome to shape the upcoming releases of Aspose.Words for C++ API by posting your suggestions and concerns in the Aspose.Words for C++ support forum.

Posted in Aspose.Words Product Family | Leave a comment

Perform OMR operation on Images using Aspose.OMR for .NET

Share on FacebookTweet about this on TwitterShare on LinkedIn


Wait is over guys! Aspose.OMR or .NET has been released and now is available over NuGet Gallery to be used in .NET Application. As shared in pre-release announcement of the API, Aspose.OMR has been provided as simple and lightweight solution that makes performing OMR operation on images a breeze. In this blog post, we will try to go through maximum features API is offering to its users. Without waiting so much, let’s dive into information which will be helpful to use API first time and perform OMR operations over images.

Perform OMR using Aspose.OMR

API provides simple to use features for performing OMR operation. For a simple OMR operation, you only need two things; the prepared template (special markers will be drawn over user’s form) and the images to perform OMR operation on. Aspose.OMR provides TemplateProcessor.RecognizeImage() method that takes an image path and returns a string output. The following code snippet demonstrates the usage of OmrEngine and TemplateProcessor to perform OMR on two images.

Well, we are not finished yet. The things would get more exciting because this API also provides a threshold setting to fine-tune the result of OMR according to your needs. You can set the value of threshold from 0 to 100 depending upon your needs. A detailed example and demonstration can be seen over following link in API documentation:

Using API with Graphic Control

The most worth-mentioning feature API has been offered with is Graphic Control that can be added into your application and lets you manually correct the threshold and markup to see changes in real-time. A complete guide to use Graphic Control in your application has been given in API documentation and can be visited on following link:

API Limitations

First version of the API also offers some following limitations which should be kept in view while working with it:

  • Recognition process works only with prepared templates (special markers will be drawn over the user’s form)
  • Performing OCR operation is also not supported for now
  • OMR operation will show results only in text format

We really hope that above guide will help you setting up the API for first time usage. In case we missed something here, you are always welcome to post your inquiries in our support forum. Do not forget to go through release notes page of the API. We further intend to introduce more enhancements and attractive features in future releases of the API. Stay with us in order to get latest updates about releases of the API.

Posted in Aspose.OMR Product Family, Asad Ali | Leave a comment