How to export the document as PDF in Blazor Document Editor

1 Oct 20255 minutes to read

In this article, we are going to see how to export the document as PDF format.

With the help of Syncfusion® DocIO, you can export the document as PDF.

The following way illustrates how to convert the document as PDF:

The following example code illustrates how to process the sfdt in server-side.

@using Syncfusion.Blazor.DocumentEditor
@using System.IO
@using System.Net
@using System.Text.Json
@using Syncfusion.DocIORenderer 

<button @onclick="ExportAsPdf">Export as Pdf</button>
<SfDocumentEditorContainer @ref="container" EnableToolbar=true Height="590px">
    <DocumentEditorContainerEvents Created="OnLoad"></DocumentEditorContainerEvents>
</SfDocumentEditorContainer>

@code {
        SfDocumentEditorContainer container;
        string sfdtString;

    protected override void OnInitialized()
    {
        string fileUrl = "https://www.syncfusion.com/downloads/support/directtrac/general/doc/Getting_Started1018066633.docx";
        WebClient webClient = new WebClient();
        byte[] byteArray = webClient.DownloadData(fileUrl);
        Stream stream = new MemoryStream(byteArray);
        //To observe the memory go down, null out the reference of byteArray variable.
        byteArray = null;
        WordDocument document = WordDocument.Load(stream, ImportFormatType.Docx);
        stream.Dispose();
        //To observe the memory go down, null out the reference of stream variable.
        stream = null;
        sfdtString = JsonSerializer.Serialize(document);
        document.Dispose();
        //To observe the memory go down, null out the reference of document variable.
        document = null;
    }
    public void OnLoad(object args)
    {
        SfDocumentEditor editor = container.DocumentEditor;
        editor.OpenAsync(sfdtString);
        //To observe the memory go down, null out the reference of sfdtString variable.
        sfdtString = null;
    }
    public async void ExportAsPdf()
    {
        SfDocumentEditor editor = container.DocumentEditor;
        string base64Data = await editor.SaveAsBlobAsync(FormatType.Docx);
        byte[] data = Convert.FromBase64String(base64Data);
        //To observe the memory go down, null out the reference of base64Data variable.
        base64Data = null;
        //Word document file stream
        Stream stream = new MemoryStream(data);
        //To observe the memory go down, null out the reference of data variable.
        data = null;
        Syncfusion.DocIO.DLS.WordDocument doc = new Syncfusion.DocIO.DLS.WordDocument(stream, Syncfusion.DocIO.FormatType.Docx);
        //Instantiation of DocIORenderer for Word to PDF conversion
        DocIORenderer render = new DocIORenderer();
        //Converts Word document into PDF document
        Syncfusion.Pdf.PdfDocument pdfDocument = render.ConvertToPDF(doc);
        using (var fileStream = new FileStream(@"wwwroot/data/GettingStarted.pdf", FileMode.OpenOrCreate, FileAccess.ReadWrite))
        {
            //Saves the PDF file
            pdfDocument.Save(fileStream);
            pdfDocument.Close();
            fileStream.Close();
            stream.Close();
        }
    }
}

Get the complete working sample in this link.