云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

游戏服务器_美国域名注册商_代金券

小七 141 0

可能会遇到这样一个需求,即需要使用静态数据或静态和动态数据的混合来生成word文件。实际上有很多方法,比如使用OLE对象或Microsoft Word内容控制工具包,但这些选项的问题是,要么我们需要一些额外的软件(这通常在客户端系统上是不可能的,或者可能需要一些批准),要么我们在格式化文件时无法获得多功能性。

本博客将介绍:

如何使用ABAP生成带有图像和格式的word文件。文件格式RTF及其相应的RTF代码将用于解决上述问题陈述。

简介

RTF或富文本文件是由microsoft创建的,顾名思义,它的格式、样式等都比通常的文本文件丰富。关于RTF(文件扩展名:.RTF)最好的一点是,如果保存为".doc"或".docx",它将被转换成上述格式,而不会出现任何问题。

要创建RTF文件,我们可以使用任何文字处理器(在我们的情况下不是这样),也可以使用RTF代码(RTF代码由纯文本、命令、转义符组成,和组:纯文本包含7位(US ASCII)字符,除了\、{和})在ABAP代码中,当我们在生成文件的内部表中使用数据时。

注意:由于我们使用某种代码(RTF代码),因此需要程序/软件来呈现它。无需担心,云服务器多少钱一年,MS Word、OpenOffice或任何文字处理软件都会帮我们这个忙。

解决方案

问题声明:使用ABAP,比购返利,生成一个格式为".doc"的Word文件,其中doc的中间有一个图像,下面有一个段落,字体为Helvetica–12pt,第一行为粗体。

对于这个要求,我使用SE61中存储的静态文本作为常规文本。但是其中有一个子句,我已经根据需要在文本中编写了RTF代码,这样当它在ABAP中调用时,贵阳大数据,我们就可以在内部表中获得所有内容。在我看来,对于某些模板的动态文本,我们可以使用相同的方法,云服务器免,但保留一些占位符,这些占位符是唯一的,如果该行存在占位符,可以通过代码修改表本身来轻松替换。

让ZSCM\u text\u MVTMSG是使用编辑文档TCODE(SE61)创建的通用文本。以下是数据:

这看起来很混乱,但事实并非如此。让我们解码上面的文本,其中包含数据和RTF代码:

{–标记文档、属性等的开始。RTF–表示与HTML或XML类似的文件格式。Ansi–字符编码{\pard\qc–以对齐为中心标记段落开头(qc表示中心对齐)。\pict\pngblip–pict表示我们要在文档中添加图片,pngblip表示它是png类型。长段落看起来像是一袋随机数字和字母,实际上是十六进制编码的图像。您可以轻松地转换任何图像或文件在十六进制使用在线工具。我将在最后提供链接。\par}——这是指段落的结尾。在我们的例子中,我们将结束一个由图像组成的居中对齐的段落。{\line}–用于换行符。就像
的html。{\b text}–要加粗这些括号范围内的文本

ABAP代码:

我们可以使用上面的格式,将我们的文本放在lt\u行内部表中,并使用此格式,我们可以根据需要对其进行操作以合并动态文本。最后,我们可以使用这个内部表,在我们的系统上下载文件,或者通过ABAP通过电子邮件共享,等等,保持格式/扩展名为".doc"/".docx"/".rtf"。

下面是将上述内部表下载到系统中,使用扩展名为".doc"生成的最终输出截图:

结论

使用此博客,数据建模,开发人员可以在预定义的模板内生成一个包含静态或动态数据的word文件,并为该文件锦上添花蛋糕是,您有多功能的格式和样式选项,易于添加图像。

重要链接:

RTF代码详细信息:https://www.oreilly.com/library/view/rtf-pocket-guide/9781449302047/ch01.html将图像转换为十六进制:https://tomeko.net/online\u tools/file\u to\u hex.php?语言=英语确保取消选中这两个复选框。解码十六进制图像:使用此链接,https://codepen.io/abdhass/full/jdRNdj以确保图像转换成功。

注意:

我不是上述任何网站的所有者。请按照网站所有者的政策尽职调查。我是这个博客所有内容的所有者。