使用python或.net核心将文本文件嵌入到RTF文件中

我有一个要求,其中包括将文件嵌入(文本文件)到动态生成的RTF文件中。

我目前能够毫无问题地生成RTF,但我还需要将一个或多个txt文件嵌入其中。

我做了一些研究,还研究了rtf规范。看起来可能有一种方法可以使用\ object标记执行此操作,但据我了解\ objdata内容应为OLE格式。这是唯一的方法吗? (我希望可以包含字节数组格式)还是有什么方法可以将txt文件内容转换为这种格式,以便可以包含?

我目前有几个用python和c#(dotnet核心)编写的微服务,它们都在linux env的docker容器上运行。因此,最好是我需要一种适合这些的方法。

谢谢。

kao10000 回答:使用python或.net核心将文本文件嵌入到RTF文件中

Aspose.Words允许将嵌入式OLE对象插入Word文档,并且具有.NET Standard 2.0版本。 https://apireference.aspose.com/net/words/aspose.words.documentbuilder/insertoleobject/methods/2

,

我在这里使用实用的解决方案,当文本文件应嵌入RTF文档中时有效。

  1. 将所需文档另存为RTF,并在要替换的文本位置添加伪文本。
  2. 使用文本编辑器打开此RTF,并用替换标记\par替换[!!! replace me !!!]行。

发件人:

    ... prefix rtf stuff ...
    \par text foo
    \par bar text
    \par text baz
    ... suffix rtf stuff ...

收件人:

    ... prefix rtf stuff ...
    [!!! replace me !!!]
    ... suffix rtf stuff ...
  1. 将其另存为template.rtf
  2. 在C#中,读取您的文本文件,将其嵌入到字符串中,并在每行前加\par<space>。将模板读入第二个字符串,然后用第一个字符串替换标记。
  3. 将其另存为new.rtf。

这里是一个示例(仅对不起Perl,C#也应该是10个衬里):

#!/usr/bin/perl
use strict;

my $contents = "";
my $first = 1;
while(<>) {
    if (!$first) {
        $contents .= "\\par ".$_;
    } else {
        $contents .= $_;
        $first = 0;
    }
}

my $file = 'template.rtf';
open my $fh,'<',$file or die;
$/ = undef;
my $data = <$fh>;
close $fh;

$data =~ s/\[!!! replace me !!!\]/$contents/g;

print $data;

这样称呼:

perl mkrtf.pl <test.lst >test.rtf
本文链接:https://www.f2er.com/3089209.html

大家都在问