FieldDisplayBarcode

FieldDisplayBarcode class

实现 DISPLAYBARCODE 字段。

public class FieldDisplayBarcode : Field

构造函数

姓名 描述
FieldDisplayBarcode() 默认构造函数。

特性

姓名 描述
AddStartStopChar { get; set; } 获取或设置是否为条形码类型 NW7 和 CODE39 添加开始/停止字符。
BackgroundColor { get; set; } 获取或设置条码符号的背景颜色。有效值在 [0, 0xFFFFFF] 范围内
BarcodeType { get; set; } 获取或设置条码类型(QR等)
BarcodeValue { get; set; } 获取或设置条码值。
CaseCodeStyle { get; set; } 获取或设置条码类型 ITF14 的案例代码的样式。有效值为 [STD|EXT|ADD]
DisplayResult { get; } 获取表示显示字段结果的文本。
DisplayText { get; set; } 获取或设置是否将条形码数据(文本)与图像一起显示。
End { get; } 获取代表字段end的节点。
ErrorCorrectionLevel { get; set; } 获取或设置二维码的纠错级别。有效值为 [0, 3].
FixCheckDigit { get; set; } 获取或设置校验位无效时是否修复。
ForegroundColor { get; set; } 获取或设置条码符号的前景色。有效值在 [0, 0xFFFFFF] 范围内
Format { get; } 得到一个FieldFormat提供对字段格式的类型化访问的对象。
IsDirty { get; set; } 获取或设置字段的当前结果是否由于对文档的其他修改而不再正确(陈旧)。
IsLocked { get; set; } 获取或设置字段是否被锁定(不应重新计算其结果)。
LocaleId { get; set; } 获取或设置字段的LCID。
PosCodeStyle { get; set; } 获取或设置销售点条形码的样式(条形码类型 UPCA|UPCE|EAN13|EAN8)。有效值(不区分大小写)为 [STD|SUP2|SUP5|CASE].
Result { get; set; } 获取或设置字段分隔符和字段结尾之间的文本。
ScalingFactor { get; set; } 获取或设置符号的比例因子。该值以整数个百分点表示,有效值为 [10, 1000]
Separator { get; } 获取表示字段分隔符的节点。可以为空。
Start { get; } 获取表示字段开始的节点。
SymbolHeight { get; set; } 获取或设置符号的高度。单位为 TWIPS(1/1440 英寸)。
SymbolRotation { get; set; } 获取或设置条码符号的旋转。有效值为 [0, 3]
virtual Type { get; } 获取 Microsoft Word 字段类型。

方法

姓名 描述
GetFieldCode() 返回字段开始和字段分隔符之间的文本(或字段结束,如果没有分隔符)。 包括子字段的字段代码和字段结果。
GetFieldCode(bool) 返回字段开始和字段分隔符之间的文本(如果没有分隔符,则返回字段结束)。
Remove() 从文档中删除字段。在字段之后返回一个节点。如果字段的结尾是其父节点的最后一个 child ,则返回其父段落。如果该字段已被删除,则返回 无效的.
Unlink() 执行字段取消链接。
Update() 执行字段更新。如果该字段已被更新,则抛出。
Update(bool) 执行字段更新。如果该字段已被更新,则抛出。

评论

插入条形码。

例子

展示如何在 QR 条码上执行邮件合并。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 插入一个 MERGEBARCODE 字段,它将在邮件合并期间接受来自数据源的值。
// 此字段会将合并数据源的“MyQRCode”列中的所有值转换为二维码。
FieldMergeBarcode field = (FieldMergeBarcode)builder.InsertField(FieldType.FieldMergeBarcode, true);
field.BarcodeType = "QR";
field.BarcodeValue = "MyQRCode";

// 应用自定义颜色和缩放。
field.BackgroundColor = "0xF8BD69";
field.ForegroundColor = "0xB5413B";
field.ErrorCorrectionLevel = "3";
field.ScalingFactor = "250";
field.SymbolHeight = "1000";
field.SymbolRotation = "0";

Assert.AreEqual(FieldType.FieldMergeBarcode, field.Type);
Assert.AreEqual(" MERGEBARCODE  MyQRCode QR \\b 0xF8BD69 \\f 0xB5413B \\q 3 \\s 250 \\h 1000 \\r 0",
    field.GetFieldCode());
builder.Writeln();

// 创建一个 DataTable,其中有一列与我们的 MERGEBARCODE 字段的 BarcodeValue 同名。
// 邮件合并将为每一行创建一个新页面。每个页面将包含一个 DISPLAYBARCODE 字段,
// 这将显示一个二维码,其中包含合并行中的值。
DataTable table = new DataTable("Barcodes");
table.Columns.Add("MyQRCode");
table.Rows.Add(new[] { "ABC123" });
table.Rows.Add(new[] { "DEF456" });

doc.MailMerge.Execute(table);

Assert.AreEqual(FieldType.FieldDisplayBarcode, doc.Range.Fields[0].Type);
Assert.AreEqual("DISPLAYBARCODE \"ABC123\" QR \\q 3 \\s 250 \\h 1000 \\r 0 \\b 0xF8BD69 \\f 0xB5413B", 
    doc.Range.Fields[0].GetFieldCode());
Assert.AreEqual(FieldType.FieldDisplayBarcode, doc.Range.Fields[1].Type);
Assert.AreEqual("DISPLAYBARCODE \"DEF456\" QR \\q 3 \\s 250 \\h 1000 \\r 0 \\b 0xF8BD69 \\f 0xB5413B",
    doc.Range.Fields[1].GetFieldCode());

doc.Save(ArtifactsDir + "Field.MERGEBARCODE.QR.docx");

演示如何插入 DISPLAYBARCODE 字段并设置其属性。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

FieldDisplayBarcode field = (FieldDisplayBarcode)builder.InsertField(FieldType.FieldDisplayBarcode, true);

// 以下是 DISPLAYBARCODE 字段可以显示的四种类型的条码,以各种方式装饰。
// 1 - 带有自定义颜色的二维码:
field.BarcodeType = "QR";
field.BarcodeValue = "ABC123";
field.BackgroundColor = "0xF8BD69";
field.ForegroundColor = "0xB5413B";
field.ErrorCorrectionLevel = "3";
field.ScalingFactor = "250";
field.SymbolHeight = "1000";
field.SymbolRotation = "0";

Assert.AreEqual(" DISPLAYBARCODE  ABC123 QR \\b 0xF8BD69 \\f 0xB5413B \\q 3 \\s 250 \\h 1000 \\r 0", field.GetFieldCode());
builder.Writeln();

// 2 - EAN13 条码,条码下方显示数字:
field = (FieldDisplayBarcode)builder.InsertField(FieldType.FieldDisplayBarcode, true);
field.BarcodeType = "EAN13";
field.BarcodeValue = "501234567890";
field.DisplayText = true;
field.PosCodeStyle = "CASE";
field.FixCheckDigit = true;

Assert.AreEqual(" DISPLAYBARCODE  501234567890 EAN13 \\t \\p CASE \\x", field.GetFieldCode());
builder.Writeln();

// 3 - CODE39 条形码:
field = (FieldDisplayBarcode)builder.InsertField(FieldType.FieldDisplayBarcode, true);
field.BarcodeType = "CODE39";
field.BarcodeValue = "12345ABCDE";
field.AddStartStopChar = true;

Assert.AreEqual(" DISPLAYBARCODE  12345ABCDE CODE39 \\d", field.GetFieldCode());
builder.Writeln();

// 4 - ITF4 条形码,带有指定的案例代码:
field = (FieldDisplayBarcode)builder.InsertField(FieldType.FieldDisplayBarcode, true);
field.BarcodeType = "ITF14";
field.BarcodeValue = "09312345678907";
field.CaseCodeStyle = "STD";

Assert.AreEqual(" DISPLAYBARCODE  09312345678907 ITF14 \\c STD", field.GetFieldCode());

doc.Save(ArtifactsDir + "Field.DISPLAYBARCODE.docx");

也可以看看