Quantcast
Channel: Syncfusion Blogs
Viewing all 473 articles
Browse latest View live

What’s New in 2018 Volume 3: Xamarin Chart Updates

$
0
0

Every release, we include new features for our components by considering feature requests from our customers. We hope these additions help make your development easier and simpler. In this article, we are excited to share some of the new, popularly requested features that are included in the Chart component for Xamarin in the 2018 Volume 3 release. These are:

  • Stacked doughnut chart
  • Histogram
  • Axis label wrapping
  • Preview support in storyboard in Xamarin.iOS

Let’s walk through each feature with example code snippets and outputs.

Stacked doughnut chart
The stacked doughnut chart type is a special type of doughnut chart. It is typically used to visualize data in a set of concentric circles. The configuration of a stacked doughnut chart is similar to a standard doughnut chart; we have to initialize an instance of DoughnutSeries and add it to the Series collection property of SfChart, and then set the IsStackedDoughnut property to true. The following code snippet and screenshot show how to initialize and configure the stacked doughnut chart and how it appears.

<chart:SfChart.Series>

  <chart:DoughnutSeries IsStackedDoughnut="true" XBindingPath="XValue" YBindingPath="Yvalue" ItemsSource="{Binding DoughnutSeriesData}" />

</chart:SfChart.Series>

Shows stacked doughnut chart in Xamarin.Forms

Refer to the following user guide to learn about the options available to customize the stacked doughnut chart: Stacked doughnut chart documentation.

Histogram
A histogram is a type of chart that is widely used to represent the distribution of numerical data. The appearance of a histogram is similar to a bar chart, since both charts visualize data using rectangles. However, where a bar chart represents categorical data and compares different categories, a histogram shows the frequency of distribution in the individual bars for each range. The following example shows the configuration of a histogram and its final appearance.

<chart:SfChart.Series>
    <chart:HistogramSeries ItemsSource="{Binding HistogramData}" XBindingPath="XValue" YBindingPath="YValue" Interval="20" />
</chart:SfChart.Series>

Shows histogram in Xamarin.Forms

Refer to the following user guide to learn more about configuring a histogram: Histogram documentation.

Axis label wrapping
Axis labels with lengthy text can collide with each other. To overcome this problem, we have introduced support for wrapping labels that collide to new lines. This feature can be enabled by setting the LabelsIntersectAction property of ChartAxis to Wrap. Alternately, the maximum width of the label can be restricted using the MaxWidth property of ChartAxisLabelStyle.

<chart:SfChart.PrimaryAxis>
  <chart:CategoryAxis>
     <chart:CategoryAxis.LabelStyle>
       <chart:ChartAxisLabelStyle MaxWidth=”40” WrappedLabelAlignment="Center" TextColor="Black">
       </chart:ChartAxisLabelStyle>
     </chart:CategoryAxis.LabelStyle>
  </chart:CategoryAxis>
</chart:SfChart.PrimaryAxis>

Shows chart axis label wrapping in Xamarin.Forms

Refer to the following user guide to make use of axis label wrap support: Wrap axis labels documentation.

Preview support in storyboard view in Xamarin.iOS
Preview the appearance of a chart in the storyboard view of the Xamarin.iOS to reduce the layout design time and perfectly build your layout without deploying the app on a device or emulator for every change in your layout. Even though preview support helps you build the chart layout faster, the data source for the chart should be configured from the view controller by accessing the chart object.

Shows the previewer of chart in storyboard of Xamarin.iOS.

And more

This is not a complete list of all the Xamarin chart features added in 2018 Volume 3. We have made a few more minor improvements, such as dotted line support for polar and radar charts, background color customization support for the chart area, support to get the data point collection that falls within a given rectangular area, and some bug fixes. Download our 2018 Volume 3 release of Essential Studio for Xamarin from the following link:

https://www.syncfusion.com/downloads/xamarin.

We hope that you will enjoy these new chart features. Check the full release notes for more details, browse complete example code in GitHub, and explore the chart examples available on Google Play and the Microsoft Store.

If you have any questions or require clarification, let us know in the comments section below. You can also contact us through our support forum or Direct-Trac.


Interview with Azure Functions Succinctly Author Ed Freitas

$
0
0

The following is an in-depth interview with Succinctly series author Ed Freitas, whose book Azure Functions Succinctly was published recently. You can download the book from the Succinctly library.

What should people know about Azure Functions? Why is it important?

I’ll refer to Nir Mashkowski, who defined the importance of Azure Functions in the announcement blog: “Data is everywhere. It’s in the cloud, on-premises, and is increasingly proliferating across internet-connected devices. Organizations are working to unlock the value in that data, and are asking their developers to respond with highly-scalable solutions built on ever-compressed timetables. Solutions which often require developers implement on demand or scheduled batch jobs to reconcile transactions, ingest and process data, or react to events in real-time. “

Azure Functions is important for people to know and use because it is an event-driven, compute-on-demand experience that extends the existing Azure application platform to implement code triggered by events that occur in Azure or third-party services, as well as on-premises systems, allowing developers to quickly develop these highly scalable solutions on short notice.

When did you first become interested in Azure Functions?

I was working on a personal project Windows application that required a website to process user licenses, and the website functionality turned out to be more complex than the Windows project itself. So I said to myself, “This can’t be right. There must be an easier way to do this.” This is what led me to investigate serverless technologies and specifically Azure Functions. I explain the story within the first pages of the book.

By writing Azure Functions Succinctly, did you learn anything new yourself?

Oh yes, I learned quite a bit! Mostly that Azure Functions is an innovative way of accessing and processing data by making it simpler than ever to not only trigger code based on data in other services, but also to access and process that data. With Azure Functions bindings, developers can simply interact with other data sources and services through their Azure function without worrying about how the data flows to and from it. Bindings make tasks like adding a message to a queue or fetching a blob as simple as passing JSON to a function output variable or reading the blob from a function input variable. With this capability, I found out that developers need to know very little about the underlying services they’re interacting with, making it easy to swap out later for different services.

How will Azure Functions change over the next few years?

It is already changing and evolving. Just recently, Microsoft announced Azure Durable Functions, which is an extension of Azure Functions and Azure WebJobs that lets you write stateful functions in a serverless environment. The extension manages state, checkpoints, and restarts for you. The extension lets you define stateful workflows in a new type of function called an orchestrator function. As serverless architecture becomes more a de facto standard and choice in projects, changes in this landscape will continue to happen as well as improvements. Serverless and Azure Functions are here to stay, and a good skill investment for anyone in DevOps, IT, or software engineering.

Do you see Azure Functions and cloud services as part of a larger trend in software development?

Definitely. They are part of the serverless execution model trend. One of the core value propositions of PaaS solutions such as Azure Functions is the abstraction of the operating system layer from the code. The underlying platform provides preconfigured operating system images that don’t require any patching or maintenance and can be autoscaled based on application load. Azure Functions extends the PaaS concept by providing developers with complete abstraction from the underlying infrastructure through a pay-per-execution billing model that automatically scales based on trigger invocations.

What were the biggest challenges you faced when learning how to use Azure Functions?

To be quite honest, there wasn’t any significant challenge. The Azure team has done an amazing job at making this complex technology easy to grasp and even easier to get started with and learn. I was literally up and running in a few minutes and writing Azure functions using C#.

What other books or resources on Azure Functions or Azure in general do you recommend?

I highly recommend the official Azure Functions documentation site. It’s probably the best resource out there and most up-to-date.

What are three key pieces of info that developers can take away from this book?

  1. Azure Functions is the future.
  2. Azure Functions is powerful.
  3. Azure Functions is easy and intuitive.

Do you have any tips for developers trying to learn Azure Functions?

Yes. Explore the Azure Functions documentation site, sign up for Azure, read the Azure Functions Succinctly ebook, and have fun with Azure Functions as you read the book.

Who are your role models in the developer world?

Where to start really… There are so many brilliant folks doing an amazing job at various companies, so I’d have a hard time picking out a few names. Someone I do love engaging with and follow regularly is James McCaffrey from Microsoft Research.

How quickly can you learn a new programming language or tool?

I’m quite a fast learner, mostly because I’ve sort of made learning technologies my hobby. I try to learn a new technology every two months by doing a personal project or writing a book. I absolutely love learning. Not only does it open your world to new things, but it keeps your mind focused on positive things and helps avoid our ancestral human negative traits coming out. Learning is evolving and it’s fun.

How do you stay up-to-date on industry news?

Hacker News, GitHub trending repositories, and every now and then checking Channel 9.

Do you have a blog page or a website where people can find you?

Yes, edfreitas.me. I don’t write blog posts (I prefer to write books), but I have links to courses I’ve published and of course, my books

Ed Freitas, authory of Azure Functions Succinctly

Ed Freitas has been an author and technical editor for the Succinctly Series since 2016

What’s New in 2018 Volume 3: Xamarin.Forms Maps Updates

$
0
0

We are excited to announce updates for our popular Xamarin maps control in the 2018 Volume 3 release. This release, we have mainly focused on adding usability-related features and improving product stability. In this blog, we are going to walk you through the following important Xamarin.Forms maps features one by one:

  • Access to imagery layer’s tile images from the application cache to improve performance.
  • Color mapping support for bubbles.
  • Sublayers support.
  • Smart data label alignment support

Access to imagery layer’s tile images from application cache

One of the most important features in the Xamarin maps control is  built-in online map provider support. Using this feature, you can render OpenStreetMap, Bing maps, or maps from other providers. Maps control uses the imagery layer to display tile images from the map provider service. When loading and zooming maps, we have to access the map’s tile images every time from an online service, which causes some performance delay. To overcome this problem, we have provided an option to cache downloaded tile images in an application cache memory. With this support, we can avoid accessing tile images from online services every time and improve performance while loading and zooming maps.

Maps caching support for OSM/Bing maps

If you want to clear existing cached tile images in the application memory, you can invoke the following method.

imageryLayer.DeleteTilesFromCache();

Color mapping support for maps bubbles

Color mapping support is used to categorize bubbles by customizing their color based on the underlying data values. Colors can be applied to bubbles by comparing their values with desired numeric ranges. For example, colors can be applied to countries based on their population density. The following code shows the top 30 countries by world population percentage by applying range color mapping in bubbles.

<maps:ShapeFileLayer.BubbleMarkerSettings>

     <maps:BubbleMarkerSetting  ValuePath="Percent" ColorValuePath="Percent" >

          <maps:BubbleMarkerSetting.ColorMappings>

               <maps:RangeColorMapping Color="#2E769F" From="4" To="20" LegendLabel="Above 4%" />

               <maps:RangeColorMapping Color="#D84444" To="4" From="2" LegendLabel="4% - 2%"  />

               <maps:RangeColorMapping Color="#816F28" To="2" From="1" LegendLabel="2% - 1% "  />

               <maps:RangeColorMapping Color="#7F38A0" To="1" From="0" LegendLabel="Below 1%"  />

          </maps:BubbleMarkerSetting.ColorMappings>

    </maps:BubbleMarkerSetting>

</maps:ShapeFileLayer.BubbleMarkerSettings>

Maps color mapping support

Sublayers

Sublayers is one of the most requested features from our customers. It allows users to load multiple shape files in a single map view. For example, you can add a sublayer over a main shape layer to view the geographic features of a country such as rivers, valleys, and cities in maps.

<maps:ShapeFileLayer.Sublayers>

     <maps:ShapeFileLayer Uri="Texas.shp">

          <maps:ShapeFileLayer.ShapeSettings>

               <maps:ShapeSetting ShapeFill="#B1D8F5" ShapeStroke="#8DCCF4" ShapeStrokeThickness="1" />

          </maps:ShapeFileLayer.ShapeSettings>

          <maps:ShapeFileLayer.Markers>

               <maps:MapMarker Latitude="30.267153" Longitude="-97.7430608"/>

         </maps:ShapeFileLayer.Markers>

     </maps:ShapeFileLayer>

     <maps:ShapeFileLayer x:Name="subLayer1" Uri="California.shp">

           <maps:ShapeFileLayer.ShapeSettings>

                <maps:ShapeSetting ShapeFill="#B1D8F5" ShapeStroke="#8DCCF4" ShapeStrokeThickness="1" />

           </maps:ShapeFileLayer.ShapeSettings>

           <maps:ShapeFileLayer.Markers>

                <maps:MapMarker Latitude="37.3382082" Longitude="-121.8863286"/>

           </maps:ShapeFileLayer.Markers>

      </maps:ShapeFileLayer>

</maps:ShapeFileLayer.Sublayers>

Maps sublayer

Smart label alignment

Map shapes can be easily annotated with data labels to improve the readability of shapes’ names. Sometimes, labels may overlap with other labels or other shapes if the label length is too long. For example, in the following image, due to label collision, state names are not clearly readable.

Maps label collisionTo overcome this problem, we have provided two options to trim or hide the labels that are either overflowing the shape boundaries or overlapping with each other.

Trim or hide overflowing labels

Just by setting the SmartLabelMode property to either Hide or Trim, you can avoid overflowing labels.

Maps label smart mode as trim
SmartLabelMode=”Trim”

Maps labels smart mode as hide
SmartLabelMode=”Hide”

Trim or hide overlapping labels

By using the IntersectionAction property, you can trim or hide the overlapping labels.

Maps label over lapping action as trim
IntersectionAction=”Trim”

Maps label overlapping action as hide
IntersectionAction=”Hide”

The following code shows how to set SmartLabelMode and IntersectionAction.

<maps:ShapeFileLayer.DataLabelSettings>

     <maps:DataLabelSetting  SmartLabelMode="None" IntersectionAction="Hide"/>

</maps:ShapeFileLayer.DataLabelSettings>

And more

Other than this feature set, we have a few more improvements: adding images to marker icons, legend customization, rendering corresponding shape layers from a layers collection by setting BaseMapIndex, exposed events for ZoomLevelChanging, ShapeSelectionChanged, and stability improvement.

We hope that you will enjoy these new features in maps. Check the full release notes for more details, browse complete example code in GitHub, and definitely explore the maps samples available on Google Play and the Microsoft Store.

If you are an existing customer, please download the new version from the License and Downloads page and try the new features for yourself. If you are a new customer, you can try our 30-day free trial to check out these features.

If you have any questions or require clarification, let us know in the comments section. You can also contact us through our support forum or Direct-Trac.

Season of Sharing: Syncfusion Hosts User Groups

$
0
0

In the past few months, Syncfusion has been contributing to the development community by offering its RTP office as a place for local developer groups to hold meetings. We set up their space, supply snacks and drinks, and provide swag and free licenses. Check out these cool user groups we’ve gotten to meet by doing this.

We get them yummy munchies.

On July 11, Syncfusion hosted Women Who Code Raleigh Durham. for their Git Study Night. They had Git professionals there to help as participants worked through exercises together. Several of the ladies in attendance left comments on the group’s meetup page saying they learned a lot! This group has nearly 800 members from the Triangle area, hosts plentiful events like this one, and even has a job board for members.

Raleigh Mobile .NET Developers Group in Syncfusion’s conference room.

The Raleigh Mobile .NET (Xamarin) Developers Group has become a regular here, gathering first on August 20 and then on October 15 after getting rained out of their original meetup date by Hurricane Florence. Both meetups presented beginners sessions on MVVM and setting up an ASP.NET Core server, starting with a lecture and ending with an opportunity for attendees to discuss the projects they were working on at the moment. This group, as its name says, concentrates on multi-platform mobile development using .NET.

Bobby and Ren, Raleigh Mobile .NET Developers Group organizer and Syncfusion’s Office Facilitator.

Later in August, we hosted the Community Hack Night of the group Learn to Code RDU. About twenty developers attended the easy-going event, helping each other out and discussing tech. This group also has nearly 800 members and is open to anyone in the Triangle interested in learning to code or learning to code better. One of their recent events was a Star Wars API code-along!

It’s been great meeting and hosting all these developers determined to further their skills. We’re honored we could contribute! If you belong to any groups like this, let us know how they’ve impacted your professional life in the comments below or on Facebook or Twitter.

 

Tips to improve Syncfusion WPF datagrid performance

$
0
0

Performance is critical for delivering a good user experience for any application. WPF datagrid provides fast loading and smooth scrolling performance. We used to receive various queries from our customer about improving the performance based on application scenarios. Our WPF datagrid performance fulfills these application needs when working with a large number of records. So, in response to these queries, here we’ve organized tips for improving your data grid’s performance. Let’s start with best practices.

UI virtualization for better loading and smooth scrolling

The WPF datagrid completely virtualizes and reuses rows and cells when scrolling. While loading, a data grid creates the rows and cells visible to users for faster loading time. Data grids reuse the load-time-created rows and cells for a smooth scrolling experience. Furthermore, there are additional settings for achieving improved performance, like faster loading times, the ability to scroll millions of records, and fitting more rows and columns in the view when displaying them in 4K monitors.

Loading performance

Virtual data processing

The datagrid control provides built-in data virtualization support internal record creations on demand for better loading performance. This way, the datagrid control provides the same loading time for a million records as it does for a thousand records. You can enable data virtualization in a data grid by setting the EnableDataVirtualization property.

Download sample here and see it in action!

Column autofit performance

The datagrid control provides various column autofit modes via the ColumnSizer property. Options like Auto or SizeToCells calculate the column width based on all the cells in the columns. The datagrid control uses an way of calculation for measuring the cell width. Still, when you are dealing with millions of records, it won’t be enough to produce the best results. In such cases, you can take control of column width measurement and write your own logic. For example, the following article explains the calculation of column width based on visible rows when loading more records. Also, set DataGrid.GridColumnSizer.AutoFitMode as SmartFit to enable a smart way of calculation to autofit the column width based on cell contents.

Paging

This is the traditional way of handling larger amounts of records where a data grid supports paging with the help of the SfDataPager control out of the box. You can enable on-demand paging by setting the UseOnDemandPaging property to true for the data pager.

Scrolling performance

Data grid scrolling is essential for delivering a good user experience. The data grid control provides various options to boost scrolling performance for various scenarios. Consider a scenario in which your application loaded in a 4K resolution monitor where 50 rows and 30 columns (1,500 cells) are visible to end-users. In such cases, you can improve the scrolling experience with following options.

Enable drawing

By default, datagrid loads a textblock as cell content and re-uses it during scroll operations. Compare to loading text block drawing the text will enhance the performance. You can change the rendering mode of a data grid to drawing by setting UseDrawing as `Default` to improve loading and scrolling performance. To learn more about changing the rendering mode, read improving loading and scrolling performance using lightweight templates.

DataGrid with 30 columns in view and 1 million records example.

wpf datagrid scrolling performance with more rows and columns
WPF DataGrid scrolling performance with more number of rows and columns

Asynchronous scrolling

The datagrid control offers an asynchronous scrolling mode to update the binding of rows asynchronously without affecting the UI during load and scroll operations. Asynchronous scrolling can be enabled by setting ScrollMode as Async. When enabling asynchronous scrolling,

DataGrid asynchronous scrolling example

Data operations performance

On-demand summary calculation

The ontrol supports three types of summary rows: table summary, group summary, and caption summary. Summaries calculation can be a big obstacle to application loading performance when you are dealing with millions of records. You can enable on-demand summary calculation by setting the SummaryCalculationMode property where the summary values will be calculated on demand when scrolling. For example, group summaries are calculated when you are expanding the group and caption summaries are calculated when a particular caption summary row scrolls into view. This greatly improves the loading performance of applications that use summaries heavily.

Common use case scenarios

Efficiently processing column manipulation

When you want to add or remove columns in a data grid at runtime, you can suspend the UI update by calling Columns.Suspend and, after manipulating the columns, update the UI by calling the Columns.Resume method.

Performing column manipulation efficiently documentation.

Conditional styling for datagrid—best practices

Conditionally style the rows and cells using style selectors, data triggers, or customizing style properties via converters. Customizing the row or cell style via converters produces the best results among these approaches. The following article explains different approaches with code snippets and samples.

Datagrid conditional styling performance article.

WPF DataGrid shows cells formatted based on data
WPF DataGrid cells formatted based on data

ComboBox editor column

The data grid control uses the framework’s ComboBox control as an editor for combo box columns. You can improve combo box drop-down load time by loading VirtualizingStackPanel in ItemsPanelTemplate when it has many items.

Hints – dos and don’ts

Following are some hints for best performance when using the datagrid control:

  • Avoid loading the datagrid control inside the ScrollViewer. If you want to do so, set the height for the data grid, otherwise the data grid will load all the rows without UI virtualization.
  • Autofit the column width for only the needed columns by setting the ColumnSizer property of particular columns instead of autosizing all columns. You don’t always need to autofit all the columns.
  • Use template columns only for needed cases. Using more template columns will have an impact on scrolling performance.
  • Don’t use template columns for formatting the data displayed in cells. Instead, you can and format the data by defining DisplayBinding.
  • Set the property value to None when your application doesn’t require runtime data changes for better loading performance. Set the LiveUpdateMode property of the data grid when your app requires real-time data processing.
  • Set CanGenerateUniqueItems to false for GridFilterControl when column data will have only unique values for better loading time of the advanced UI filter.

Conclusion

In this blog, we explained how to boost the WPF datagrid performance to meet various performance needs. You can choose from the available options based on your application scenario.

We hope this blog provides answers to many questions in single place. If you have any questions or require clarification, let us know in the comments section. You can also contact us through our support forum or Direct-Trac.

If you are an existing customer, please download the new version of Essential Studio from the License and Downloads page and try the new features for yourself. If you are a new customer, you can try our 30-day free trial to check them out.

 

The post Tips to improve Syncfusion WPF datagrid performance appeared first on Syncfusion Blogs.

Microsoft Completes GitHub Acquisition

$
0
0

At the end of October, Microsoft completed its $7.5 billion USD acquisition of GitHub, the enormously popular code-hosting website home to 96 million repos (and counting), in a move to engender a closer relationship with developers who do not use Microsoft’s innumerable platforms, technologies, and services.

Microsoft CEO Satya Nadella Tweeting About the Completion of the GitHub Acquisition. Source: Twitter.

As we mentioned in August, this raised many questions across the software industry concerning what influence Microsoft’s ownership would have over GitHub and its product. Though it’s much too soon to tell, Microsoft CEO Satya Nadella and GitHub’s new CEO Nat Friedman continue to assure GitHub veterans that the product’s independence will be preserved. On The GitHub Blog, Friedman reiterated two points from the acquisition announcement:

  • GitHub will operate independently as a community, platform, and business. This means that GitHub will retain its developer-first values, distinctive spirit, and open extensibility. We will always support developers in their choice of any language, license, tool, platform, or cloud.
  • GitHub will retain its product philosophy. We love GitHub because of the deep care and thoughtfulness that goes into every facet of the developer’s experience. I understand and respect this, and know that we will continue to build tasteful, snappy, polished tools that developers love.

Beyond these high-level sentiments, industry analysts were certain that the acquisition would result in greater integration between Microsoft platforms and products and GitHub. One such feature that was teased at the acquisition announcement was GitHub’s integration with Visual Studio Code, and sure enough, users can now fully work with GitHub pull requests from within the IDE.

GitHub Pull Requests Extension in Visual Studio Code. Source: Marketplace.VisualStudio.com.

New GitHub features within Microsoft products are great, but the ultimate goal of the acquisition is to introduce more developers to Microsoft’s offerings. As of Sept. 30, 2018, GitHub is home to more than 96 million repos supported by more than 31 million developers, and a significant portion of those repos are open-source projects. As CEO Satya Nadella has continued to maneuver Microsoft toward being more open and welcoming to open-source initiatives, the new relationship between Microsoft and GitHub means more open-source developers will be exposed to Microsoft technologies, especially its Azure cloud platform, which has become an earnings leader for the company.

If you’re a longtime GitHub user, let us know what you think of the acquisition in the comments below, or on Twitter or Facebook. If you’re a longtime Microsoft user and a GitHub noob, check out our GitHub Succinctly ebook to get started!

The post Microsoft Completes GitHub Acquisition appeared first on Syncfusion Blogs.

The Multibillion-Dollar Value of Services

$
0
0

It was all over the news last month: IBM is acquiring Red Hat for $34 billion. It is considered the largest software deal in the history of IBM, and perhaps in the whole software industry according to some sources. In addition to the historic size of this deal, what does it show?

This acquisition shows the high value of well-supported open-source and commercial software. IBM put a price tag of $34 billion on services when they acquired Red Hat—services that include subscriptions offering maintenance, updates, patches, and technical support.

Although Red Hat Enterprise Linux is at its core an open-source technology and “free,” there is always a cost to such software. You have a choice: you handle updates and maintenance yourself, or you pay a software vendor like Red Hat to offer support and updates in the form of a subscription that provides maintenance, updates, patches, bug fixes, and tech support. When you handle it yourself though, you must consider the cost of your time, or the cost of hiring a team of developers within your company to handle this.  For example, Amazon has been moving away from Oracle databases to its own hosted open-source platform. On Amazon Prime Day, its new software wasn’t able to keep up, resulting in website glitches and delayed package deliveries. Even this tech titan faced the challenge of maintaining an open-source platform on its own. Using free-to-use software has real costs involved. You can read more about Amazon’s Prime Day struggle on CNBC.com.

Customers, especially corporations, want to obtain support and services to create business value. They also want a service provider they can trust to solve any issues that arise. For example, think about a bank IT manager who chooses to use Linux as a cloud OS. He could choose to hire an internal team of software developers to maintain the Linux OS and patch it when needed; or he could pay a subscription to a company like Red Hat. Tech giants like Amazon and Google can maintain Linux internally as they are equipped with enormous teams of software developers. Technology is the heart of their business expertise. That said, for most smaller companies whose core business is outside a tech field, it is more cost effective to pay a company like Red Hat to help them.

This idea of choice to pay for services and support also applies to commercial software. You may be interested in buying a subscription at say, $50, $100, or $5,000. The first level has minimal support, the second level has 24/5, and the highest level may provide 24/7 support with a dedicated hotline.   At first you might think you are saving money by buying the least expensive option, but if you consider the business value in terms of helping your company grow and increasing productivity, you might save money in the long term by investing in the more expensive software subscription. What if there is a break-fix issue at 2 AM on a Friday? At that moment, you would wish you had selected the $5,000 service option.

Companies rely more and more on software to increase productivity and reduce costs. Customers need to weigh overall costs, also known as the total cost of ownership, and the benefits when considering software without subscription or support services.  If tomorrow Red Hat said that they would no longer provide any patches, most of their customers would probably move to another flavor of Linux that provides services. The cost and hassle to maintain and run company-wide systems on their own can just seem too much for most small companies. Red Hat’s subscription services provide real business value, and peace-of-mind to their customers—something that IBM paid $34 billion to acquire. Is peace-of-mind that valuable to you? Let us know in the comments below or on Facebook and Twitter.

The post The Multibillion-Dollar Value of Services appeared first on Syncfusion Blogs.

Microsoft Announces 2019 Updates for Visual Studio

$
0
0

With the end of the year approaching, it’s time to begin considering the path ahead. For developers, that means preparing for a new year’s worth of updates and changes, not just for their own products, but for the products they rely on. Few updates are as meaningful as those for Microsoft’s Visual Studio, where changes can improve every aspect of the development process, from building code to providing access to finished applications.

Fortunately, Microsoft has published a thorough roadmap for Visual Studio 2019. Every developer who relies on Visual Studio will find a wealth of improvements arriving early next year. Many of the improvements relate to improved UI and theming. A revamped start window makes it easier to jump directly into the most common ways to access code, including cloning, opening an existing project, and starting a new project. A reorganized layout improves the usability of Visual Studio, making it simpler to find vital functions and features while taking up less screen space. Improved notifications round out the top features, making it easier to see and understand the vital information that Visual Studio provides.

Mac developers will perhaps benefit the most, however, as Visual Studio for Mac will be updated to reflect a number of features currently available on the standard version of Visual Studio. This includes support for Xamarin, ASP.NET, and Unity, as well as an improved code editor and new version control. It represents a major step forward for Visual Studio’s Mac support.

Whether you are using standard Visual Studio or Visual Studio for Mac, these updates are important for Syncfusion and our customers because of our Visual Studio integration. Our commitment to integration means that Visual Studio users have easy access to Syncfusion components, libraries, themes, and templates. We even have free trials available on our Visual Studio Marketplace profile so that anyone interested can try our award-winning controls. With the 2019 updates, Syncfusion customers can expect the same level of performance from our controls as ever, bolstered by Microsoft’s improvements to the Visual Studio platform.

What features do you most hope to see included in Visual Studio 2019? Let us know in the comments below. And, as ever, feel free to share what you are working on with Visual Studio and Syncfusion; we love to see the applications that our controls have helped you create!

The post Microsoft Announces 2019 Updates for Visual Studio appeared first on Syncfusion Blogs.


Building User Interfaces with Syncfusion Controls and React

$
0
0

This post was last updated on Sunday, November 25, 2018.

Syncfusion has hosted a couple webinars this year on demonstrating how to get our JavaScript library, Essential JS2, up and running in a new React project. We received a number of questions each time about our JavaScript library, and our product manager Chad Church has provided answers. Read on for a full overview of the Syncfusion global license, or visit Syncfusion’s YouTube channel to watch the webinar in full. You can view the sample projects from this webinar by downloading the sample files directly.

Q: Are these wrappers or new controls that are native React UI components?

A: These are wrappers. However, they have equivalent support compared to native implementation, including props binding, state management, custom components, and more.

 

Q: Can Syncfusion controls be used with web tools outside of React?

A: Yes, Essential JS 2 contains pure JavaScript controls as well as React controls, so they can be used outside of React as well.

 

Q: Why does it reference deprecated modules?

A: This was a bug, but it has been resolved now.

 

Q: Will this cover any WPF application builds, or is it only a web-based discussion?

A: This is only a web-based discussion.

 

Q: Is it good practice to customize Syncfusion components as needed?

A: Yes, you are welcome to do that. Our components can be customized using templates and events. Templates can be used to customize their UI appearances and events can be used to customize their behaviors.

 

Q: Can I create a custom component which is an abstraction of a Syncfusion component?

A: Yes, you can do this. If you need to group multiple components or you have multiple customizations for a component, such as adding templates and events, you can create a custom component and reuse it across your application.

 

Q: Suppose I want to add a functionality which isn’t available in a Syncfusion component. What would be the best approach: customize the component file, or create a custom component to be the wrapper around a Syncfusion component?

A: If you need new functionality that is not possible with our public APIs, it is best to create a support incident for it and get ideas from our team.

 

Q: Let’s say I customized a component. What will happen when I update the package in the future? My code gets overwritten, correct?

A: If you used only public APIs of EJ2 components, you would be safe. These would not be overwritten or broken.

 

Q: Do Syncfusion controls work on mobile devices?

A: Yes.

 

Q: Can your Angular/JS tools be used with the Ionic framework?

A: Yes, they can be used with Ionic.

 

Q: Will customization degrade app performance?

A: No, customization will not degrade performance, although incorrect usage could. If you do encounter a performance issue, please create a support incident with code samples so that we can address the problem.

 

Q: Is the diagram control going to be included in Essential JS 2?

A: Yes. A preview is already available in the Volume 2 release.

 

Q: What are the required system configurations for developing React.JS applications?

A: Node.js, npm, and any IDE.

 

Q: What is the purpose of webpack?

A: Webpack is for bundling script and CSS files.

 

Q: Will the kanban control be available, and if so when?

A: It is planned for a 2019 Volume 1 release.

 

Q: Is Essential JS 2 Reactive native for developing mobile support apps?

A: No, Essential JS 2 requires a web browser to render component. So, it is not supported in React natively.

 

Q: Will JS 2 be generally API compatible with JS 1? (Except for new features, of course.)

A: No, we don’t have API compatibility with JS 1.

 

Q: Will the tree grid control be available, and if so, when?

A: The tree grid control is planned for our 2018 Volume 4 release.

 

Q: What about the pie chart control?

A: It is already available. Please check our sample browser. https://ej2.syncfusion.com/16.1.32/react/demos/#/material/chart/default-pie

 

Q: Is there a navbar control? I didn’t see one in the docs.

A: Please find the documentation link here. https://ej2.syncfusion.com/16.1.32/react/documentation/sidebar/

 

Q: Is there Aurelia integration?

A: Currently, we don’t have any plans for Aurelia.

 

This post was originally published on April 27, 2018.

The post Building User Interfaces with Syncfusion Controls and React appeared first on Syncfusion Blogs.

Communities React Well to JS and Node.js Foundations Intent to Merge

$
0
0

Last month, the JS (JavaScript) Foundation and the Node.js Foundation announced an intent to merge. In case you’re unfamiliar with the (rather misleading) term, it doesn’t actually mean that anything has been planned or decided. Rather, the foundations are asking for feedback from their communities, which overlap to an extent already, on the possibility of merging.

While not exactly the explosive news that IBM buying Redhat was, companies and individuals who support one or both foundations have been reacting on their blogs. IBM, as a founding member of the JS Foundation, fully supports the merge.

“We believe the end result will be a stronger and more vibrant JavaScript ecosystem,” wrote two of IBM’s developers on its blog.

The npm Blog writer is “psyched.” They write that the merge “removes an unnecessary barrier to innovation.”

The foundations’ stated reason for merging in their public announcement is that an “increased collaboration in the JavaScript ecosystem is more important than ever to sustain continued and healthy growth.”

Reaction to this proposed merger is mild and mostly positive, and most agree that the merge would achieve this primary goal. According to The npm Blog and articles like the one in TechCrunch, developers can look forward to more streamlined tools, greater consistency in processes and policies, and a wider-spread interest of sponsors in all JavaScript projects.

“I think it is a great thing that the two foundations are going to merge,” said Emanuele DelBono, author of Syncfusion’s Node.js Succinctly. “They overlap in many ways and joining strengths will result in improved collaboration and a broader adoption of Node and JavaScript. So, good news for us as developers! We can be quite sure that the JavaScript language will become even better and more used in the near future.”

Further goals in the announcement on the Linux Foundation site, which hosts both foundations, are:

  • Enhanced operational excellence.
  • Streamlined member engagement.
  • Increased collaboration across the JavaScript ecosystem and affiliated standards bodies.
  • An “umbrella” project structure that brings stronger collaboration across all JavaScript projects.
  • A single, clear home available for any project in the JavaScript ecosystem.

We know a lot of our developers work with JavaScript, and many use Node.js, as well. What do you think of this merge? Can you spot any pitfalls, or do you agree with the majority that this is a good thing? Let us know in the comments below or on Facebook or Twitter.

The post Communities React Well to JS and Node.js Foundations Intent to Merge appeared first on Syncfusion Blogs.

Up and Running with Syncfusion, Xamarin, and Visual Studio in 3 Steps

$
0
0

If you’re interested in Xamarin development but aren’t sure where to start, here’s a recipe that will have you building your first Xamarin.Forms app in just a couple of days.

Read up on Visual Studio and Xamarin.Forms

In case you’re new to Visual Studio and its support for Xamarin, there are two books you should read. Both are written by Alessandro Del Sole, and both are part of Syncfusion’s Succinctly series of free ebooks.

Visual Studio 2017 Succinctly explains how Microsoft’s latest IDE allows you to work on any platform and target any device, and it contains a chapter detailing how Visual Studio is geared for mobile development, including a section dedicated to Xamarin.

The recently updated Xamarin.Forms Succinctly and Xamarin.Forms for macOS Succinctly explain how .NET developers can use C# and Xamarin.Forms to build apps for Android, iOS, and Windows, including how to share code among platforms and build a UI with XAML.

The books also cover resources in XAML, such as styles, data templates, and object references. They describe how to work with data binding—which is used to automatically update an app’s UI with data changes—and they introduce working with platform-specific APIs.

Download Syncfusion’s Xamarin Suite

Once you have a fundamental understanding of Xamarin.Forms in Visual Studio, you can use Essential Studio for Xamarin.Forms to play with Syncfusion’s components within Visual Studio.

First, you’ll need a Syncfusion license. You can download a free, 30-day trial from www.syncfusion.com/downloads. You may qualify for our free Community License if you’re an individual developer or work for a small company.

Free Trial Download

Once you have a license, you’ll have an account in our Direct-Trac support system. In Direct-Trac, you can access the Syncfusion Downloads portal. You’ll find a link to it in the top navigation bar under License & Downloads.

Link to Version Downloads

In the Downloads portal, you can access the latest version of any Syncfusion product, or previous versions if your license allows. To access Essential Studio for Xamarin.Forms, select the Essential Studio tab at the top of the table, and then click Download links and details in the row that’s marked as the latest version.

Full documentation of the download and install procedure is available for Windows and for Mac.

After the installer for the Syncfusion Xamarin components finishes, you can add the assembly references to the respective projects such as PCL, XForms.Droid, XForms.iOS, and XForms.UWP. You can find the dependencies for each control at https://help.syncfusion.com/xamarin/introduction/control-dependencies. Alternatively, you can install the assemblies as a NuGet package, which can be downloaded from http://nuget.syncfusion.com/package/xamarin.

Walk Through Sample Xamarin Apps

With the download and installation out of the way, you’re ready to dive into your first Xamarin application. A good way to start is to download Syncfusion’s sample expense tracking application, available at https://github.com/syncfusion/Xamarin-ExpenseAnalysis.

Then, watch Syncfusion Product Solutions Specialist Aaron Melamed take you through the code for each component used in the sample app in his video “Visual Studio 2017 + Xamarin + Syncfusion: Leap Forward in Your Mobile Development!”

Syncfusion has also assembled a playlist of Xamarin tutorials covering the basics of building a Xamarin app and how to implement a variety of Syncfusion controls. This blog post, How to Build a Xamarin App: Master Guide from Intro to Features, has an complete list of all our Xamarin blog post tutorials and ebooks.

With this three-prong approach—utilizing these Syncfusion books, components, and tutorials—you’ll quickly be on your way to building your own Xamarin apps. If you have questions, be sure to submit an incident through Direct-Trac. For more information on acquiring a license, contact sales@syncfusion.com.

This post was originally published on December 4, 2017.

The post Up and Running with Syncfusion, Xamarin, and Visual Studio in 3 Steps appeared first on Syncfusion Blogs.

Our Customers’ Innovative Applications

$
0
0

If you’re reading this post, then you’re probably familiar with how cool our components are. What you might not know is how cool our customers are. We at Syncfusion are always amazed at the huge variety of innovative applications and projects in which our customers use our tools. Many of them have been using our controls and platforms as part of some really awesome applications, and in this post, we’d like to show you just a few of them. Look at all the interesting things we’re in!

Charting infant activities to make parenting easier

The company Coquisoft used the Syncfusion Chart control in their application, ParentLove. This application lets parents quickly record the daily activities of their infants. Parents can keep a record, for example, of their babies’ last feeding time, when their diapers were last changed (and what was in them), and how long they’ve slept. It’s much easier to give a pediatrician a good idea of a baby’s health this way than by trying to recall such details from your sleep-deprived memory. Plus, all guardians involved in the baby’s care can just check the app to figure out what the baby might need, which is less risky than waking the previous caretaker from a dead sleep to ask.

ParentLove App

Driving apps for students keep roads safe

David Lasike developed an app for a community driving school that allows driving instructors to record their feedback for students. Students can then use that feedback to target their weaknesses for practice and improve their driving skills before taking their driving tests. Lasike was one of our first customers to use the export-to-PDF feature of the DataGrid component in his app, and was pleased enough to write an instructional blog post about it!

Deploying dashboards to study outer space

The Brazilian company Horizontes do Saber developed an application for plotting astronomical data in real time using a Dashboard that is accessible on both desktops and mobile devices. The application uses several programming languages and interacts with sensors, IoT devices, and a robotic telescope to extract ambient variables and plot them. Specifically, this data is used to help amateur astronomers study asteroids and lunar impacts, as well as contribute to cooperative astronomy in general.

The equipment from which data is gathered and plotted by Horizontes do Saber’s app.

Reporting solutions to help the environment

EarthSoft’s EQuIS line of automated workflow solutions is the most widely used environmental data management solution. EQuIS handles massive amounts of data from fields like geology, chemistry, biology, and hydrology to help clients manage and meet environment goals. They use Syncfusion’s XlsIO library to help create innovative new technical reports in EQuIS applications.

Mobile apps to improve mental health

The company WeFeel has created an application of the same name using Xamarin charts that makes it easy to track your emotions throughout a day. You can pick emotions and their intensity and add a journal entry if you want to include an explanation or reflection. The app also reminds you to use it. The results can be for your own benefit, to help you better understand what circumstances make you feel like setting the world on fire, or you can share them with healthcare professionals like your therapist.

The WeFeel app tracks your emotional health with help from our Xamarin charts.

Using big data in higher education

Professor Cristian Kevorchian is doing something cool with our Big Data Platform. Professor Kevorchian teaches the course Software Development Methods and Cloud Computing at the University of Bucharest, and he uses our Big Data Platform to show his students how large, commercial big data services work. His students play around with the platform and prepare themselves for the data-crazy job market on an education-friendly budget.

Optimizing apps to empower the visually impaired

In Spain, retired developer Josep Balague is working on a project to empower visually impaired people like himself. He is creating an app that includes several of Syncfusion’s WPF controls in their dark theme, saying that the high contrast is useful for visually impaired users. Balague is hoping that his app will give a level of independence to these users by allowing them to conduct their own daily business online, from paying bills to buying concert tickets. The last we heard, Balague was working on integrating voice recognition and hoping to provide the end product of his project to the Spanish Visually Impaired Organization for free.

 

Syncfusion has a lot of customers doing really cool things. These are just a few of those who were kind enough to send us details when we asked. If you’re using our controls in interesting projects, please let us know! We’d love to make a case study or feature your app in a blog post like this. Email marketing@syncfusion.com for the former, and for the latter, feel free to brag in the comments section below or on Facebook or Twitter (or email that to marketing, too; they love emails).

If you liked this post, you may also like:

The post Our Customers’ Innovative Applications appeared first on Syncfusion Blogs.

The 2018 Succinctly Series Awards are coming!

$
0
0

It’s that time again! We’re thrilled to announce that the second annual Succinctly Series awards will be held in January. Voting for your favorite Succinctly Series ebook begins on January 9th. It’s been a great year for new additions to the collection and we appreciate your letting us know on social media this year which ones are your favorites. In case you missed one, here’s a full list of this year’s books. You’ve got 3 weeks to catch up. See you at the finish line!

Here are 2018’s titles in order of publish date:

We hope you enjoy reading them as much as we have. Check back with us in January and cast your vote!

The post The 2018 Succinctly Series Awards are coming! appeared first on Syncfusion Blogs.

Microsoft Announces Azure Blockchain Development Kit

$
0
0

Few inventions have so shaken the development world as the blockchain. Using vast, distributed networks to swiftly track and verify data holds revolutionary potential for the industry. Unfortunately, some issues have presented challenges for the widespread adoption of blockchain technology. First, the blockchain was invented specifically to address the needs of digital currencies such as Bitcoin, and blockchain systems have largely been designed with little consideration for features that would benefit developers outside that field. Second, the blockchain is simply too new to have received the kind of in-depth iteration and development attention to make it more broadly useful to developers.

Microsoft intends to address both issues head-on with its new product, the Azure Blockchain Development Kit. Of particular importance is the ability to easily authenticate “off chain” elements. Blockchain technology typically focuses solely on numerical data that is being tracked and managed within the chain, while enterprise offerings often need to incorporate supporting materials, such as multimedia resources, that cannot be calculated and may need to be widely distributed. This kind of data is challenging to manage with blockchain solutions. Microsoft’s answer is to incorporate a series of Logic Apps that enable the hashing of files and metadata. This hashing allows these forms of data to be converted into a format that can be compared against a saved, “on chain” reference, ensuring that even non-numerical data can be validated at every step.

The Azure Blockchain Development Kit is built on Microsoft’s serverless technologies and can integrate not only with the wider Microsoft ecosystem, but with many leading third-party SaaS offerings. By utilizing the decades of experience that have been channeled into Azure, Microsoft makes it easier to bring the tools that developers are already familiar with into the comparatively uncharted waters of the blockchain. They have even published a white paper on how to deploy the blockchain in DevOps projects.

While the fortunes of cryptocurrencies have fluctuated, the blockchain technology that was created to manage them has proven to be a potent new tool in developers’ arsenals. Microsoft’s new kit represents a significant step forward for bringing ease-of-use and versatility to blockchain solutions, and is assuredly just one step in a broader trend. Is the blockchain something you are interested in? Is Microsoft’s approach what you’re looking for? Let us know in the comments below.

The post Microsoft Announces Azure Blockchain Development Kit appeared first on Syncfusion Blogs.

What’s New with JavaScript Scheduler in 2018 Volume 4 ?

$
0
0

Our 2018 Volume 3 release included impressive Scheduler features such as timeline views, drag and drop, and resize support. In our new 2018 Volume 4 release, we are including a few more enhancements to cover other important Scheduler use cases.

Our 2018 Volume 4 release is now available to download from the License & Downloads page. If you are new to Syncfusion, you can try our 30-day free trial to check out these new features.

In this blog, we will summarize the new features and enhancements added for the JavaScript Scheduler in the 2018 Volume 4 release. All of the features mentioned here are also available for Angular, React, Vue, ASP.NET MVC, and ASP.NET Core.

Virtual loading for events and resources

In pursuit of better performance in the Scheduler when loading a large number of resources and events, we have added virtual scrolling support in the timeline view to load a large set of resources and events instantly as you scroll.

Scheduler showing Virtual Loading of Events and Resources                                                               Scheduler with Virtual Loading

For now, the virtual loading support is available only for timeline views. In the future, we plan to port virtual loading to all other applicable Scheduler views.

External drag and drop

Previously, you could only drag and drop events within the Scheduler layout. With the new external drag-and-drop support, you can drag and drop events onto other external targets outside the Scheduler. In addition, you can also drag items from external sources and drop them onto the Scheduler.

Dragging and Dropping an item from the External List onto Scheduler

                                              Dragging and Dropping an Item from an External List

Blocking dates and time

There are scenarios where you may want to block specific time ranges or block a set of date series in the Scheduler. Doing so will prevent the creation of events in the cells underlying those blocked time ranges.

We provided this support in a very simple style that allows you to create even recurring blocks easily.

Blocked Times displayed in the Scheduler

                                                              Blocked times in the Scheduler

Islamic calendar mode

You can now view the Scheduler dates in Islamic calendar mode (Hijri year), and display events based on those calendar date values. However, this feature does not yet support recurrence options, but we’re planning to add them in the next release.

Scheduler displayed in Islamic Calendar Mode

                                                         Scheduler in Islamic Calendar Mode

Read-only events

Specific events in the Scheduler can now be defined and displayed as read-only. Only the event information is displayed in read-only events, and their CRUD actions are unavailable by default.

Read-Only Events in Scheduler

                                                                    Read-Only events in Scheduler

Context menu integration

You can now integrate a context menu manually into the Scheduler component from the application end and make it open either on cells or events. We have provided few built-in Scheduler methods to be used from application end to handle those context menu actions.

You can also define custom menu items as needed.

Context Menu displayed on Scheduler Event

                                                             Context Menu on Scheduler event

Drag and resize improvements

In addition to the default drag and resize actions in the Scheduler, we have included a few enhancements to improve user interaction:

  • Auto-scrolling in the Scheduler view port when the drag or resize action on an event reaches either the top or bottom of the view.
  • Automatic navigation to the next or previous date range views while dragging and holding an event either to the left or right edges of the Scheduler.
  • Drag support for events on mobile devices. Tap and hold an event and then move it to a new time slot.
  • Indicator for new events created after single-tapping cells in mobile mode.

New Event Indicator in Scheduler Mobile Mode

                                                             New event Indicator in Mobile mode

Check out all our newly implemented features and, if you wish to send us feedback or would like to ask any questions regarding them, please feel free to post in the comments section below, or contact us through our support forum or Direct-Trac.

The post What’s New with JavaScript Scheduler in 2018 Volume 4 ? appeared first on Syncfusion Blogs.


Converting Word docs to PDFs

$
0
0

Let’s learn how to convert a Word document to a PDF programmatically in C# without Microsoft Office or interop.

Syncfusion Word library (Essential DocIO) renders the contents of a Word document page by page and adds the contents of each page to the PDF document using Syncfusion PDF library. This converter can be easily integrated into .NET Framework (WinForms, WPF, ASP.NET Web forms, and ASP.NET MVC), ASP.NET Core, and Xamarin applications. It works well on both full trust and partial trust environments such as Azure applications.

This converter offers several options to customize Word to PDF conversion,

  • Embed complete or subset font information for TrueType fonts.
  • Substitute alternate fonts from the device or upload the original fonts.
  • PDF conformance level ‘PDF/A1B‘ or ‘PDF/X-1a:2001‘.
  • Convert accessible Word document (508 compliance) to Accessible or Tagged PDF
  • Export the headings or bookmarks in the Word document as PDF bookmarks.
  • Export the Word form fields as PDF form fields during Word to PDF conversion.
  • Adjust JPEG image quality and resolution for optimizing the converted PDF file size.

This converter supports all the elements of a typical Word document like text, formatting, images, tables, hyperlinks, fields, bookmarks, table of contents, shapes, headers, footers, etc. Refer our documentation to know more about Word to PDF conversion.

Steps to perform Word to PDF conversion programmatically in C# without Microsoft Office or interop:

  1. Create a new C# console application (.NET Framework) project.create-a-console-application-in-visual-studio
  2. Install DocToPDFConverter.WinForms NuGet package as a reference to your applications from the NuGet.org. This package contains Syncfusion libraries to perform Word to PDF conversion without Microsoft Office or interop.Note: Starting with v16.2.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer to link to learn about generating and registering Syncfusion license key in your application to use the components without trail message.Add Syncfusion Word to PDF converter NuGet package reference to the project
  3. Include the following namespace in the Program.cs file.The following code snippet is used to open the Word document with DocIO.
    using Syncfusion.DocIO;
    using Syncfusion.DocIO.DLS;
    using Syncfusion.DocToPDFConverter;
    using Syncfusion.Pdf;
    
  4. Use the following code snippet to create Word file with simple text.
    //Get the path of existing Word document
    string fullpath = @"...\..\DocToPDF.docx";
    
    //Loads an existing Word document
    WordDocument wordDocument = new WordDocument(fullpath, FormatType.Docx);
    
    //Creates an instance of the DocToPDFConverter
    DocToPDFConverter converter = new DocToPDFConverter();
    
    //Converts Word document into PDF document
    PdfDocument pdfDocument = converter.ConvertToPDF(wordDocument);
    
    //Releases all resources used by DocToPDFConverter
    converter.Dispose();
    
    //Closes the instance of document objects
    wordDocument.Close();
    
    //Saves the PDF file 
    pdfDocument.Save("DocToPDF.pdf");
    
    //Closes the instance of document objects
    pdfDocument.Close(true);
    

    The following screenshot illustrates the input Word document.

    Input Word document to perform Word to PDF conversion

The next screenshot shows the final PDF document converted from the Word document.

A complete working example of Word to PDF conversion can be downloaded from Convert-Word-to-PDF.zip

An online link for Word to PDF conversion example.

If you want to convert the Word documents to PDF in Xamarin or ASP.NET Core applications or in Azure environment, please check the following pages.

Conclusion

Whether you need to convert a Word document to PDF in any .NET platforms, the Syncfusion Word to PDF converter libraries make work easier for .NET developers. Take a moment to peruse the Word to PDF conversion documentation, where you can find other options and features, all with code examples. If you are new to our DocIO library, it is highly recommended to follow our Getting Started documentation.

Explore more about the rich set of Syncfusion Word Framework and PDF Framework features.

As always, your feedback is highly appreciated, so please do reach out in our comments. You can also contact us through our support forum or Direct-Trac. We are happy to assist you!

If you’re already a Syncfusion user, you can download the product setup on Direct-Trac. If you’re not yet a Syncfusion user, you can download a free, 30-day trial on our website.

This post was originally published on May 20, 2014.

If you like this post, we think you’ll also like:

The post Converting Word docs to PDFs appeared first on Syncfusion Blogs.

What’s New in 2018 Volume 4: JavaScript Pivot Table Updates

$
0
0

Introduction

We are happy to announce that our JavaScript Pivot Table has been updated to its final version. In this blog post, we are going to explore the following major features included in this 2018 Volume 4 release:

  • Editing
  • Drill-through
  • Additional aggregation types
  • Defer layout update
  • Hyperlink
  • Show/hide grand totals and subtotals

Final version of the Pivot Table and new features are also available in Angular, React, Vue, ASP.NET Core, and ASP.NET MVC.

Editing raw items

Editing helps users when applying predictive analytics to their instinct value. Our JavaScript Pivot Table allows you edit raw items directly in a flat/data grid. Users can create, read, delete, and update a record in the raw data source for any pivot summarized cell. In the editing operation, the engine automatically recalculates the pivot data and reflects that change in the JavaScript Pivot Table.

Double-click any pivot cell and it will show a built-in dialog with raw data for the corresponding pivot cell. Double-click any cells in the flat grid from the built-in dialog to edit the data. When you finally update the edited data, the pivot table engine will automatically recalculate the pivot data and reflect it in the view.

There are four types of editing options: inline, batch, dialog, and column. For more details, refer to the documentation.

Cell editing in the JavaScript Pivot Table

Drill-through

Drill-through is a powerful feature used for analysis perspective that provides the ability to see data in a detailed manner. In other words, it shows the raw data of any aggregated value.

You can view the raw items of any pivot cell by double-clicking the cell in the JavaScript Pivot Table. The built-in dialog will be opened. It holds the row headers, column headers, and value information of the clicked cell along with raw data. Refer to our documentation for more details.

Drill through in JavaScript Pivot Table

Advanced aggregation types

We have provided additional aggregation types for better analysis of business data in different scenarios. Newly included types are distinct count, product, index, population stdev, sample stdev, population var, sample var, running totals, difference from, % of difference from, % of grand total, % of column total, % of row total, % of parent total, % of parent column total, and % of parent column total.

We have also provided an option to change the aggregation type through UI interaction for every measure item in the grouping bar and pivot table field list. It helps users change the aggregation type dynamically. Click here to view our documentation on changing the aggregation type.

Advanced aggregation types in JavaScript Pivot Table

Defer layout update

In general, pivot users experience problems while working with big data, as each report operation takes additional time to update the pivot table. To avoid this, we have introduced a defer layout update option to refresh the JavaScript Pivot Table on-demand, similar to the Microsoft Excel pivot table.

When users try to remove or add multiple fields in a report, they may encounter the pivot table updating after each change. But now, users can update the pivot table after performing all changes in the report for a better experience. Users can easily enable or disable this option with UI provision in the field list. Refer to this link for documentation.

Defer layout update in JavaScript Pivot Table

Hyperlink

Users can navigate to the desired page or perform custom operations with cell information when clicking a hyperlink cell.

Users can avail themselves of various options to enable hyperlinks for specific cells. Hyperlink options can be applied for all cells, row headers only, column headers only, value cells only, summary cells only, condition-based options, and for specific row/column headers. Click   to learn more about hyperlink settings.

Hyperlink support in JavaScript Pivot Table

Show hide totals

We have provided an option to display a JavaScript Pivot Table without any grand total or subtotals. Similarly, users can avoid any specific row/column grand total or subtotals for a specific field.

Totals can be disabled by setting an API in the pivot report, and the pivot table will render the data without calculating the total cell. For more details, refer to the documentation.

Show or hide sub-totals and grant totals

What’s Next

If you are an existing customer, please download the new version from the download page and try this new widget and its features for yourself. If you are a new customer, you can try our 30-day free trial to experiment with this new widget.

Please let us know in the comments section below if you have any questions. You can also contact us through our support forum or Direct-Trac.

The post What’s New in 2018 Volume 4: JavaScript Pivot Table Updates appeared first on Syncfusion Blogs.

Why Essential JS 2 Is Still The Only JavaScript UI Toolkit You’ll Ever Need

$
0
0

It’s been a little over a year since we released Essential JS 2, our next-generation JavaScript controls designed to be lightweight, modular, and responsive for modern app development. In that time, we’ve continued to add new controls, new features, and new improvements to maintain its role in your toolbox as the only JavaScript UI library you’ll ever need. Let’s take a look at we’ve done, and what we’re planning to do as 2018 comes to a close.

Scheduler

In the 2018 Volume 1 release, we added the Scheduler control, a complete event calendar that features everything you expect: timeline, day, week, workweek, and month views; resource scheduling; appointment editing through dialogs, drag-and-drop, and resizing; an adaptive UI that scales elegantly on desktop and mobile screens; and data binding support for local and remote data sources.

Essential JS 2 Scheduler Week and Month Views

You can try out a demo of the Scheduler here.

Maps

We also slid the Maps control into Volume 1 for visualizing data in geographical maps. With support for GeoJSON data, Bing Maps, OpenStreetMap data, layers, markers, data labels, navigation lines, and more, you can create any kind of map you need, whether you’re mapping sales territories, political maps, weather maps, or route maps.

Map with Bubble Annotations

View a demo of the Maps control here.

Diagram

With the Diagram control, your end users can create and edit diagrams for any purpose, from simple flow charts to complex mind maps and organizational charts. The control features a variety of connectors, connection ports, labels, and interactive features for thorough customization, and even advanced layout algorithms to keep your diagrams automatically organized.

Organizational Chart Built with Diagram Control

 

You can try a demo of the Diagram control here.

Rich Text Editor

The Essential JS 2 Rich Text Editor is a WYSIWYG editor for HTML and Markdown content. It provides common text editing features like bold, italics, underline, font sizes, font types, paragraph styles, list types, copy and paste, undo and redo, and on and on—everything you expect in a text editor. It’s touch-friendly and responsive, and supports RTL text and globalization, so you can deploy to users anywhere in the world.

Rich Text Editor as an HTML Editor

Rich Text Editor as a Markdown Editor

You can try out the Rich Text Editor here.

These are just some of the controls we added to Essential JS 2 in 2018. In our Volume 2 release alone, we added 14 controls. In total, we have nearly doubled the number of controls Essential JS 2 offers since we released it at the end of 2017, bringing the count to more than 50.

Beyond new controls, we introduced a couple of tools to make developing with Essential JS 2 even smoother.

Theme Studio

Maintaining a consistent, professional appearance and UI is essential to creating a user-friendly app, and to that end we developed the Theme Studio for Essential JS 2. This web-based tool allows you to quickly choose from popular design themes like Material, Bootstrap, and Fabric in both light and dark variations, customize the primary and accent colors, preview the controls in the applied theme, and then generate and download the CSS files you need to apply it in your own projects. Theme Studio even includes an option to create CSS files that allow you to combine both Essential JS 2 and Essential JS 1 controls on a single page. It’s a fast, intuitive tool for creating a consistent UI in your apps.

Previewing Themes Applies to Controls

Custom Resource Generator

One of the founding principles of Essential JS 2 is modularity, allowing you to selectively reference only the resources you need in your projects. With our web-based Custom Resource Generator, you can immediately create compact, lightweight resource files for your application. Just select the controls you’re working with, a theme, and whether you want the resource files minified, and in one click you have a custom script file containing only the controls and features you selected.

Vue support

Third-party frameworks are an integral part of modern web development, and as such, we designed Essential JS 2 to integrate easily with the Angular and React frameworks when it was first released. In Volume 2, we added support for Vue and all native Vue features, including state management, model binding, and dependency injection.


Essential JS 2 Integrates with Vue

Looking ahead

We’re currently putting the finishing touches on our 2018 Volume 4 release. For Essential JS 2, we’re working on File Explorer, PDF Viewer, Splitter, and TreeGrid controls, among others. You can see a full list of what we’re working on here, but note that not everything on the list may make it to the release.

As we wrap up the year and prepare for 2019, we’ll continue to improve and expand Essential JS 2 to ensure it retains its place as the only JavaScript UI toolkit you’ll ever need. If you’re not a Syncfusion customer but all this Essential JS 2 talk has caught your eye, we encourage you to check out interactive demos of the controls in our sample browser, or better yet, download a fully functional 30-day free trial. If you’re a Syncfusion customer but haven’t tried the collection for yourself, you can download it right now by logging into your account and going to your License & Downloads page. Happy web developing!

If you like this post, you may also like:

The post Why Essential JS 2 Is Still The Only JavaScript UI Toolkit You’ll Ever Need appeared first on Syncfusion Blogs.

What’s new in 2018 Volume 4: Syncfusion File Format Libraries (PDF, Excel, Word and PowerPoint)

$
0
0

Syncfusion is glad to share details about the updates in our file format libraries based on your valuable feedback. Our file format libraries allow users to create, edit, write, and convert ExcelPDFWord, and PowerPoint files in .NET Framework, .NET Core, Xamarin, and UWP applications without any Microsoft Office or Adobe dependencies.

In this blog, we’ll showcase the new features and enhancements included in the 2018 Volume 4 release of our file format libraries.

PDF

Draw text with OpenType fonts

OpenType is a cross-platform font format. It has an expanded character set, ligatures, glyph substitution, and layout features. The Syncfusion PDF library (Essential PDF) allows you to add text in PDF documents using OpenType fonts (OTF).

The following code example shows how to draw text in a PDF document using OTF.

//Create a new instance of PDF document class.
PdfDocument document = new PdfDocument();

//Add a new page to the document.
PdfPage page = document.Pages.Add();

//Text to draw.
string inputText = @"Adventure Works Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company. The company manufactures and sells metal and composite bicycles to North American, European and Asian commercial markets. While its base operation is located in Washington with 290 employees, several regional sales teams are located throughout their market base.";

//Read the OTF font file from disk.
FileStream fontFileStream = new FileStream("NotoSerif-Black.otf", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

//Create PDF font.
PdfFont font = new PdfTrueTypeFont(fontFileStream, 14);

//Draw the text.
page.Graphics.DrawString(inputText, font, PdfBrushes.Black, new RectangleF(0, 0, page.GetClientSize().Width, page.GetClientSize().Height);

//Save the document.
document.Save("OpenTypeFont.pdf");

//Close the document.
document.Close(true);
PDF created with OpenType font
Using OTF in a PDF Document via the Syncfusion PDF Library

To learn more about drawing text in PDF documents, please refer to our Essential PDF documentation page, Drawing text in PDF.

Get certificate details from PDFs

Now you can retrieve or get certificate details like subject, issuer, valid from, valid to, and more from an existing PDF file. Using Essential PDF, we can re-sign a document based on the signature validity.

The following code example shows how to get certificate details to verify the document’s validity.

//Load the existing PDF document certificate.
PdfLoadedDocument ldoc = new PdfLoadedDocument(“Input.pdf”);

//Get the existing signature field.
PdfLoadedSignatureField field = ldoc.Form.Fields[0] as PdfLoadedSignatureField;

//Get the certificate details. 
var FromDate = field.Signature.Certificate.ValidFrom;
var ExpireDate = field.Signature.Certificate.ValidTo;

if (DateTime.Now > ExpireDate)
   {
      MessageBox.Show("Certificate was Expired.");
   }
else {
       MessageBox.Show("Certificate is Valid.");
   }
//Close the loaded document.
ldoc.Close(true);
PDF document certificate details
Retrieving PDF Document Certificate Details with Syncfusion PDF Library

Create PDF/A-1b document

Essential PDF already supported creating PDF/A-1b documents in .NET Framework platforms. Now, it is extended to be supported in Xamarin.Forms, .NET Core, and UWP.

The following code example shows how to create a PDF/A-1b-compliant document.

//Create a new PDF document.
PdfDocument document = new PdfDocument(PdfConformanceLevel.Pdf_A1B);

//Add a page.
PdfPage page = document.Pages.Add();

//Create font.
Stream arialFontStream = typeof(Conformance).GetTypeInfo().Assembly.GetManifestResourceStream("SampleBrowser.PDF.Samples.Assets.arial.ttf");

PdfFont font = new PdfTrueTypeFont(arialFontStream, 14);

//Text to draw.
string text = @"Adventure Works Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company. The company manufactures and sells metal and composite bicycles to North American, European and Asian commercial markets. While its base operation is located in Washington with 290 employees, several regional sales teams are located throughout their market base.";
                        
//Draw text.
page.Graphics.DrawString(text, font, PdfBrushes.Black, new RectangleF(0,0, page.Graphics.ClientSize.Width, page.Graphics.ClientSize.Height));

MemoryStream stream = new MemoryStream();

//Save the PDF document.
document.Save(stream);

//Close the PDF document.
document.Close();
PDF-A1B creation in .NET Core and Xamarin
PDF/A-1b-Compliant Document Created with Syncfusion PDF Library

To learn more about PDF conformance, please refer to our PDF conformance documentation page.

Excel

Convert Excel to PDF in .NET Core and Xamarin

Previously, the Syncfusion Excel library (Essential XlsIO) supported Excel-to-PDF conversion only in .NET Framework applications. Now, we have added support for Excel-to-PDF conversion from .NET Standard 1.4 onwards. You can convert entire workbook or a particular worksheet to PDF. With this support, now XlsIO converts Excel documents into PDF in ASP.NET Core, and Xamarin platforms.

To use Excel-to-PDF conversion in your application, you can install the NuGet packages from NuGet.org:

The following code illustrates exporting an Excel file to PDF.

class Program
{
    static void Main(string[] args)
    {
      using (ExcelEngine excelEngine = new ExcelEngine())
      {
IApplication application = excelEngine.Excel;

//Open the file as a stream.
FileStream XlsIOStream = new FileStream("Template.xlsx", FileMode.Open, FileAccess.Read);
IWorkbook workbook = application.Workbooks.Open(XlsIOStream);

// Creates an instance of XlsIORenderer for Excel-to-PDF conversion.
XlsIORenderer renderer = new XlsIORenderer();

//Convert the workbook to PDF.
PdfDocument document = renderer.ConvertToPDF(workbook);

//Saving the PDF as a stream.
FileStream stream = new FileStream("Output.pdf", FileMode.Create, FileAccess.ReadWrite);
document.Save(stream);

stream.Dispose();
XlsIOStream.Dispose();
document.Close();
      }
    }
}

For example, the following code converts an entire Excel file with renderer settings to PDF.

class Program
{
    static void Main(string[] args)
    {
      using (ExcelEngine excelEngine = new ExcelEngine())
      {
IApplication application = excelEngine.Excel;

//Open the file as a stream.
FileStream XlsIOStream = new FileStream("Template.xlsx", FileMode.Open, FileAccess.Read);
IWorkbook workbook = application.Workbooks.Open(XlsIOStream);

// Creates an instance of XlsIORenderer for Excel-to-PDF conversion.
XlsIORenderer renderer = new XlsIORenderer();

XlsIORendererSettings settings = new XlsIORendererSettings();
// Lay out the page using FitAllColumnsOnOnePage option.
settings.LayoutOptions = LayoutOptions.FitAllColumnsOnOnePage;

//Convert the workbook to PDF.
PdfDocument document = renderer.ConvertToPDF(workbook, settings);

//Saving the PDF as a stream.
FileStream stream = new FileStream("Output.pdf", FileMode.Create, FileAccess.ReadWrite);
document.Save(stream);

stream.Dispose();
XlsIOStream.Dispose();
        document.Close();
      }
    }
}

The following code illustrates exporting an Excel worksheet with renderer settings to PDF.

class Program
{
    static void Main(string[] args)
    {
      using (ExcelEngine excelEngine = new ExcelEngine())
      {
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;

//Open the file as a stream.
FileStream XlsIOStream = new FileStream("Template.xlsx", FileMode.Open, FileAccess.Read);
IWorkbook workbook = application.Workbooks.Open(XlsIOStream);
IWorksheet worksheet = workbook.Worksheets[0];

// Creates an instance of XlsIORenderer for Excel-to-PDF conversion.
XlsIORenderer renderer = new XlsIORenderer();

XlsIORendererSettings settings = new XlsIORendererSettings();
// Lay out the page using FitAllColumnsOnOnePage options.
settings.LayoutOptions = LayoutOptions.FitAllColumnsOnOnePage;

//Convert the workbook to PDF.
PdfDocument document = renderer.ConvertToPDF(worksheet, settings);

//Saving the PDF as a stream.
FileStream stream = new FileStream("Output.pdf", FileMode.Create, FileAccess.ReadWrite);
document.Save(stream);

stream.Dispose();
XlsIOStream.Dispose();
document.Close();
}
    }
}
Excel to PDF in .NET Core and Xamarin
Excel Workbook Converted to PDF via Syncfusion Excel and PDF Libraries

For more information, please refer to our Excel-to-PDF conversion documentation.

Word

Restart numbering in lists

The Syncfusion Word library (Essential DocIO) now allows numbering in lists to be restarted in Word documents while performing mail merge and merging multiple Word documents.

Restart list number when performing mail merge
Numbered Lists with Restarted Numbering in a Word Document

The following code example illustrates how to restart the list numberings in Word documents while performing mail merge and merging multiple Word documents.

FileStream fileStream = new FileStream("Template.docx", FileMode.Open);
//Loads an existing Word document.
WordDocument wordDocument = new WordDocument(fileStream, FormatType.Docx);
//Sets ImportOptions to restart the list numbering.
wordDocument.ImportOptions = ImportOptions.ListRestartNumbering;
//Creates the employee details as “IEnumerable” collection.
List employeeList = new List();
employeeList.Add(new Employee("101", "Nancy Davolio", "Seattle, WA, USA"));
employeeList.Add(new Employee("102", "Andrew Fuller", "Tacoma, WA, USA"));
employeeList.Add(new Employee("103", "Janet Leverling", "Kirkland, WA, USA"));
//Creates an instance of “MailMergeDataTable” by specifying mail merge group name and “IEnumerable” collection.
MailMergeDataTable dataTable = new MailMergeDataTable("Employees", employeeList);
//Performs mail merge.
wordDocument.MailMerge.ExecuteGroup(dataTable);
//Saves the Word document.
MemoryStream outputStream = new MemoryStream();
wordDocument.Save(outputStream, FormatType.Docx);
//Closes the instance of Word document object.
wordDocument.Close();

///
/// Represents a helper class to perform mail merge.
///
public class Employee { public string EmployeeID { get; set; } public string EmployeeName { get; set; } public string Location { get; set; } 
///
/// Represents a constructor to create value for merge fields.
//
public Employee(string employeeId, string employeeName, string location) { EmployeeID = employeeId; EmployeeName = employeeName; Location = location; } }

Update field enhancements

Essential DocIO now allows updating the AutoNum and Set fields in a Word document.

Hyphenation in Word-to-PDF and Word-to-image conversions

Essential DocIO now allows hyphenating text in a Word document while converting it to PDF or image formats.

hypenation support in Word to PDF conversion c#
Hyphenation in a Word Document converted to PDF

The following code example illustrates setting the hyphenation properties during Word-to-PDF conversion.

FileStream fileStream = new FileStream("Template.docx", FileMode.Open);
//Loads an existing Word document.
WordDocument wordDocument = new WordDocument(fileStream, FormatType.Docx);
//Instantiates DocIORenderer instance for Word-to-PDF conversion.
DocIORenderer renderer = new DocIORenderer();
//Reads the language dictionary for hyphenation.
FileStream dictionaryStream = new FileStream("hyph_en_US.dic", FileMode.Open);
//Adds the hyphenation dictionary of the specified language.
Hyphenator.Dictionaries.Add("en-US", dictionaryStream);
//Converts Word document to PDF document.
PdfDocument pdfDocument = renderer.ConvertToPDF(wordDocument);
//Closes the instance of Word document object.
wordDocument.Close();
//Releases the resources occupied by DocIORenderer instance.
renderer.Dispose();
//Saves the PDF file.  
MemoryStream outputStream = new MemoryStream();
pdfDocument.Save(outputStream);
//Closes the instance of PDF document object.
pdfDocument.Close();

Track changes in Word-to-PDF conversion

Essential DocIO now allows showing revision marks in a generated PDF when converting Word documents with tracked changes or revisions.

Word-to-pdf with track changes
Tracked Changes Displayed in a Converted PDF Document

The following code example illustrates setting these properties during Word-to-PDF conversion.

FileStream fileStream = new FileStream("Template.docx", FileMode.Open);
//Loads an existing Word document.
WordDocument wordDocument = new WordDocument(fileStream, FormatType.Docx);
//Sets revision types to preserve track changes in Word-to-PDF conversion.
wordDocument.RevisionOptions.ShowMarkup = RevisionType.Deletions | RevisionType.Formatting | RevisionType.Insertions;
//Instantiates DocIORenderer instance for Word-to-PDF conversion.
DocIORenderer renderer = new DocIORenderer();
//Converts Word document into PDF document.
PdfDocument pdfDocument = renderer.ConvertToPDF(wordDocument);
//Closes the instance of the Word document object.
wordDocument.Close();
//Releases the resources occupied by DocIORenderer instance.
renderer.Dispose();
//Saves the PDF file.  
MemoryStream outputStream = new MemoryStream();
pdfDocument.Save(outputStream);
//Closes the instance of PDF document object.
pdfDocument.Close();

Word-to-PDF enhancements in ASP.NET Core and Xamarin platforms

Essential DocIO now provides the following features during Word-to-PDF conversion:

  • 30% improvement in conversion performance.
  • Improvements in text size calculation to paginate Word documents properly.
  • Preservation of rotated images.
  • Option to embed complete or subset font information for TrueType fonts.
  • PDF conformance levels PDF/A1B and PDF/X-1a:2001.
  • Preservation of complex script text.

The following code example illustrates how to set the font embedding and PDF conformance level options during Word-to-PDF conversion in ASP.NET Core and Xamarin platforms.

FileStream fileStream = new FileStream("Template.docx", FileMode.Open);
//Loads an existing Word document.
WordDocument wordDocument = new WordDocument(fileStream, FormatType.Docx);
//Instantiates DocIORenderer instance for Word to PDF conversion.
DocIORenderer renderer = new DocIORenderer();
//Sets EmbedFonts property as true to embed fonts in resultant PDF.
renderer.Settings.EmbedFonts = true;
//Sets EmbedCompleteFonts property as true to embed complete font information in converted PDF.
renderer.Settings.EmbedCompleteFonts = true;
//Sets PDF conformance level PDF/A1B or PDF/X-1a:2001 for long-term archiving.
renderer.Settings.PdfConformanceLevel = PdfConformanceLevel.Pdf_A1B;
//Sets AutoDetectComplexScript property as true to detect complex scripts automatically.
renderer.Settings.AutoDetectComplexScript = true;
//Converts Word document to PDF document.
PdfDocument pdfDocument = renderer.ConvertToPDF(wordDocument);
//Closes the instance of Word document object.
wordDocument.Close();
//Releases the resources occupied by DocIORenderer instance.
renderer.Dispose();
//Saves the PDF file.  
MemoryStream outputStream = new MemoryStream();
pdfDocument.Save(outputStream);
//Closes the instance of PDF document object.
pdfDocument.Close();

PowerPoint

Connector

A connector is a line that links two shapes via their port positions which will automatically adjust its position when those shapes move. Each shape object has a different number of port points and that can be linked with a connector.

Connectors can be any of the following types and they are:

  • Straight
  • Elbow
  • Curved

The Syncfusion PowerPoint library (Essential Presentation) provides support to add, edit, remove, format, and convert all three types of connectors in PowerPoint files.

The following code example shows how to draw a connector between two shapes.

// Create a new PowerPoint file.
using (IPresentation ppDocument = Presentation.Create())
{

  // Add a slide to the PowerPoint file.
  ISlide slide = ppDocument.Slides.Add(SlideLayoutType.Blank);

  // Add a rectangle to the slide.
  IShape rectangle = slide.Shapes.AddShape(AutoShapeType.Rectangle, 200, 300, 100, 100);

  // Add an oval to the slide.
  IShape oval = slide.Shapes.AddShape(AutoShapeType.Oval, 400, 10, 100, 100);

  // Add a connector and connect the start and end shapes with specified port positions.
  IConnector connector = slide.Shapes.AddConnector(ConnectorType.Straight, rectangle, 0, oval, 4);

  // Save the presentation file.
  ppDocument.Save("Sample.pptx");
}
PowerPoint Presentation with Connectors between Shapes
PowerPoint Presentation with Connectors between Shapes

Shrink text on overflow

In a PowerPoint slide, if you add more text than a shape can hold, the text will overflow beyond the boundaries of the shape. By using a “shrink text on overflow” option, you can fit longer text within a shape. This option will reduce the font size and line spacing values of the text so that it fits within the shape. The Syncfusion PowerPoint library now provides support for shrinking text on overflow. The following screenshot shows how to enable this property in Microsoft PowerPoint.

Shrink Text on Overflow Option in PowerPoint
Enabling Shrink Text on Overflow Option in PowerPoint

The following code example shows how to enable the ShrinkTextOnOverFlow property for a text box using the Syncfusion PowerPoint library.

// Create a new PowerPoint file.
using (IPresentation ppDocument = Presentation.Create())
{

  // Add a slide to the PowerPoint file.
  ISlide slide = ppDocument.Slides.Add(SlideLayoutType.Blank);

  // Add a text box to the slide
  IShape textBox = slide.Shapes.AddTextBox(100, 100, 100, 100);

  //Add text to the text box. 
  textBox.TextBody.AddParagraph("Lorem ipsum dolor sit amet, consectetur adipiscing elit");

  //Set the property to shrink text on overflow. 
  textBox.TextBody.FitTextOption = FitTextOption.ShrinkTextOnOverFlow;

  // Save the PowerPoint file.
  ppDocument.Save("Sample.pptx");
}

Try it out

If you are an existing Syncfusion user, please download the latest version from the License & Downloads page and try the new features for yourself. Also, our NuGet packages are available on NuGet.org. If you aren’t a customer yet, you can try our 30-day free trial to check out these features.

If you are new to Syncfusion’s file format libraries, we highly recommend that you follow our user guide. In order to get started quickly with your desired file format, please follow these links:

If you have any questions or require clarification on these features, please let us know in the comments below. You can also contact us through our support forum or Direct-Trac. We are happy to assist you!

The post What’s new in 2018 Volume 4: Syncfusion File Format Libraries (PDF, Excel, Word and PowerPoint) appeared first on Syncfusion Blogs.

Catch up on the Top 10 Coding Blog Posts of 2018

$
0
0

Look back at this year’s most-read “How-To” blog posts on web and mobile development to learn how you can get more out of your favorite development toolkit.

Web Development tutorials and info


File Explorer in JavaScript

Learn how to implement a Windows Explorer-like interface within a web application, allowing end-users to browse, upload, and download files. Folder structure can be changed by renaming, moving, or deleting folders and files. In addition, the control’s layout and folder management can be customized.

 


Introducing New Angular Tree View Component in Essential JS 2

This post will help you represent hierarchical data in a tree-like structure, with the option of expanding and collapsing the tree nodes. Includes features like data binding, node icon support, check boxes, node templates, drag-and-drop, and node editing supports.

 


HTML-to-PDF Conversion Using ASP.NET Core in Linux Docker

We explore how the HTML-to-PDF converter can be easily integrated into any application with five simple lines of code. Using this library, you can turn an entire webpage into a PDF file, or just convert a portion of the page. Your PDF will just look like the webpage you converted.

 


Adding a Drop-Down List to Your Angular Application

This is a look at the Angular drop-down list component in Essential JS 2. You will learn how to get started with a simple drop-down list and move on to enabling several of its features by extending the sample with simple code snippets.

 


Create Beautiful Charts in Angular

Learn the process of creating a simple chart in an Angular application and configuring the basic features. The complete code can be found at our GitHub repository.

 

 

Mobile Development tutorials and info


Overview of the Progress Bar control in Xamarin.Forms

Using a progress bar in Xamarin.Forms just got easier. This post covers the use of features such as rectangular and circular bar shapes, determinate and indeterminate states, segmented progress visualization, customized range colors, and animations.

 


Put OpenStreetMap, Bing Maps in Your Xamarin.Forms Application Using Syncfusion Maps

You can show OpenStreetMaps and Bing maps using the Xamarin.Forms Maps control, providing the ability to visualize satellite, aerial, street map, or other kinds of imagery tiles without using any external shapes files. Find out how you can effectively use this toolkit.

 


How to Create a Mobile App That Monitors Accelerometer Data

Thanks to Xamarin.Essentials and Syncfusion’s Circular Gauge control, creating a mobile app that monitors accelerometer data has never been easier! Let’s take a look at how to implement this control in a Xamarin Forms app.

 


Overview of Data Grid in Xamarin.Forms Part 1

This blog post explores the Syncfusion Data Grid component in Xamarin.Forms. Create a real-world data grid that renders the data collection from your view model into a table format. It includes functionalities like data binding, sorting, grouping, editing, and filtering.

 


Word-to-PDF conversion in Xamarin and .NET Core

Learn how to convert Word documents to PDF in Xamarin and .NET Core with the help of the SkiaSharp graphics library.

 

 

If you liked these posts, we think you’ll also enjoy:

The post Catch up on the Top 10 Coding Blog Posts of 2018 appeared first on Syncfusion Blogs.

Viewing all 473 articles
Browse latest View live