Ckeditor / WYSIWYG从pdf复制并保留样式/图像?

时间:2015-08-05 07:11:54

标签: html pdf ckeditor wysiwyg

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

我希望保留从WYSIWYG editorPDF(Ckeditor)的复制文本。 我可以在从Word文件复制时保留样式,但从pdf复制时它的工作方式不同。

原始< 10是这样的(我无法发布图片,因为信誉为echo str_replace('$1',$1,$string); ,请参阅链接):

PDF文字 enter image description here

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

在WYSIWYG编辑器中复制粘贴 enter image description here

请建议PDF到RTF转换的插件或代码段。

由于

3 个答案:

答案 0 :(得分:6)

CKEditor只能粘贴从浏览器获取的数据。这意味着如果浏览器不提供更多数据,那么纯文本就没有CKEditor可以做的。

从版本4.5开始,CKEditor提供了Facade来处理Clipboard 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。特别是&#34;使用剪贴板API处理各种数据类型&#34;这一章描述了如何将数据转换器与粘贴事件集成,因此如果PDF数据在任何浏览器中都可用,您可以在粘贴期间使用它们。

答案 1 :(得分:3)

如果这是您系统中的常见情况,那么您最好的办法就是允许用户上传PDF文件,运行服务器端软件将PDF转换为HTML,然后自动将其插入CKEditor。

我没有建议使用哪种应用程序。

答案 2 :(得分:1)

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

这取决于您的PDF阅读器,但通常不粘贴图像,将表格转换为纯文本行等等......

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