首页 > 解决方案 > 在 4D Write Pro (4D v17 R5) 中以编程方式设置文本样式

问题描述

我正在尝试在同样以编程方式创建的 4D Write Pro 文档中以编程方式设置两种文本样式,但最后一个样式集是整个文档唯一假定的样式。

我创建了一个新的 4D Write Pro 文档 (wpDoc),为整个文档创建了一个范围 ($range),并使用“WP Set Attributes”来格式化文本。

C_OBJECT(wpDoc;$range)
wpDoc:=WP New
$range:=WP Text range(wpDoc;wk start text;wk end text)

// Style 1
WP SET ATTRIBUTES($range;wk font;"DIN-Bold")
WP SET ATTRIBUTES($range;wk font size;"12pt")
WP SET TEXT($range;"Name: ";wk append)

// Style 2
WP SET ATTRIBUTES($range;wk font;"DIN-Regular")
WP SET ATTRIBUTES($range;wk font size;"10pt")
WP SET TEXT($range;[Companies]Name;wk append)

WP PRINT(wpDoc)

它应该看起来像:

名称:样本公司名称

但它显示如下:

名称(纯文本):示例公司名称(纯文本)

标签: 4d-database

解决方案


由于您的范围随着您附加的文本而增长,因此您需要更改您的范围。以下代码对我有用。

您应该确认您的字体存在,否则属性命令将无效(FONT LIST)。我切换到我知道我的系统有的字体。

'WP Text range' 在我使用的版本中无效(也许你有一个旧版本。我使用的是 v17.3)。我的代码使用“WP 创建范围”。

C_OBJECT(wpDoc;$range)

wpDoc:=WP 新

$range:=WP 创建范围(wpDoc;wk start text;wk end text)

// 样式 1

WP SET TEXT($range;"Name: ";wk append)

WP SET ATTRIBUTES($range;wk font;"Book Antiqua Bold")

WP SET ATTRIBUTES($range;wk 字体大小;"12pt")

// 样式 2

$range:=WP 创建范围(wpDoc;7;wk 结束文本)

WP SET TEXT($range;[Companies]Name;wk append)

WP SET ATTRIBUTES($range;wk font;"Book Antiqua")

设置打印预览(真)

WP 打印(wpDoc)


推荐阅读