Contribute to this guideReport an issue

Pasting content from Google Docs Documentation

The Paste from Google Docs feature is provided through the Paste from Google Docs plugin. It was introduced in CKEditor 4.13 and by default is available in the Standard and Full distributions.

This feature allows you to paste content from Google Docs and maintain original structure and formatting. After creating a Google Docs document you can simply copy it to CKEditor and retain images, font styles, heading levels, nested lists, complex tables and other advanced features.

When the plugin is enabled, it automatically detects Google Docs content and transforms its structure and formatting to clean, semantic HTML.

To test how Paste from Google Docs works, open the sample Google Docs document, copy the content, and paste it into CKEditor. You can also check the clean HTML source code generated by CKEditor using the Source button.

Pasted content may be filtered by additional Advanced Content Filter rules. The content appearance in CKEditor also depends on styling used in contents.css files.

Related Features

Sample Google Docs Document

Get Sample Source Code

  • Paste from Google Docs
                    <!doctype html>
    <html lang="en">
      <meta charset="utf-8">
      <meta name="robots" content="noindex, nofollow">
      <title>Paste from Google Docs</title>
      <script src=""></script>
      <style type="text/css">
        /* Minimal styling to center the editor in this sample */
        .container {
          padding: 30px;
          display: flex;
          align-items: center;
          text-align: center;
        .inner-container {
          margin: 0 auto;
      <div class="container" data-sample-short>&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href=&quot;;&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</div>
      <textarea cols="80" id="editor1" name="editor1" rows="10" data-sample-short>&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href=&quot;;&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
        CKEDITOR.replace('editor1', {
          // Define the toolbar:
          // The full preset from CDN which we used as a base provides more features than we need.
          // Also by default it comes with a 3-line toolbar. Here we put all buttons in a single row.
          toolbar: [{
              name: 'clipboard',
              items: ['Paste', '-', 'Undo', 'Redo']
              name: 'basicstyles',
              items: ['Bold', 'Italic', 'Underline', 'Strike', 'RemoveFormat', 'Subscript', 'Superscript']
              name: 'links',
              items: ['Link', 'Unlink']
              name: 'paragraph',
              items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote']
              name: 'insert',
              items: ['Image', 'Table']
              name: 'editing',
              items: ['Scayt']
              name: 'styles',
              items: ['Format', 'Font', 'FontSize']
              name: 'colors',
              items: ['TextColor', 'BGColor', 'CopyFormatting']
              name: 'align',
              items: ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock']
              name: 'document',
              items: ['Print', 'Source']
          // Enabling extra plugins, available in the full-all preset:
          extraPlugins: 'colorbutton,font,justify,print,tableresize,liststyle',
          removeButtons: '',
          // An array of stylesheets to style the WYSIWYG area.
          // Note: it is recommended to keep your own styles in a separate file in order to make future updates painless.
          contentsCss: [
          // This is optional, but will let us define multiple different styles for multiple editors using the same CSS file.
          bodyClass: 'document-editor',
          // Make the editing area bigger than default.
          height: 1000,
          width: 940