django - TinyMCE、Django 和 python-docx
问题描述
我正在考虑rich text editor
在我的 Django 项目中使用 a 。TinyMCE 看起来是显而易见的解决方案,但我看到输出格式是 html(此处)。目标是存储用户输入,然后使用python-docx
(不是 html)在 word 文档中提供它。
你知道有什么解决方案吗?要么是tinyMCE的功能,要么是 ah tml 到保持样式的文字格式转换器,或者可能是另一个类似于 tinymce的富文本编辑器?
更新:
这是我发现工作正常的另一个选项。仍然在尝试将 HTML 转换为 Word 而不会丢失样式。对此的解决方案可能如此处pywin32
所述,但对我没有太大帮助+它仅适用于Windows。
更新2
经过一番挖掘后,我发现pandoc和pypandoc似乎可以翻译成以下任何一种输出格式:
"asciidoc, beamer, commonmark, context, docbook, docbook4, docbook5, docx, dokuwiki, dzslides, epub, epub2, epub3, fb2, gfm, haddock, html, html4, html5, icml, jats, json, latex, man, markdown, markdown_github, markdown_mmd, markdown_phpextra, markdown_strict, mediawiki, ms, muse, native, odt, opendocument, opml, org, plain, pptx, revealjs, rst, rtf, s5, slideous, slidy, tei, texinfo, textile, zimwiki"
我还没有想出如何将这样的输入集成到 python-docx 中。
解决方案
我也有同样的挑战。您将需要使用 Python 的 Beautiful Soup 库来遍历 HTML 编辑器中的内容(我使用 Summernote,但任何 HTML 编辑器都应该可以工作),然后将 HTML 标记解析为可用于 python-docx 的格式。Pandoc 和 Pypandoc 将为您转换文件(例如,您从 LateX 文件开始并需要将其转换为 Word),但不会提供需要与 xml/html 相互转换的工具。
祝你好运!
推荐阅读
- python - Python Spark - 阈值后删除数据 - Pyspark
- php - Divi 中的错误与 php.ini
- c++ - 使用 -(archives -) gcc 命令
- azure-logic-apps - 是逻辑应用发送电子邮件活动还是任何其他支持动态帐户登录?
- c# - 为什么这个 System.IO.Pipelines 代码比基于 Stream 的代码慢得多?
- matlab - 在 Simulink Real-Time 的 M 文件 S-Function 中使用 C-Mex 函数
- python - SyntaxError:python中标识符错误中的无效字符
- arrays - Perl:index() 不适用于像 $array[$i] 这样的变量
- python - 为什么 tkinter 应用程序没有定位在 (0, 0)?
- google-cloud-platform - 更改 - 谷歌云存储,转移服务 - 更改对象所有权