如何在不使用屏幕截图的情况下在Open Office组织演示文稿中嵌入源代码或HTML?

时间:2011-03-31 19:51:35

标签: syntax-highlighting openoffice.org libreoffice presentation

我需要在编程课上写很多课程演示文稿,我经常需要显示源代码(主要是 C 码)。

enter image description here

我找不到一个简单的方法:

  1. 从我的编辑器(kate)和
  2. 复制我的源代码
  3. 将其格式化并将源突出显示粘贴到 Open Office Presentation (OOP)。
  4. 如果代码很小,我用来做快照,或者如果数据库太大则停止演示并打开Kate。

    在此other question中,有人建议嵌入 HTML 代码。所以我安装了 QSource-Highlight ,轻松将C代码转换为HTML (还有gnu source-highlight,code2html等)。他们都不能将源代码转换为突出显示的 RTF (富文本格式)的版本,这将是另一种方式。

    使用HTML无济于事,因为我找不到一种简单的方法来将HTML插入演示文稿。这个网站显示了一个非常特殊的窗口solution。它需要使用特定的Windows程序将c代码转换为HTML,该程序可以选择将HTML复制为RTF,之后您需要通过Word或Wordpad中的RTF,之后您将特殊的RTF转换为PowerPoint。一切都很好,但我是 linux 用户,我认为可能有更好的方法。

    此外,还有另一种可能的解决方案,即向openoffice安装 coooder 扩展。我不知道为什么,但尝试在我的系统中安装此扩展程序会给我一个错误。 Synaptic告诉我,openoffice.org-core和许多其他应该被标记。我点击下一步,它告诉我它要删除所有的包,并且该coooder需要这个包才能工作,所以它不会被安装。嗯......

    我正在使用Linux UBUNTU 10.04和Open Office 3.2

    谢谢! BECO。

    PS .: meta-so中对此问题进行了辩论,尽可能重复上述问题。但我的理解是,较旧的问题无法解决这个具体的问题。

    PPS。:关于coooder bug,我发布了一个错误报告here


    编辑(2015-08-19)

    要向演示文稿LibreOffice插入RTF文本,您可以使用菜单insertfilertf(或HTML)。

9 个答案:

答案 0 :(得分:33)

有人说从Eclipse编辑器复制代码效果很好(更新:证实 FALSE )。另一种方法是从Highlight导出到RTF(也可以导出行号)或剪贴板,然后在OpenOffice.org中打开/粘贴它。 (更新:证明 TRUE

这是一个精彩的GUI屏幕截图: Highlight GUI (KDE)

您也可以从OpenOffice.org切换到LibreOffice,并从here获取COOoder。

答案 1 :(得分:29)

answer非常适合这项工作:

答案 2 :(得分:4)

我有完全相同的问题,但使用PHP代码而不是C.我几乎解决方案是将代码复制为Kate中的HTML并将其粘贴到临时的Open Office Writer文档中。这会将其转换为Open Office自己的样式文本格式,然后您可以将其复制并粘贴到Impress中。除了稍微讨厌的双步复制和粘贴之外,这大多数工作正常除了以外,完全以粗体显示的线条会失去它们的支持,我必须手动修复它们。还可能出现一些其他奇怪的错误 - Impress从OOWriter导入样式文本似乎有点儿错误。

答案 3 :(得分:4)

更新:我已将此宏发布为LibreOffice扩展程序。您可以从官方网站安装它:Code Highlighter

我遇到了同样的问题但是对于Java而言我终于找到了一个使用Python宏的原生解决方案,该解决方案在LibreOffice 5中进行了测试。

安装

第1步:安装libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

第2步:为Python 3安装pygments:

sudo pip3 install python3-pygments

第3步:下载Highlight.py

第4步:将Highlight.py复制到 / usr / lib / libreoffice / share / Scripts / python /

sudo cp Highlight.py /usr/lib/libreoffice/share/Scripts/python/

步骤5:设置脚本的只读权限。

sudo chmod 0444 /usr/lib/libreoffice/share/Scripts/python/Highlight.py

第6步:打开LibreOffice Writer并转到工具 - >自定义 - >键盘

  • 选择LibreOffice选项按钮(左上角可用)
  • 选择任何所需的快捷方式
  • 在功能类别下选择 share / Highlight / Highlight_source_code
  • 单击“修改”按钮以设置快捷方式

用法

LibreOffice Impress

  • 打开LibreOffice Impress。
  • 插入文本框(插入 - >文本框)。
  • 将任何代码段复制并粘贴到该文本框中。
  • 创建新样式(右键单击现有样式 - >新...)
  • 将样式命名为code-<language>
  • 将样式应用于您的代码段文本框。
  • 选择文本框。
  • 使用快捷键执行宏。

LibreOffice Writer / Calc

  • 打开LibreOffice Writer / Calc。
  • 插入文本框(插入 - &gt;文本框)。
  • 将任何代码段复制并粘贴到该文本框中。
  • 右键单击文本框,然后选择&#39;描述&#39;。
  • 按以下格式添加说明:code-<language>
  • 选择文本框
  • 使用快捷键执行宏。

<强>更新

我已为此扩展程序添加了自定义样式支持。使用code-<language>作为默认样式,使用code-<language>-<style>作为自定义样式。可用的样式列在我的Git Hub页面中。

例如Code-Java-Emacs将使用Emacs样式着色Java代码。

有关详细信息,请访问Git Hub链接:libreoffice-code-highlighter

答案 4 :(得分:4)

您可以轻松完成此操作

  • 从您最喜欢的编辑器中复制文本
  • 去留下深刻印象,创建一个新的文本字段
  • CTRL + SHIFT + V (或编辑→粘贴内容
  • 然后选择 RTF格式(RTF)

我已经使用Ubuntu下的LibreOffice 4.2.8进行了测试。

答案 5 :(得分:2)

如果您 熟悉LaTeX,则应考虑使用beamer来创建演示文稿。 wikipedia page指向许多教程和文档。 user guide可能是我发现的最好的一个。

这可以为您提供LaTeX的所有功能,包括源代码片段(列表包或您喜欢的任何其他内容)以及您习惯使用的LaTeX的其他常用功能。它捆绑了一些非常好的主题。

答案 6 :(得分:1)

您可以轻松地使用包含1行和1列的表格,复制并通过您喜欢的IDE中的代码,开放式办公室将保留您的代码风格。

答案 7 :(得分:1)

直接从Eclipse粘贴到OpenOffice Impress似乎失去了色彩。 然而,首先粘贴到OO Writer并从那里进入OO Impress确实有效。

答案 8 :(得分:0)

我一直在Windows下使用源代码的开放式办公室这样做。在您喜欢的编辑器中查看代码(emacs,记事本,...),然后选择/复制感兴趣的文本。在开放式办公室中制作一个文本框,然后粘贴。这是有效的,因为所有Windows工具都共享一个全局剪切缓冲区。我没有足够使用Linux来知道它是否有这样的共享切割缓冲区,如果没有,我会理解你的问题。(如果确实如此,我真的不明白你的问题)。我的解决方案当然没有得到格式良好/突出显示的代码。

具体步骤: 在打开幻灯片的Open Office Impress(“演示文稿”)中,单击下方工具栏上标有“T”的框(或按F2)。然后在幻灯片上大致单击要放置文本的位置,然后拖动以使框大小合适。单击框,您可以输入文本。对于代码,我从一些编辑器窗口剪切,并在选择文本框后粘贴。如果单击文本框的轮廓,则可以更改字体(courier new适用于代码)和打印尺寸。

在右对齐文本后,您可以重新访问特定的子字符串,如果需要精美的文本,请选择/粗体或选择/颜色。

您可以考虑从JavaDoc或Doxygen输出中剪切和粘贴;您可能会获得格式化数据以及文本。