Save a PDF to a Remote Server in MAUI
Saving a PDF document to a server in MAUI is achievable by programmatically exporting the document and then sending it to its remote destination.
Note that there’s a platform-specific setup required for FileSaver
. It’s worth reading about the setup here if you’re not familiar with it.
Exporting a Document to a Remote Server
The example below uses Microsoft’s HttpClient
for demonstration purposes, though the general idea can be adapted to whichever solution you use:
HttpClient client = new HttpClient(); MultipartFormDataContent form = new MultipartFormDataContent(); var exportConfiguration = _document.CreateExportConfiguration(); // Update the configuration here. // Read the file into a byte array. byte[] fileBytes = await _document.ExportDocumentAsync(exportConfiguration); // Create a `ByteArrayContent` from the byte array. ByteArrayContent fileContent = new ByteArrayContent(fileBytes); // Add the file content to the form. form.Add(fileContent, "file", "download.pdf"); form.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { FileName = "download.pdf" }; // Send the `POST` request to the server. HttpResponseMessage response = await client.PostAsync(remoteLocation, form); // Check the response status. if (response.IsSuccessStatusCode) { // File uploaded successfully. Console.WriteLine("File uploaded successfully"); } else { // File upload failed. Console.WriteLine("File upload failed. Status: " + response.StatusCode); }
For more control over exporting documents, use IExportConfiguration
. If you pass null
instead, the default configuration will be used.
To make it easier to try exporting a document to a remote server in Catalog, we added a Python script, exportServer.py
, which can be used to start a local server. You can find it in the Resources/Server/
folder. To start the server:
-
Run the server using the
python exportServer.py
command.
Now you can save a document to this server using localhost:5000
as the server path.