Ckeditor / WYSIWYG 从 pdf 复制并保留 style/images?

Ckeditor / WYSIWYG copy from pdf and retain style/images?

我搜索了很多,但找不到答案。

我想保留从 pdfWYSIWYG editor(Ckeditor) 的复制文本。 从 Word 文件复制时我可以保留样式,但从 PDF.

复制时它的工作方式不同

pdf是这样的(我不能post图片因为声誉是< 10,请参考链接):

PDF 文本

复制粘贴后显示如下输出:

在所见即所得编辑器中复制粘贴后

请推荐用于 PDF 到 RTF 转换的插件或代码片段。

谢谢

CKEditor 只能粘贴从浏览器获取的数据。这意味着如果浏览器不提供更多数据,那么纯文本 CKEditor 将无能为力。

从 4.5 版开始,CKEditor 提供外观来处理剪贴板 API 并获取直接粘贴到 paste 事件中的所有数据。每个浏览器提供不同的数据,您可以轻松查看它们:

editor.on( 'paste', function( evt ) {
  var types = evt.data.dataTransfer.$.types;

  console.log( types );

  for ( var i = 0; i < types.length; i++ ) {
    console.log( evt.data.dataTransfer.getData( types[ i ] ) );
  }

  // Additionally you can get information about pasted files.
  console.log( evt.data.dataTransfer.getFilesCount() );
} );

请注意,Internet Explorer 不提供 types 数组,仅支持 TextURL 类型。

要了解有关剪贴板集成的更多信息,请参阅 this guide。特别是 "Handling Various Data Types with Clipboard API" 章节描述了如何将数据转换器与粘贴事件集成,因此如果 PDF 数据在任何浏览器中都可用,您可以在粘贴过程中使用它们。

如果这在您的系统中很常见,那么恕我直言,您能做的最好的事情就是允许用户上传 PDF 文件,运行 服务器端软件将 PDF 转换为 HTML,然后自动将其插入到 CKEditor 中。

我没有关于使用哪个应用程序的建议。

问题在于 PDF 文件的工作方式与其他文本文档不同,因此即使您尝试将其内容粘贴到本机文字处理器中,您也不会获得相同的格式。

这将根据您的 PDF reader 而有所不同,但通常不会粘贴图像、将表格转换为纯文本行等...

如果这种情况发生在对剪贴板具有完全访问权限的本机程序中,那么在依赖于浏览器提供的数据的 javascript 应用程序中,您不能期望有更好的东西,甚至在那之后您必须小心使用 CKEditor,因为默认情况下它包含过滤器以删除它无法识别的任何格式,因此在最后一点可能会丢失更多信息。