Import from Word vs paste from Office comparison
In addition to import from Word, there is a simpler paste from Office plugin that lets you paste content from Microsoft Word while maintaining its original structure and formatting. However, these two solutions differ in many ways.
# Paste from Office
The paste from Office and paste from Office enhanced features allow you to paste content from Microsoft Word into your CKEditor 5 WYSIWYG editor and maintain the original structure and formatting. After creating a document in Microsoft Word you can copy it to CKEditor 5 and retain basic text styling, heading levels, links, lists, tables, and images – as long as these features are supported by the editor itself.
- Suitable for small documents and for use cases in which only parts of the document are selected and copied.
- Relies on OS Clipboard HTML, which limits the number of supported features.
- Preserves the original DOCX formatting that was selected and copied by hand.
- Simple, intuitive, but cannot be used to automate the migration process of many Word documents via the REST API.
This operation is fast and easy, but can only be done manually.
# Import from Word
The import from Word service can be automated and does not require the presence of the WYSIWYG editor, nor human supervision to convert files. Compared to paste from Office, import can work with any content formatting and is not limited by features supported by the editor.
- Allows for converting large documents into HTML that can be easily imported to CKEditor 5 and other tools.
- Operates directly on XML, which includes more information about the document and Word instance settings.
- Available as a CKEditor 5 plugin and as a REST API for a direct server-to-server conversion.
- Available both as a SaaS service and as an on-premises solution.
- Suitable for migration of the whole database of Word documents to HTML via a REST API service.
- Perfect solution for more advanced documents that need to be edited or displayed in the browser.
- Supports collaboration features like track changes and comments out of the box.
# Features comparison
The following tables compare the features of the paste from Office and paste from Office enhanced CKEditor 5 plugin and the import from Word feature. For a more detailed import from Word features overview, refer to the content formatting guide.
# Collaboration features
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Comments | ❌ | ❌ | ✅ |
Comments archive | ❌ | ❌ | ✅ |
Comments - images | ❌ | ❌ | ✅ |
Comments - table cells | ❌ | ❌ | ✅ |
Track changes - text insertion | ❌ | ❌ | ✅ |
Track changes - text deletion | ❌ | ❌ | ✅ |
Track changes - move text | ❌ | ❌ | ✅ |
Track changes - images | ❌ | ❌ | ✅ |
Track changes - tables | ❌ | ❌ | ⚠ |
Track changes - table text | ❌ | ❌ | ✅ |
Track changes - table rows | ❌ | ❌ | ⚠ |
Track changes - table cells | ❌ | ❌ | ⚠ |
Track changes - lists | ❌ | ❌ | ⚠ |
Track changes - list text | ❌ | ❌ | ✅ |
Track changes - list items | ❌ | ❌ | ⚠ |
Track changes - text formatting | ❌ | ❌ | ⚠ |
⚠ Import: Track changes for unsupported features will preserve the original content of the author’s suggestion. However, they will not be recognized as proper track changes suggestions. As an example, if a user adds a table using track changes, the table will be output in HTML, but it will not be marked as a suggestion. That limitation is going to be fixed soon, with upcoming import From Word releases.
# Inline formatting
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Font color | ✅ | ✅ | ✅ |
Font background | ✅ | ✅ | ✅ |
Font size | ✅ | ✅ | ✅ |
Font family | ✅ | ✅ | ✅ |
Bold | ✅ | ✅ | ✅ |
Italics | ✅ | ✅ | ✅ |
Underline | ✅ | ✅ | ✅ |
Underline custom | ❌ | ⚠️ | ✅ |
Strike-through | ✅ | ✅ | ✅ |
Subscript | ✅ | ✅ | ✅ |
Superscript | ✅ | ✅ | ✅ |
Link | ✅ | ✅ | ✅ |
Soft line break | ✅ | ✅ | ✅ |
Small caps | ❌ | ✅ | ✅ |
All caps | ❌ | ✅ | ✅ |
Letter spacing | ⚠️ | ✅ | ✅ |
Font stretching | ❌ | ✅ | ✅ |
Hidden text | ⚠️ | ⚠️ | ✅ |
- ⚠️ Paste: Letter spacing and hidden text are only supported with the General HTML support feature enabled.
- ⚠️ Paste enhanced: Advanced underline is pasted as regular underline.
- ⚠️ Paste enhanced: Hidden text is only supported with the General HTML support feature enabled.
# Paragraphs
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Text alignment | ✅ | ✅ | ✅ |
Indentation | ✅ | ✅ | ✅ |
First line indentation | ⚠️ | ⚠️ | ✅ |
Hanging indentation | ⚠️ | ⚠️ | ✅ |
Line height | ⚠️ | ⚠️ | ✅ |
Paragraph spacing | ⚠️ | ⚠️ | ✅ |
Paragraph borders | ⚠️ | ⚠️ | ✅ |
Background color | ⚠️ | ⚠️ | ✅ |
- ⚠️ First line indentation, hanging indentation, line height, paragraph spacing, and paragraph borders are only supported with the General HTML support feature enabled.
# Headings
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Built-in heading styles | ✅ | ✅ | ✅ |
Preservation of heading formatting | ❌ | ✅ | ✅ |
Custom outline level | ❌ | ✅ | ✅ |
# Lists
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Ordered lists | ✅ | ✅ | ✅ |
Unordered lists | ✅ | ✅ | ✅ |
Custom list markers | ❌ | ️❌ | ❌ |
Ordered list language-specific markers | ❌ | ❌ | ✅ |
Custom start number | ✅ | ✅ | ✅ |
Different start number in the middle | ❌ | ❌ | ✅ |
Multi-level list | ❌ | ❌ | ⚠️ |
- ⚠️ Import: Support for multi-level lists with X level of tabulation shifting is now available. Please be aware that marker continuation from previous levels (for example, 2.1, 2.2) is not supported for now.
# Tables
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Table width | ✅ | ✅ | ✅ |
Cell/column width | ✅ | ✅ | ✅ |
Cell/row height | ✅ | ✅ | ✅ |
Cell merging | ✅ | ✅ | ✅ |
Cell padding | ✅ | ✅ | ✅ |
Cell spacing | ✅ | ✅ | ✅ |
Cell’s horizontal alignment | ✅ | ✅ | ✅ |
Cell’s vertical alignment | ✅ | ✅ | ✅ |
Table background color | ✅ | ✅ | ✅ |
Cell background color | ✅ | ✅ | ✅ |
Table border style | ✅ | ✅ | ✅ |
Table border color | ✅ | ✅ | ✅ |
Cell border style | ✅ | ✅ | ✅ |
Cell border color | ✅ | ✅ | ✅ |
Table header | ✅ | ✅ | ✅ |
Nested tables | ✅ | ✅ | ✅ |
Table alignment/floating | ✅ | ✅ | ✅ |
Table caption | ⚠️ | ⚠️ | ⚠️ |
- ⚠️ Table caption is converted to a styled (only import) paragraph.
# Images
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Embedded images | ✅ | ✅ | ✅ |
External images | ✅ | ✅ | ✅ |
Image link | ✅ | ✅ | ✅ |
Image alternative text | ✅ | ✅ | ✅ |
Image height | ✅ | ✅ | ✅ |
Image width | ✅ | ✅ | ✅ |
Image alignment | ✅ | ✅ | ✅ |
Absolutely positioned images | ⚠️ | ⚠️ | ⚠️ |
Image caption | ⚠️ | ⚠️ | ⚠️ |
- ⚠️ Absolutely positioned images are retained, but their original position is lost.
- ⚠️ Image caption is converted to a styled (import only) paragraph.
# Page breaks
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Normal page break | ✅ | ✅ | ✅ |
Page break before style | ❌ | ❌ | ✅ |
# Horizontal lines
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Horizontal line | ✅ | ✅ | ✅ |
# Word styles
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Built-in styles | ❌ | ⚠️ | ✅ |
Format styles | ❌ | ⚠️ | ✅ |
Font styles | ❌ | ⚠️ | ✅ |
Paragraph styles | ❌ | ⚠️ | ✅ |
Border styles | ❌ | ⚠️ | ✅ |
Numbering styles | ✅ | ✅ | ✅ |
- ⚠️ Paste enhanced: Styles are only supported with the General HTML support feature enabled.
# Default styles
Default styles require enabling the config.default_styles
configuration option, both for the CKEditor 5 import from Word plugin and the REST API.
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Format styles | ⚠️ | ✅ | ✅ |
Font styles | ⚠️ | ✅ | ✅ |
Paragraph styles | ⚠️ | ✅ | ✅ |
- ⚠️ Paste: Default document styles are partially supported, but cannot be disabled or enabled on purpose.
# Sections
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Document margins | ❌ | ✅ | ✅ |
Document size | ❌ | ✅ | ✅ |
Multi-sectioned document | ❌ | ❌ | ❌ |
Section columns | ❌ | ❌ | ❌ |
Headers and footers | ❌ | ❌ | ❌ |
- ⚠️ Import: Multi-sectioned document and section columns are currently not supported.
# Complex objects
Feature name | Paste | Enhanced | Import |
---|---|---|---|
Table of contents | ⚠️ | ✅ | ✅ |
Form objects | ⚠️ | ⚠️ | ⚠️ |
- ⚠️ Paste: Only the table of contents text is preserved, but the structure and styling are lost.
- ⚠️ Form objects: Only text and styling are retained.
# Technical details
To better understand the differences between these two products, it is worth learning how both features work on a technical level. In paste from Office, the editor uses the operating system’s clipboard, which is fed with Microsoft Word content in HTML upon copying it from the document. That HTML is delivered by the Word application itself and includes the essential formatting of the document. When the user pastes something from a Word document, CKEditor 5 cleans that HTML up and makes it semantically correct, so it can be consumed by the editor. However, that operation has its limitations, as CKEditor 5 is only able to understand as much content as it gets from the clipboard and depends entirely on the clipboard implementation of the Microsoft Word application.
The import from Word feature does not have this limitation. As it has direct access to the document, it can retrieve as much information from the document as Word. Therefore, it is possible to support things like collaboration features, document settings, and others, which would not be available when operating on clipboard content only. We are no longer limited by the Microsoft Word application and thanks to that, import from Word produces a more advanced HTML than Paste from Word.
# List of CSS properties that require GHS
This is a list of all CSS properties that are properly converted by the import from Word feature, but will not work by default in CKEditor 5 and require the General HTML Support (GHS) feature.
# Paragraphs
# HTML elements:
p
# CSS properties:
background-color
line-height
border-top
border-bottom
border-left
border-right
margin-top
margin-bottom
text-indent
# Headings
# HTML elements
h1
h2
h3
h4
h5
h6
# CSS properties:
font-weight
font-size
Headings also require all CSS properties that paragraphs do.
# Lists
# HTML elements:
ul
ol
# CSS properties:
list-style-type
margin-top
margin-bottom
# List items
# HTML elements:
li
# CSS properties:
list-style-type
# Spans
# HTML elements:
span
# CSS properties:
letter-spacing
text-transform
font-variant-caps
font-stretch
# Underlines
# HTML elements:
u
# CSS properties:
text-decoration-line
text-decoration-style
text-decoration-thickness
text-decoration-color
text-decoration-skip-ink
# Images
# HTML elements:
img
# CSS properties:
position
display
float
margin-top
margin-left
margin-right
transform
z-index
# Figures
# HTML elements:
figure
# CSS properties:
margin-top
margin-bottom
margin-left
margin-right
# Tables
# HTML elements:
table
# CSS properties:
border-collapse
border-spacing
# Table cells
# HTML elements:
td
th
# CSS properties:
vertical-align
# Table header cells
# HTML elements:
th
# CSS properties:
font-weight
text-align
Every day, we work hard to keep our documentation complete. Have you spotted outdated information? Is something missing? Please report it via our issue tracker.
With the release of version 42.0.0, we have rewritten much of our documentation to reflect the new import paths and features. We appreciate your feedback to help us ensure its accuracy and completeness.