How to Optimize SFDT Files in Blazor DOCX Editor
28 Aug 20262 minutes to read
Starting from version v21.1.x, the SFDT file generated in Blazor DOCX Editor (Document Editor) component is optimized by default to reduce the file size. All static keys are minified, and the final JSON string is compressed. This helps reduce the SFDT file size relative to a DOCX file and provides the following benefits:
- Faster file transfer between client and server through the internet.
- The new optimized SFDT files require less storage space than the old SFDT files.
Hence, the optimized SFDT file can’t be directly manipulated as a JSON string.
This feature comes with a public API to switch between the old and new optimized SFDT format, allowing backward compatibility.
For backward compatibility, to create older-format SFDT files, refer to the following code changes:
| Client/Server |
Old Code |
New Code from v21.1.x |
| Client-side |
<SfDocumentEditorContainer @ref="container" Height="590px"></SfDocumentEditorContainer>
|
<SfDocumentEditorContainer @ref="container" Height="590px" DocumentEditorSettings="settings">
</SfDocumentEditorContainer>
@code {
SfDocumentEditorContainer container;
DocumentEditorSettingsModel settings = new DocumentEditorSettingsModel() { OptimizeSfdt = false };
}
|
| Server-side C# |
WordDocument sfdtDocument = WordDocument.Load(stream, formatType);
string sfdt = JsonSerializer.Serialize(sfdtDocument);
|
WordDocument sfdtDocument = WordDocument.Load(stream, formatType);
sfdtDocument.OptimizeSfdt = false;
string sfdt = JsonSerializer.Serialize(sfdtDocument);
|
To convert a new optimized SFDT file to the older SFDT format, refer to the following code example:
| Client/Server |
Code example |
| Client-side |
<SfDocumentEditorContainer @ref="container" Height="590px" DocumentEditorSettings="settings">
</SfDocumentEditorContainer>
@code {
SfDocumentEditorContainer container;
DocumentEditorSettingsModel settings = new DocumentEditorSettingsModel() { OptimizeSfdt = false };
}
|
| Server-side C# |
using(Syncfusion.DocIO.DLS.WordDocument docIODocument = WordDocument.Save(optimizedSfdt)) {
sfdtDocument = WordDocument.Load(docIODocument);
sfdtDocument.OptimizeSfdt = false;
string oldSfdt = JsonSerializer.Serialize(sfdtDocument);
}
|