Devexpress Library

0 views
Skip to first unread message

Dardo Hameed

unread,
Aug 5, 2024, 1:37:41 AM8/5/24
to mentrehardgrav
Generateand process PDF files across all platforms and operating systems that support recent .NET versions. Our PDF Document API library is powered by our Skia-based cross-platform rendering engine and supports the following platforms and operating systems:

Use our .NET PDF Document API to customize print output and turn your PDF document into a printed report with a simple method call. You can customize page margins, document orientation, paper size, and relevant page settings.


And yes, you can easily convert PDF files to a PNG, JPEG, BMP, TIFF, or GIF format without sacrificing image quality. And of course, you can also use our Word Document API and Excel Spreadsheet API to convert your Microsoft Word documents and Excel workbooks to PDF.


With our PDF Document API, you can prevent unauthorized access to PDF files. Encrypt your documents with a password or apply permissions to prevent copying, changing, or printing PDF files as needed.


If you need to add a full PDF Viewer to your WinForms or WPF application, be sure to check out our PDF Viewer UI controls. These ready-to-go UI controls allow you to display, manipulate, and print PDF documents directly in your desktop applications without installing an external PDF reader on your end-user's machine.


As you may already know, our Word Processing File API supports OLE objects. OLE technology allows you to insert data (spreadsheets, images, presentations, charts, etc.) from external applications into your document....


The DevExpress Spreadsheet Document API supports a broad range of 2D and 3D chart types. In our most recent major release, we extended the list of supported chart types and added support for Excel 2016 charts.


Review the list of development tools and frameworks supported by our products. We strongly recommend that you always download and use the most recent versions. If the latest version does not support the IDE or framework you're using, please submit a support ticket via the DevExpress Support Center and request an evaluation version that suits your requirements.


Experience the DevExpress difference and see why your peers consistently vote our products #1. With our Universal Subscription, you will build your best, see complex software with greater clarity, increase your productivity and create stunning applications for Windows, Web and your Mobile world.


DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, Delphi, HTML5 or iOS & Android development. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.


With our PDF Document API, you can combine multiple PDF files into one or mix, insert, delete, and rotate PDF pages. You can also extract text & images, generate background graphics, work with interactive forms, add text annotations, incorporate comments and replies to your PDF documents.


The DevExpress.Drawing Graphics Library contains the basic drawing functionality for DevExpress components. This library ships with the DevExpress primitives, which serve as counterparts for the System.Drawing primitives (Font, Pen, Brush, and so on).


The library can utilize two drawing engines: one based on GDI+, another based on SkiaSharp. This article describes the library usage with different operating systems and frameworks, and limitations in each supported product.


Normally, you must not use the SkiaSharp-based engine on Windows, because the GDI+ engine is automatically used by default. The only rare and advanced usage scenario to enable the SkiaSharp-based engine on Windows, is when your app ran out of the available desktop heap or hit the quota of 10K GDI handlers per process. For instance, this may happen when a DevExpress report contains multiple complex XRRichText components (due to USER32 kernel objects we create to draw content or measure text using Windows GDI+ API). In this case, call the DevExpress.Drawing.Internal.DXDrawingEngine.ForceSkia() method to force the Skia-based rendering in your Windows-based app.


The GDI+ engine is not compatible with the System.Drawing.Common package version 7 and higher in non-Windows environments. If your application depends on that package, a NotSupportedException is thrown. In this case, you need to switch the drawing engine to Skia-based render. See the following section for instructions.


If the engine is not enabled automatically and the NotSupportedException is thrown, call the DevExpress.Drawing.Internal.DXDrawingEngine.ForceSkia() method to force the Skia-based rendering. Please note that this API is marked as internal and we may change it in the future. Please research why the SkiaSharp-based engine was not enabled automatically in your environment (you can contact the DevExpress Support team, specify your OS version, installed software dependencies, if you already added required packages to your non-Windows app).


This post includes updated release info on the DevExpress Drawing Graphics Library. As you may know, our Graphics library contains basic cross-platform drawing logic for DevExpress UI components and ships with DevExpress primitives, counterparts to System.Drawing primitives (Font, Pen, Brush, etc). Thanks to its cross-platform pedigree, you can use products such as DevExpress Reports, Office File API and BI Dashboard in .NET 6/7/8-based applications deployed to non-Windows platforms/environments such as Azure/AWS Unix-based Web Apps, Docker containers and VMs.


We released the DevExpress Drawing Graphics Library to manufacturing (RTM) in our v23.1 release cycle. Refer to the following blog post to learn more about functionality introduced in the RTM release: DevExpress Drawing Library Goes RTM (v23.1).


"I see that the DevExpress.Reporting.Core package depends on System.Drawing.Common. In turn, this library functionality is not available in non-Windows environments such as Linux starting with .NET 6. Do you plan to release a version of the package compatible with .NET 6/7/8?"


While the ultimate goal would be to remove the System.Drawing.Common reference from various assemblies, a key point to remember is that multiple DevExpress products share a set of so-called "core" assemblies. Core assemblies used across our products, (such as those used in our WinForms product line), naturally include a reference to System.Drawing so as to handle fonts, images, and printing. For instance, in DevExpress.Data, you'll find a reference to System.Drawing.Common >=4.7.2, which is necessary for GDI+ environments like Windows (e.g., in .NET Framework-based WinForms apps with Reporting).


Consider our WinForms Charts library as an example. It shares the same codebase as our XRChart report control, and the chart rendering algorithms used in our Office File API. To limit impact to DevExpress-powered WinForms apps, we duplicated public APIs (Font and Image to DXFont and DXImage respectively) and retained references to System.Drawing.


We don't want to create new headaches for those supporting existing Windows-only apps. As such, we're unlikely to remove the System.Drawing dependencies within core packages in the future (to maintain compatibility with both .NET Framework and .NET within our codebase).


Regarding DevExpress NuGet packages: These are "multi-target" packages, supporting both .NET Framework and .NET 6+ apps simultaneously. Although they include a System.Drawing.Common reference, this reference doesn't impact unsupported cross-platform scenarios like Linux, macOS, Android, iOS with .NET MAUI, or Blazor WebAssembly. Technically,System.Drawing.Common v5.0.3 referenced in our assemblies is not used in these scenarios.


The System.PlatformNotSupported exception will occur in non-Windows environments if your .NET app refers to System.Drawing.Common >= 6.0.0. This reference may arise from third-party libraries; for example, adding a System.Security.Permissions package creates a System.Drawing.Common 7.0.0 dependency. DevExpress assemblies only reference System.Drawing.Common 5.0.3.


What matters most is that internal tests run smoothly, and feedback from our customers confirms that cross-platform products like DevExpress Reports, Dashboards and Office File API do not throw System.PlatformNotSupported exceptions in apps deployed to non-Windows environments. These apps produce expected results because we refactored our cross-platform code and successfully migrated to the DevExpress Drawing Graphics library.


This change allows you to use this component in non-Windows environments. Refer to the: Rich Text Editor for Blazor - PaperKind members changed their types breaking change for additional information.


We introduced a new cross-platform DXSvgImage type to support SVG graphics across our Word Document API, PDF Document API and Excel Spreadsheet API product line. You can now import, save, export (PDF), and edit Word, Excel and PDF documents with SVG graphics in both Windows and non-Windows environments. Additionally, you have the flexibility to resize, move, and align SVG images within the document.


With our v23.2 update, we eliminated use of System.Drawing.Common API references across XAF Blazor/WinForms UI and Web API Service. This ensures that our cross-platform libraries function correctly in Linux, Mac, Windows, Android, iOS for .NET 7, .NET 8, and future target frameworks. This simplification also streamlines development and deployment for new UI platforms like .NET MAUI and Blazor WebAssembly with .NET 8, 9, 10, etc. For additional information, please refer to our Breaking Change web page.


We've enhanced the functionality of the DXMetafile type, enabling support for a subset of commands for importing and drawing metafiles. This enhancement ensures that charts, gauges, and sparklines in report and Word/Excel/PDF documents are now exported in vector format with optimized performance. Additionally, you have the flexibility to rasterize images generated by these elements and set image DPI during PDF export.

3a8082e126
Reply all
Reply to author
Forward
0 new messages