带有特定格式的RUBY纯文本到Docx

时间:2018-05-01 08:18:06

标签: ruby formatting docx plaintext

我经常需要制作非常标准的单词文档。关于某些参数的内容会发生变化,但它总是混合预先编写的内容。因此,我决定编写一些ruby代码来更轻松地完成此操作,并且在使用我需要的最终文本创建txt文件时效果非常好。

问题是我需要将此文本转换为.docx并使用特定格式。所以,我试图找到一种方法在文本文件中指出哪些文本应该是粗体,斜体,有不同的缩进,或者是脚注,以便于解释(如html一样)。例如:

<b>此文字应为粗体</b>
\t缩进适用于标签
<i>希望这可能是斜体</i> <f>我希望这可以成为上一句</f>

的注脚

然而,我还没有能够做到这一点。

有人知道如何实现这一目标吗?我已经读过关于宏和pandoc的内容,但是没有任何运气能够实现这一目标。对于宏来说似乎太复杂了。也许我尝试的不是最好的方式。也许用LaTeX或者创建html然后转换成单词?可以用html创建脚注吗? (这似乎是最复杂的)

我不知道,我只是通过视频教程学习Ruby,所以我的知识非常有限。

谢谢大家!

编辑:Arjun的答案几乎解决了整个问题,但他指出的宝石并没有包含脚注的功能,不幸的是,它构成了我文档的重要部分。因此,如果有人知道这样做的宝石,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

啊,红宝石为此获得了宝石;)
https://github.com/trade-informatics/caracal

这可以帮助您从Ruby代码本身编写文档。

来自自述文件

docx.p 'this text should be bold' do
  style          'custom_style'    # sets the paragraph style. generally used at the exclusion of other attributes.
  align          :left             # sets the alignment. accepts :left, :center, :right, and :both.
  color          '333333'          # sets the font color.
  size           32                # sets the font size. units in 1/2 points.
  bold           true              # sets whether or not to render the text with a bold weight.
  italic         false             # sets whether or not render the text in italic style.
  underline      false             # sets whether or not to underline the text.
  bgcolor        'cccccc'          # sets the background color.
  vertical_align 'superscript'     # sets the vertical alignment.
end

还有这个gem https://github.com/nickfrandsen/htmltoword,它将普通的html转换为doc文件。我虽然没试过。