我已经搜索了几个小时,但我找不到任何关于此的信息...基本上我想为 word 2007 创建一个模板或插件,以允许某人为 CMS 创建新页面。我想到的是类似于博客文章模板的东西。我知道如何创建基本模板,但我找不到使用 Word 中的发布按钮发布创建的文档的方法。
提前谢谢
我已经搜索了几个小时,但我找不到任何关于此的信息...基本上我想为 word 2007 创建一个模板或插件,以允许某人为 CMS 创建新页面。我想到的是类似于博客文章模板的东西。我知道如何创建基本模板,但我找不到使用 Word 中的发布按钮发布创建的文档的方法。
提前谢谢
我了解您要达到的目标,但Word 是错误的起点。我将从一个更基本的文本编辑器开始。
词很可怕,很可怕,很可怕。您的网站将定义清晰的样式,但 Word 会输出与您网站的 CSS 定义不匹配的讨厌的 HTML。
因此,最好的办法是将 Word 文件拖放到站点中,并让代码以编程方式对其进行分析并将其转换为站点有效的 HTML。在 Java 中,您可以使用 Apache POI,但这仍然很原始。在以微软为中心的世界中可能会容易得多。
在我看来,更好的是强迫人们学习 Markdown、BBCode 或 HTML,或者在你的 CMS 中使用 Styled HTML Editor - 剪切并粘贴纯文本,然后使用 CMS 定义的样式设置样式。
当您使用 Word 2007 时,您可以将文档导出为 XML,然后使用 XSLT 生成 HTML。
如果您的 CMS 具有 API 或导入工具,您可以将 Word 的输出转换为适合该接口。
您可以编写一个 Word 宏来向 Word 添加一个发布按钮/菜单选项,以生成正确的输出。
这不是一个坏主意,因为这完全是关于最终用户的。如果 Word 生成错误的 HTML,您应该在将其发布到 CMS 之前使其语义正确。
我从来没有这样做过,但我确信可以通过“Word 2007 Addin”模板(假设 Office 2007)使用 .NET。
祝你好运!
您是否考虑过使用免费提供的 Javascript 所见即所得编辑器之一,例如 TinyMCE http://tinymce.moxiecode.com/?当配置了所有选项时,它具有令人印象深刻的功能,并且界面与 Word 非常相似。我意识到这并不能直接回答您的问题,但正如其他人指出的那样,从 Word 开始会很困难。
也许对您有所帮助,umbraco CMS允许使用 Microsoft Word 进行编辑。
如果您使用 SharePoint 2007 作为您的 CMS,您可以做任何您想做的事情。您可以在 SharePoint 2007 上设置博客并从 Word 发布到博客。如果您在客户端使用 Office 2007,那么您将获得一些不错的按钮,例如“发布到我的博客”等。
如果您不能使用 SharePoint 或谈论现有的 CMS,那么您需要克服很多障碍。这是一项重大任务,您无法从 Stack Overflow 中得到简单的答案。
我一直在为自定义 CMS 系统编写 Word 插件的团队中工作。它是用 VB6 编写的,能够获取 Word 文档并将基本格式信息(列表、粗体、斜体甚至表格)转换为 HTML,然后上传到服务器。不过,它并没有在插件中创建新页面或管理站点。
根据我的经验,我绝对会避免选择 Word 作为 CMS 的编辑器。最大的问题是每次您想要更新插件时,您必须将其重新分发给使用它的公司或公司。您可以将其作为 IE 的 active-x 控件来执行,但通过 Javascript 编辑器使用户无法使用一组有限的样式选项要容易得多。
Word 确实有一个强大的 API 来处理您的内容,但是我们需要禁用 Word 中的许多选项以避免不需要的字体等等,它最终更像是 Wordpad 而不是 Word。
如果它是一个新建项目并且您有时间,我实际上会推荐使用 Silverlight 4.0 而不是 Javascript 编辑器。4.0 版内置了丰富的文本框控件,此外还有出色的 Vectorlight 控件。
出于某种原因,这是 Excel 喜欢但 Word 不喜欢的功能。Excel 可以在您保存文档时自动发布文档的 HTML 文件版本。
不幸的是,Word 似乎只能在使用 Sharepoint 时才能实现此功能,这很可惜,因为它可能非常有用。
除了创建自己的加载项之外,您可以做的就是在模板中添加一些代码,以便在用户保存文档时创建文档的 HTML 副本。
.dotm
文件)。project
列表中双击您的文档以打开其代码隐藏文件。向其中添加以下代码,将ActiveDocument.SaveAs
路径修改为更适合您的内容,例如 CMS 公开的共享网络文件夹。
Sub FileSave()
' First Save the main document
ActiveDocument.Save
' Now we create a new document based on the current one
Selection.WholeStory
Selection.Copy
Documents.Add
Selection.PasteAndFormat wdPasteDefault
' Save it as HTML and close it
ActiveDocument.SaveAs "c:\temp\mydoc.html", fileformat:=wdFormatHTML
ActiveDocument.Close
End Sub
这会将原始文件复制到一个空白的新文件中,该文件将保存为 HTML 并在返回原始文件之前关闭。
Documents.Add
如果您想使用与该模板不同的模板,您可以检查其中的一些选项normal
。
安全
由于此模板包含宏,因此您必须将它与 Word 期望的其他模板一起安装。
否则,您将收到安全警告。
为避免获取它,您可以将模板所在的路径添加到Word 的“选项”>“信任中心”>“信任中心设置”>“受信任位置”下的“受信任位置”列表中。