Use Office File API on Linux
- 4 minutes to read
This tutorial describes how to create a simple Office File API application for .NET on Linux.
Prerequisites
Add Common Libraries
The .NET library of the required version.
The font libraries below (based on your Linux distribution) to measure, render, and export document text to PDF within your Office File API application.
sudo apt-get install -y libc6 libicu-dev libfontconfig1
Packaged fonts. To install font files on your machine, put them in the /usr/share/fonts folder and execute the ‘fc-cache’ command to update
fontconfig
cache files.You can also install the
ttf-mscorefonts-installer
package to add Microsoft TrueType core fonts (Arial, Times New Roman, Courier New, and so on) to your system. Run one of the following terminal commands to install this package and accept the license agreement.sudo apt-get install ttf-mscorefonts-installer
If your application needs to render JPEG images within PDF files, install the packages below based on your Linux distribution (or any other packages that implement libjpeg API v6.2 or v8.0):
sudo apt install -y libjpeg-turbo8
Add Drawing Engine Libraries
Add libraries related to the drawing engine to your application. The Office File API can use the following two drawing engines. Note that each engine is compatible with a certain range of System.Drawing.Common
library versions.
Drawing Engine | System.Drawing.Common version |
---|---|
libgdiplus-based Drawing Engine | 6 and earlier |
SkiaSharp-based Drawing Library | All versions |
How Office File API Chooses an Engine
The Office File API looks for drawing library references and enables the corresponding engine. The choice is also restricted by System.Drawing.Common
library compatibility, as outlined in the table above. If the application contains references for both engines (that is, libgdiplus
and DevExpress.Drawing.Skia
), the libgdiplus-based engine is used. If no references are available, an exception is thrown.
Refer to the following article for more information on the drawing engines: DevExpress.Drawing Graphics Library
Libgdiplus-Based Drawing Engine
In addition to the libraries listed above, the libgdiplus-based drawing engine requires the following packages:
- libgdiplus
harfbuzz
freetype
Add the Mono repository to your system to install the latest libgdiplus version or use the corresponding terminal commands (depending on your Linux distribution).
SkiaSharp-Based Drawing Engine
Make sure that you add the DevExpress.Drawing.Skia package to your application to use the SkiaSharp-Based drawing engine.
If you use the the System.Drawing.Common
package v7 and later, the Skia-based engine is enabled automatically and the libgdiplus
library is not required.
Create an Application
Create a folder for you project (OfficeConsoleApp in this example) and open this folder in Visual Studio Code.
Click View → Terminal in the main menu to open the integrated terminal. Use the dotnet new command to create a new console application.
dotnet new console
This command adds the following files to your folder:
OfficeConsoleApp.csproj / OfficeConsoleApp.vbproj
Program.cs / Program.vb.
Add DevExpress.Document.Processor Package
Obtain your NuGet Feed URL and install the DevExpress.Document.Processor NuGet package as described in the following topic: Use NuGet Packages to Install Office File API Components.
Add the DevExpress.Pdf.SkiaRenderer package to enable rendering of PDF page content within your app.
Important
You need a license for the DevExpress Office File API Subscription or DevExpress Universal Subscription to use this package in production code.
Insert Code
Paste the code below in the Main method of the Program.cs file (or the Program.vb file’s Main procedure for Visual Basic). The following example converts a DOCX file to PDF:
using DevExpress.XtraRichEdit;
// ...
static void Main(string[] args) {
using (var wordProcessor =
new RichEditDocumentServer()) {
// Load a document from a file.
wordProcessor.LoadDocument("Document.docx", DocumentFormat.OpenXml);
// Export the document to PDF.
wordProcessor.ExportToPdf("PdfDocument.pdf");
}
}
Run the Application
Type dotnet run in the terminal window to run the program.
dotnet run
The following image illustrates the result. This tutorial uses Visual Studio Code.