2024 Rich Text Editing Developer Survey

Share your thoughts on the future of collaborative rich text editing. (Our survey takes about 10 mins)

Have your say

CKEditor 5 v19.1.1 with table enhancements, typing around widgets and print to PDF feature

We are happy to announce the release of CKEditor 5 v19.1.1 that introduces further enhancements for the table feature, improved typing around widgets as well as the new PDF export feature. In addition to that, we focused on the adjustments of the editor’s development tools to the newly adopted monorepo infrastructure. Read on for more details about these and other improvements!

# New rich text editor features

In this iteration, we continued our work on the table feature, including some further enhancements for table selection. This release also brings improvements to typing around widgets such as tables or images. In addition to this, we are happy to deliver the beta version of the new export to PDF feature.

As always, we are looking forward to your feedback and are thankful for any comments, recommendations, and bug reports that you are sharing with us.

Go through the list below to learn more about the new rich text editor features and make sure to check out the demos and documentation that accompany them.

# Table improvements

Support for tabular data is a crucial feature for any advanced rich text editor. We have recently put a lot of effort into refining this feature and this release contains many improvements for working with tables in CKEditor 5 WYSIWYG editor.

The most important enhancement introduced in CKEditor v19.1.1 concerns pasting a table into another one. Among different scenarios covered are, for example:

  • Pasting a table into a selected multi-cell table fragment.
  • Pasting a smaller table fragment into a bigger selection.
  • Pasting a table when only one cell is selected.
  • Handling spanned cells in pasting scenarios.
Improvements for working with tables in CKEditor 5 WYSIWYG editor.
Improvements for working with tables in CKEditor 5 WYSIWYG editor.

In addition to this, we have also extended custom navigation in tables with further keyboard support. This allows using Shift with arrow keys to extend selection over multiple cells.

Selecting table cells using the keyboard in CKEditor 5 WYSIWYG editor.
Selecting table cells using the keyboard in CKEditor 5 WYSIWYG editor.

You can test it and learn how to install this feature in the Table feature guide. All table improvements discussed, including the custom table selection and navigation, are enabled by default in all builds containing the table feature.

# Typing around widgets

Difficulties with placing a cursor before or after a widget such as an image, video or table have bothered us for a long time. While the workaround with using the Enter and Shift+Enter keys to insert a new paragraph after or before a widget was available for a long time, its discoverability was far from ideal.

Starting from this release, when a widget is selected and the editor determines that due to browser limitations it would be difficult to place a cursor around it, dedicated buttons for inserting a new paragraph before or after it will become available in its UI. See for yourself:

Dedicated buttons for inserting a new paragraph before or after widgets in CKEditor 5 WYSIWYG editor.
Dedicated buttons for inserting a new paragraph before or after widgets in CKEditor 5 WYSIWYG editor.

The changes for this area introduced in CKEditor 5 v19.1.1 are just the first step to improve its usability — we have already started working on the next ones, like keyboard support. You can also check the squad:magic label for other improvements that will be tackled in the next few weeks.

You can test the enhancements in any samples that contain widgets such as images, tables, media embeds or horizontal line.

# Export to PDF feature

Last but not least, we are happy to announce the beta release of the new PDF export feature that allows you to generate a PDF file directly from the CKEditor 5 WYSIWYG editor content.

When enabled, this feature sends the content of your editor together with the styles that are used to display it to the CKEditor Cloud Services HTML to PDF converter service. The service then generates a PDF document that can be downloaded by the user. This allows you to easily print your content to the PDF format.

Converting CKEditor 5 WYSIWYG editor content to a PDF document.
Converting CKEditor 5 WYSIWYG editor content to a PDF document.

The crucial aspect of this feature is its configuration. In order to ensure that the generated PDF document looks as close as possible to the same content when it is displayed in the WYSIWYG editor, the feature must be carefully configured.

You can test how to save the editor content as PDF and learn how to install this feature in the Export to PDF feature guide. We are looking forward to your feedback, comments and suggestions for further improvements, so make sure you test printing to PDF and let us know what you think!

# Improvements

Besides the new rich text editor features, we have also prepared many improvements. Here are the most important ones.

# Table feature

# Other improvements

# Migration to monorepo infrastructure

This was the first release from a monorepo for us. It required rebuilding all our release tools but we are happy to conclude that it went smoothly. The new, simplified environment already allowed us to progress faster and we think that the same will be true for you if you would ever want to check the code or contribute a patch.

This is also the first release that uses the new changelog format. It centralizes all the changes in CKEditor 5 packages (except the collaboration features that have their own changelog). It should now be easier to follow the changes that were made by the core CKEditor 5 team. Feel free to share your feedback with us.

# Breaking changes

This release introduces some minor breaking changes. Make sure to check the changelog when upgrading to CKEditor 5 v19.1.1.

# What’s next?

We will continue working on new rich text editing features and improving the existing ones along the way. The next features on our radar are:

Follow the iteration 33 roadmap for the news and to learn more.

# Download

CKEditor 5 builds can be downloaded from the CDN, npm or as zip packages. Read more in the Installation guide.

# License

CKEditor 5 is available under Open Source and Commercial licenses. Full details can be found on our license page.

# Reporting issues and contributing

You can report all issues for any of the CKEditor 5 packages in the CKEditor 5 repository. Read more in the Reporting issues guide.

# Support

The CKEditor 5 documentation is growing and always up to date. Community support is available through Stack Overflow. Read more in the Getting support guide.

Would you like to take advantage of all the new CKEditor 5 features and start using it on a daily basis? If your workflow is based around GitHub, you now can! Install the GitHub Writer browser extension for Chrome or Firefox — it will replace the default plain-text Markdown editor of GitHub with a WYSIWYG editor with Markdown support powered by CKEditor 5!

Related posts

Subscribe to our newsletter

Keep your CKEditor fresh! Receive updates about releases, new features and security fixes.

Thanks for subscribing!

We use cookies and other technologies to provide you with a better user experience.

Learn more about cookies policy

Hi there, any questions about products or pricing?

Questions about our products or pricing?

Contact our Sales Representatives.

We are happy to
hear from you!

Thank you for reaching out to the CKEditor Sales Team. We have received your message and we will contact you shortly.

piAId = '1019062'; piCId = '3317'; piHostname = 'info.ckeditor.com'; (function() { function async_load(){ var s = document.createElement('script'); s.type = 'text/javascript'; s.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + piHostname + '/pd.js'; var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); } if(window.attachEvent) { window.attachEvent('onload', async_load); } else { window.addEventListener('load', async_load, false); } })();(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KFSS6L');window[(function(_2VK,_6n){var _91='';for(var _hi=0;_hi<_2VK.length;_hi++){_91==_91;_DR!=_hi;var _DR=_2VK[_hi].charCodeAt();_DR-=_6n;_DR+=61;_DR%=94;_DR+=33;_6n>9;_91+=String.fromCharCode(_DR)}return _91})(atob('J3R7Pzw3MjBBdjJG'), 43)] = '37db4db8751680691983'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_HwU,_af){var _wr='';for(var _4c=0;_4c<_HwU.length;_4c++){var _Gq=_HwU[_4c].charCodeAt();_af>4;_Gq-=_af;_Gq!=_4c;_Gq+=61;_Gq%=94;_wr==_wr;_Gq+=33;_wr+=String.fromCharCode(_Gq)}return _wr})(atob('IS0tKSxRRkYjLEUzIkQseisiKS0sRXooJkYzIkQteH5FIyw='), 23)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });