首页 文章

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

提问于
浏览
51

我需要在我的编程课上写很多课程 presentations ,而且我经常需要显示 source code (主要是 C 代码) .

enter image description here

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

  • 从我的编辑器(凯特)复制我的 source code

  • 将其格式化并将源 highlighted 粘贴到 Open Office Presentation (OOP) .

我用来做的是 snapshot 如果代码很小,或者停止演示并在数据表中打开Kate,如果它太大的话 .

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

拥有HTML并没有找到一个简单的方法 insert HTML into a presentation . 这个网站显示了一个非常特殊的窗口solution . 它需要使用特定的Windows程序将c代码转换为HTML,该程序可以选择将HTML复制为RTF,之后您需要通过Word或Wordpad中的RTF,之后您将特殊的RTF转换为PowerPoint . 一切都很好,但我是 linux 用户,我认为可能有更好的方法 .

此外,还有另一种可能的解决方案,安装_2445211_扩展到openoffice . 我不认为openoffice.org-core和其他许多应该被标记出来 . 我点击下一步,它告诉我它要删除所有的包,并且该coooder需要这个包才能工作,所以它不会被安装 . 好...

我使用的是Linux UBUNTU 10.04和Open Office 3.2

谢谢!贝乔 .

PS . :这个问题在_2845213中有争议,可能与上述问题重复 . 但我的理解是,旧的问题并没有解决这个问题 .

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


编辑(2015-08-19)

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

9 回答

  • 29

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

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

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

  • 0

    这个answer非常适合这项工作:

  • 1

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

  • 1

    你可以轻松地做到这一点

    • 从您喜欢的编辑器中复制文本

    • 去打动,创建一个新的文本字段

    • 按CTRL SHIFT V(或编辑→粘贴内容)

    • 然后选择 Rich Text Format (RTF) .

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

  • 33

    Update: 我已将此宏发布为LibreOffice扩展 . 您可以从官方网站安装它:Code Highlighter


    我有同样的问题,但对于Java,最后我找到了一个使用Python宏的本机解决方案,在LibreOffice 5中进行了测试 .

    安装

    Step 1: 安装libreoffice-script-provider-python:

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

    Step 2: 为Python 3安装pygments:

    sudo pip3 install python3-pygments
    

    Step 3: 下载Highlight.py

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

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

    Step 5: 设置脚本的只读权限 .

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

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

    • 选择LibreOffice选项按钮(左上角可用)

    • 选择任何所需的快捷方式

    • 在功能类别下选择share / Highlight / Highlight_source_code

    • 单击“修改”按钮以设置快捷方式

    用法

    LibreOffice Impress

    • 打开LibreOffice Impress .

    • 插入文本框(插入 - >文本框) .

    • 将任何代码段复制并粘贴到该文本框中 .

    • 创建一个新样式(右键单击现有样式 - >新建...)

    • 将样式命名为 code-<language>

    • 将样式应用于代码段文本框 .

    • 选择文本框 .

    • 使用快捷键执行宏 .

    LibreOffice Writer / Calc

    • 打开LibreOffice Writer / Calc .

    • 插入文本框(插入 - >文本框) .

    • 将任何代码段复制并粘贴到该文本框中 .

    • 右键单击文本框并选择'Description' .

    • 按以下格式添加说明: code-<language>

    • 选择文本框

    • 使用快捷键执行宏 .

    UPDATE:

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

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

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

  • 2

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

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

  • 4

    您可以轻松地使用包含1行和1列的表格,从您的最爱IDE复制并通过您的代码,开放式办公室将保留您的代码样式 .

  • 4

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

  • 4

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

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

    在正确调整文本大小后,您可以重新访问特定的子字符串,如果需要花哨的文本,请选择/粗体或选择/颜色 .

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

相关问题