How do I embed source code or HTML in Open Office

2019-03-08 09:57发布

I need to write a lot of class courses presentations to my programming class, and I constantly need to show source code (mainly C code).

enter image description here

I don't find a easy way to:

  1. Copy my source code from my editor (kate) and
  2. Paste it formated and with source highlighted to an Open Office Presentation (OOP).

What I use to do is a snapshot if the code is small, or to stop presentation and open Kate in the datashow if it is too big.

In this other question some suggest to embed HTML code. So I installed QSource-Highlight that easily convert C code to HTML (also gnu source-highlight, code2html, and so on). None of them can convert source code to a version of a highlighted RTF (rich text format), that would be another way to go.

Having HTML doesn't help, because I can't find a easy way to insert HTML into a presentation either. This site show a very trick windows solution. It needs to convert c code to HTML using an specific windows program that has an option to copy the HTML as RTF, after that you need to past the RTF in Word or Wordpad, and after that you special past RTF to PowerPoint. All good, but I'm a linux user, and I think there might be a better way.

Also, there is another possible solution, installing coooder extension to openoffice. I don't know why, but trying to install this extension in my system gives me an error. Synaptic tell's me that openoffice.org-core and a lot of other should be marked. I click next, and it tells me it wants to remove all the packages, and that coooder needs this packages to work, and so it is not going to be installed. Well...

I'm using linux UBUNTU 10.04, and Open Office 3.2

Thanks! Beco.

PS.: This question is debated in meta-so as possible duplication of the question cited above. But it is my understanding that the older question doesn't solve this specific problem.

PPS.: About the coooder bug, I've launched a bug report here


Edit (2015-08-19)

To insert a RTF text to presentation LibreOffice you can use menu insert, file, and rtf (or HTML).

9条回答
再贱就再见
2楼-- · 2019-03-08 10:28

I have exactly the same problem, but with PHP code rather than C. My almost-solution is to copy the code as HTML in Kate and paste it into a temporary Open Office Writer document. That converts it to Open Office's own styled text format, and from there you can copy and paste it into Impress. Aside from the slightly annoying double-step copy-and-paste, this mostly works fine except that lines that were entirely in bold lose their emboldening and I have to manually fix them. A few other strange bugs can occur too - Impress's import of styled text from OOWriter appears to be a bit buggy.

查看更多
做自己的国王
3楼-- · 2019-03-08 10:30

Update: I have released this macro as a LibreOffice extension. You can install it from the official site: Code Highlighter


I had the same problem but for Java and finally I found a native solution using Python macro which is tested in LibreOffice 5.

Installation

Step 1: Install libreoffice-script-provider-python:

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

Step 2: Install pygments for Python 3:

sudo pip3 install python3-pygments

Step 3: Download Highlight.py

Step 4: Copy the Highlight.py to /usr/lib/libreoffice/share/Scripts/python/

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

Step 5: Set the Read-Only permission to the script.

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

Step 6: Open the LibreOffice Writer and goto Tools -> Customize -> Keyboard

  • Select the LibreOffice option button (Available on top left corner)
  • Select any desired shortcut
  • Select share/Highlight/Highlight_source_code under the Functions Category
  • Click on the Modify button to set the shortcut

Usage

LibreOffice Impress

  • Open LibreOffice Impress.
  • Insert a Text Box (Insert -> Text Box).
  • Copy and paste any code snippet into that Text Box.
  • Create a new Style (Right click on an existing style -> New...)
  • Name the Style as code-<language>
  • Apply the style to your code snippet Text Box.
  • Select the Text Box.
  • Use your shortcut keys to execute the macro.

LibreOffice Writer/Calc

  • Open LibreOffice Writer/Calc.
  • Insert a Text Box (Insert -> Text Box).
  • Copy and paste any code snippet into that Text Box.
  • Right click on the Text Box and select 'Description'.
  • Add a description in the following format: code-<language>
  • Select the Text Box
  • Use your shortcut keys to execute the macro.

UPDATE:

I have added custom style support to this extension. Use code-<language> for default style and code-<language>-<style> for custom style. Available styles are listed in my Git Hub page.

For example Code-Java-Emacs will colorize the Java code using Emacs style.

For more details, visit to the Git Hub link: libreoffice-code-highlighter

查看更多
老娘就宠你
4楼-- · 2019-03-08 10:32

You can easly use a table with 1 line and 1 column, copy and past your code from your favorit IDE, open office will preserve your code style.

查看更多
登录 后发表回答