Ckeditor / WYSIWYG 从 pdf 复制并保留 style/images?
Ckeditor / WYSIWYG copy from pdf and retain style/images?
我搜索了很多,但找不到答案。
我想保留从 pdf
到 WYSIWYG 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
数组,仅支持 Text
和 URL
类型。
要了解有关剪贴板集成的更多信息,请参阅 this guide。特别是 "Handling Various Data Types with Clipboard API" 章节描述了如何将数据转换器与粘贴事件集成,因此如果 PDF 数据在任何浏览器中都可用,您可以在粘贴过程中使用它们。
如果这在您的系统中很常见,那么恕我直言,您能做的最好的事情就是允许用户上传 PDF 文件,运行 服务器端软件将 PDF 转换为 HTML,然后自动将其插入到 CKEditor 中。
我没有关于使用哪个应用程序的建议。
问题在于 PDF 文件的工作方式与其他文本文档不同,因此即使您尝试将其内容粘贴到本机文字处理器中,您也不会获得相同的格式。
这将根据您的 PDF reader 而有所不同,但通常不会粘贴图像、将表格转换为纯文本行等...
如果这种情况发生在对剪贴板具有完全访问权限的本机程序中,那么在依赖于浏览器提供的数据的 javascript 应用程序中,您不能期望有更好的东西,甚至在那之后您必须小心使用 CKEditor,因为默认情况下它包含过滤器以删除它无法识别的任何格式,因此在最后一点可能会丢失更多信息。
我搜索了很多,但找不到答案。
我想保留从 pdf
到 WYSIWYG 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
数组,仅支持 Text
和 URL
类型。
要了解有关剪贴板集成的更多信息,请参阅 this guide。特别是 "Handling Various Data Types with Clipboard API" 章节描述了如何将数据转换器与粘贴事件集成,因此如果 PDF 数据在任何浏览器中都可用,您可以在粘贴过程中使用它们。
如果这在您的系统中很常见,那么恕我直言,您能做的最好的事情就是允许用户上传 PDF 文件,运行 服务器端软件将 PDF 转换为 HTML,然后自动将其插入到 CKEditor 中。
我没有关于使用哪个应用程序的建议。
问题在于 PDF 文件的工作方式与其他文本文档不同,因此即使您尝试将其内容粘贴到本机文字处理器中,您也不会获得相同的格式。
这将根据您的 PDF reader 而有所不同,但通常不会粘贴图像、将表格转换为纯文本行等...
如果这种情况发生在对剪贴板具有完全访问权限的本机程序中,那么在依赖于浏览器提供的数据的 javascript 应用程序中,您不能期望有更好的东西,甚至在那之后您必须小心使用 CKEditor,因为默认情况下它包含过滤器以删除它无法识别的任何格式,因此在最后一点可能会丢失更多信息。