Cell and Row Attributes

The reserved "Cells" identifier can be used to access each cell’s or Row attributes.   The Cell is acObjectTypeCell and the Row is acObjectTypeRow.

To access the attributes of cell(Row, Col) of a document or a table, one can use the "Cells[Row, Col]" reference.

To access the attributes from the row, one can use the "Cells[Row]" reference.

Note that cell indices start at 1 and the index 0 is invalid.

 

Example: To set the background color of cell(3, 2) to red, we can use:

PDF1.ObjectAttribute["Cells[3,2] ", "BackColor"] = 0x00FF0000;

 

Note that the document itself can be in the form of a table(Excel style spreadsheet), in this case we can access each cell’s attributes through ObjectAttribute. If a table object named Table1 is added to a document, and we want to access the attributes of Table1, we should use:

PDF1.ObjectAttribute["Table1.Cells[3,2] ", "BackColor"] = 0x00FF0000;

 

Additional to the Common Attributes, these objects have the following attributes:

 

Cell Attributes

 

Attribute Name

Description

Type

Values

Default Value

xPos

*Read only

Horizontal position in Twips.

Integer

>= 0

0

Width

Width of cell in Twips. Changing this property changes the width of the column where the cell is located.

Integer

>= 0

2248

Text

Multiline text contained in cell.

String

 

NULL

Font

Font used to draw cell’s content.

Font

If empty, default document font is used

NULL

TextColor

Color used to draw text.

Color

COLORREF (bbggrr) 000000 to FFFFFF

COLORREF (aabbggrr) 00000000 to FFFFFFFF

000000 (Solid black)

HorzAlign

Horizontal text alignment.

enum acHorzAlign

1: acHorzAlignLeft

2: acHorzAlignCenter

3: acHorzAlignRight

4: acHorzJustify

1: acHorzAlignLeft

VertAlign

Vertical text alignment.

enum acVertAlign

1: acVertAlignTop

2: acVertAlignCenter

3: acVertAlignBottom

3: acVertAlignBottom

TextGap

Gap between text and borders.

Integer

Units are in points or 12th of an inch.

0: None

1: Thin

2: Medium

3: Thick

1: Thin

DataType

Type of data expected in the field object.

enum acDataType

0: acDataTypeUnknown

1: acDataTypeText

2: acDataTypeNumerical

3: acDataTypeDate

0: acDataTypeUnknown

Format

Mask used to format the data contained in the field.

Text

The formats for each DataType are similar to what is provided by Microsoft Excel®.

NULL

TitleColor

Color for cell title.

Color

COLORREF (bbggrr) 000000 to FFFFFF

COLORREF (aabbggrr) 00000000 to FFFFFFFF

000000 (Solid black)

TitleText

Cell title.

String

 

NULL

TitleFont

Cell title font.

Font

If empty, default document value is used

NULL

TitlePosition

Position of cell’s title.

enum acTitlePosition

1: acTopLeft

2: acTopCenter

3: acTopRight

4: acBottomLeft

5 : acBottomCenter

6: acBottomRight

1: acTopLeft

TitleVertical

Draw cell’s title vertically.

Boolean

True/ False

False

HorzBorders

Top and bottom cell borders.

enum acHorzBorders

0: acHorzBordersNone

1: acHorzBordersTop

2: acHorzBordersBottom

3: acHorzBordersTopBottom

0: acHorzBordersNone

VertBorders

Left and right cell borders.

enum acVertBorders

0: acVertBordersNone

1: acVertBordersLeft

2: acVertBordersRight

3: acVertBordersLeftRight

0: acVertBordersNone

BorderColor

Color for drawing text border.

Color

COLORREF (bbggrr) 000000 to FFFFFF

COLORREF (aabbggrr) 00000000 to FFFFFFFF

000000 (Solid black)

BorderWidth

Width of border around cell.

Integer.

Units are in points or 12th of an inch.

0: acBorderWidthNone

1: acBorderWidthSimple

2: acBorderWidthDouble

3: acBorderWidthTriple

4: acBorderWidthQuadruple

0: acBorderWidth None

BackColor

Background color.

Color

COLORREF (bbggrr) 000000 to FFFFFF

COLORREF (aabbggrr) 00000000 to FFFFFFFF

FFFFFFFF (Transparent)

CharSpacing

Spacing between characters.

Integer

10th of a Twip

0

WordSpacing

Spacing between words.

Integer

10th of a Twip

0

Editable

Standard PDF attribute that makes the object editable or not in any viewer.

Boolean

True / False

False

Vertical

Vertical text.

Boolean

True / False

False

xMain

When multiple cells are grouped together, xMain and yMain contain the main cell of the group.

Integer

 

0

yMain

When multiple cells are grouped together, xMain and yMain contain the main cell of the group.

Integer

 

0

xSpan

When multiple cells are grouped together,Xspan contains the number of cells covered by the group.

Integer

 

1

ySpan

When multiple cells are grouped together,ySpan contains the number of cells covered by the group.

Integer

 

1

MergeOption

When the cell is grouped with other cells, specifies in which direction the cell is grouped(right, left, top, bottom).

Integer

 

0

Value

Result of compiling the formula contained in the Text property.

String

 

NULL

 

Result

It is the final value that the user sees after applying any formatting.

String

 

NULL

 

FormattedText

It is the string contents of the cell that includes formatting information such as Bold or Italic.

String

 

NULL

The Formatted Text property allows the user to specify the text that has some sections formatted with a given format style such as: font size, color, bold, italics, underlined, strike-through, etc.

The notations mentioned below are used to specify the needed formats:

Notations

Meaning

b

Bold

i

Italics

u

Underline

s

Strike-through

fs

Font size multiplied by 100.

fc

Font Color, and the color number is hexadecimal.

 

The text section should be enclosed with tags to specify the formatting. For example: <b>Hello World</b> will make the text "Hello World" to be bold.

If a style has an attribute like in the case of font size and font color, we add a colon to the opening tag and append the attribute after it, for example: <fs:1200>Hello World</fs> will set the text "Hello World" to a font size of 12.

 

Example

<fc:FF0000><fs:2400><u>Hello</u><i>W<s>or</s>l</i>d</fs></fc>

displays as:

 

 

 

 

Row Attributes

 

Attribute Name

Description

Type

Values

Default Value

CellArray

Array of cells contained in this row

Array

acObjectTypeCell

NULL

Height

Height of row in Twips.

Integer

>= 0

1584

Page

*Read only

Page number on which the row is located.

Integer

>= 0

 

yPos

*Read only

Vertical position of the row in the page in Twips.

Integer

>= 0

0

 

Inserting Formulas in Cells

Each cell of a table can contain an expression that is evaluated when the document is compiled. An expression always starts with the equal sign =.

The following operators are supported by the PDF Creator interpreter:

 

Operator

Description

+

Addition.

-

Subtraction or unary minus.

/

Division.

*

Multiplication.

&

String concatenation.

And

Logical AND (French speakers can also use Et).

Or

Logical OR (French speakers can also use Ou).

Not

Logical NOT.

<>

Not equal to.

<

Less than.

<=

Less or equal.

>

Greater.

>=

Greater or equal.

 

The following rules apply when evaluating expressions:

 

 

Formatting Cell Contents

When DataType is Text: No predefine formatting is applicable.

When Data Type is Numerical, for example, formats for the following input number: 1264341.56234.

 

Format String

Output

#

1264341.56234

#,###.00

1,264,341.56

#,###.0000

1,264,341.5623

 

When Data Type is Date:

 

Symbol

Meaning

dddd

Day in Text format (Monday, Tuesday, etc).

ddd

Day in short text format (Mon, Tues, Wed, etc).

dd

Day in two digit format (08, 09, 10, 11, etc).

d

Day in minimum digit format (8, 9, 10, etc).

mmmm

Month in Text format (January, February, etc).

mmm

Month in short text format (Jan, Feb, etc).

mm

Month in two digit format (08, 09, 10, 11, etc).

m

Month in minimum digit format (8, 9, 10, etc).

yyyy

Year (2007, 2008, etc).

yy

Year in short format (07, 08, etc).

 

Examples:

Formats for the following input date/time: 03/18/2008 04:39:23 PM

 

Format String

Output

ddd mmmm dd yy

Tuesday March 18 08

HH:MM:SS T

16:39:23 PM

dddd/mmm/yyyy HH:MM:SS T

Tuesday/Mar/2008 16:39:23 PM

Example

Sub Sample()
    ' Constants for Activation codes
    Const strLicenseTo As String = "Amyuni PDF Creator Evaluation"
    Const strActivationCode As String = "07EFCDAB010001004282943F2AF19A88F332D9E781E40460727DF8A42847A1BDE06DB61C71E94E2D90424BF8762385335F9D6884E9FC"
 
    ' Initializing PDFCreativeX Object
    Dim pdf As ACPDFCREACTIVEX.PDFCreactiveX = New ACPDFCREACTIVEX.PDFCreactiveX()
 
    ' Set license key
    pdf.SetLicenseKey(strLicenseTo, strActivationCode)
 
    ' Set CurrentPage
    pdf.CurrentPage = 1
 
    ' Create a Table in the current Page
    pdf.CreateObject(ACPDFCREACTIVEX.ObjectTypeConstants.acObjectTypeTable, "Table1")
    Dim oTable As ACPDFCREACTIVEX.IacObject = pdf.GetObjectByName("Table1")
 
    ' Configuration Table
    oTable("Left") = 1000
    oTable("Top") = 200
    oTable("Right") = pdf.ObjectAttribute("Pages[1]", "Width") - 1000
    oTable("Bottom") = pdf.ObjectAttribute("Pages[1]", "Length") - 200
    oTable("BorderWidth") = ACPDFCREACTIVEX.acBorderWidth.acBorderWidthSimple
 
    ' Create rows And columns
    oTable("Rows") = 10
    oTable("Columns") = 5
 
    ' Creates Cell and Row Objects
    Dim cell As ACPDFCREACTIVEX.IacObject
    Dim cellsRow As ACPDFCREACTIVEX.IacObject
 
    For row = 1 To oTable("Rows")
        ' selecting the row to give configure the height
        cellsRow = pdf.GetObjectByName("Table1.Cells[" + row.ToString() + "]")
 
        ' This example divides the rows into the size Bottom value
        Dim intRowHeight As Integer = (oTable("Bottom") - oTable("Top")) / oTable("Rows")
        cellsRow("Height") = intRowHeight
 
        For column = 1 To oTable("Columns")
            ' Access to the cell objects
            cell = pdf.GetObjectByName("Table1.Cells[" + row.ToString + "," + column.ToString + "]")
            cell("Text") = "AT[" + row.ToString + "," + column.ToString + "]"
            cell("HorzAlign") = ACPDFCREACTIVEX.acHorzAlign.acHorzAlignCenter
            cell("VertAlign") = ACPDFCREACTIVEX.acVertAlign.acVertAlignCenter
            cell("BorderColor") = &HFF00FF
            cell("BorderWidth") = ACPDFCREACTIVEX.acBorderWidth.acBorderWidthTriple
            cell("DataType") = ACPDFCREACTIVEX.acDataType.acDataTypeText
 
            ' Width of cell in TWIPS. Changing this property changes the width of the column where the cell Is located.
            Dim intColWidth As Integer = (oTable("Right") - oTable("Left")) / oTable("Columns")
            cell("Width") = intColWidth
        Next
    Next
 
    ' Save PDF
    pdf.Save("c:\temp\CreatePDFDocument_resulting.pdf", ACPDFCREACTIVEX.FileSaveOptionConstants.acFileSaveView)
End Sub
static void Sample()
{
    // Constants for Activation codes
    const string strLicenseTo = "Amyuni PDF Creator Evaluation";
    const string strActivationCode = "07EFCDAB010001004282943F2AF19A88F332D9E781E40460727DF8A42847A1BDE06DB61C71E94E2D90424BF8762385335F9D6884E9FC";
 
    // Initializing PDFCreativeX Object
    ACPDFCREACTIVEX.PDFCreactiveX pdf = new ACPDFCREACTIVEX.PDFCreactiveX();
 
    // Set license key
    pdf.SetLicenseKey(strLicenseTo, strActivationCode);
 
    // Set CurrentPage
    pdf.CurrentPage = 1;
 
    // Create a Table in the current Page
    pdf.CreateObject(ACPDFCREACTIVEX.ObjectTypeConstants.acObjectTypeTable, "Table1");
    ACPDFCREACTIVEX.IacObject oTable = pdf.GetObjectByName("Table1");
 
    // Configuration Table
    oTable["Left"] = 1000;
    oTable["Top"] = 200;
    oTable["Right"] = pdf.ObjectAttribute["Pages[1]", "Width"] - 1000;
    oTable["Bottom"] = pdf.ObjectAttribute["Pages[1]", "Length"] - 200;
    oTable["BorderWidth"] = ACPDFCREACTIVEX.acBorderWidth.acBorderWidthSimple;
 
    // Create rows and columns
    oTable["Rows"] = 10;
    oTable["Columns"] = 5;
 
    // Creates Cell and Row Objects
    ACPDFCREACTIVEX.IacObject cell;
    ACPDFCREACTIVEX.IacObject cellsRow;
 
    for (int row = 1; row <= (int)oTable["Rows"]; row++)
    {
        // selecting the row to give configure the height
        cellsRow = pdf.GetObjectByName("Table1.Cells[" + row.ToString() + "]");
 
        // This example divides the rows into the size Bottom value
        int intRowHeight = ((int)(oTable["Bottom"]) - (int)(oTable["Top"])) / (int)oTable["Rows"];
        cellsRow["Height"] = intRowHeight;
 
        for (int column = 1; column <= (int)oTable["Columns"]; column++)
        {
            // Access to the cell objects
            cell = pdf.GetObjectByName("Table1.Cells[" + row.ToString() + "," + column.ToString() + "]");
            cell["Text"] = "AT[" + row.ToString() + "," + column.ToString() + "]";
            cell["HorzAlign"] = ACPDFCREACTIVEX.acHorzAlign.acHorzAlignCenter;
            cell["VertAlign"] = ACPDFCREACTIVEX.acVertAlign.acVertAlignCenter;
            cell["BorderColor"] = 0xFF00FF;
            cell["BorderWidth"] = ACPDFCREACTIVEX.acBorderWidth.acBorderWidthDouble;
            cell["DataType"] = ACPDFCREACTIVEX.acDataType.acDataTypeText;
 
            // Width of cell in TWIPS. Changing this property changes the width of the column where the cell is located.
            int intColWidth = ((int)(oTable["Right"]) - (int)(oTable["Left"])) / (int)oTable["Columns"];
            cell["Width"] = intColWidth;
        }
    }
 
    // Save PDF
    pdf.Save(@"c:\temp\CreatePDFDocument_resulting.pdf", ACPDFCREACTIVEX.FileSaveOptionConstants.acFileSaveView);
}
#include "windows.h"
#include "comutil.h"
#include <assert.h>
#include <iostream>
#import "c:\users\amyuni\pdfcreactivex.dll" no_namespace
 
using namespace std;
 
int main()
{
    // Constants for Activation codes
    bstr_t strLicenseTo = "Amyuni PDF Creator Evaluation";
    bstr_t strActivationCode = "07EFCDAB010001004282943F2AF19A88F332D9E781E40460727DF8A42847A1BDE06DB61C71E94E2D90424BF8762385335F9D6884E9FC";
 
    // Initialize the COM subsystem
    CoInitialize(0);
 
    // IPDFCreactiveXPtr is a smart pointer type defined in pdfcreactivex.tlh,
    // the type library header file generated by the #import instruction above
    IPDFCreactiveXPtr pdf;
 
    // Create the PDFCreactiveX instance
    pdf.CreateInstance(__uuidof(PDFCreactiveX));
 
    // set license key
    pdf->SetLicenseKey(_bstr_t(strLicenseTo), _bstr_t(strActivationCode));
 
    // Set CurrentPage
    pdf->CurrentPage = 1;
 
    // Create a Table in the current Page
    pdf->CreateObject(acObjectTypeTable, "Table1");
    IacObjectPtr oTable = pdf->GetObjectByName("Table1");
 
    // Configuration Table
    oTable->Attribute["Left"] = 1000;
    oTable->Attribute["Top"] = 200;
    oTable->Attribute["Right"] = pdf->GetObjectAttribute("Pages[1]", "Width");
    oTable->Attribute["Bottom"] = pdf->GetObjectAttribute("Pages[1]", "Length");
    _variant_t varAttribute;
    varAttribute.vt = VT_I4;  // integers
    varAttribute.bVal = acBorderWidthSimple;
    oTable->Attribute["BorderWidth"] = varAttribute;
 
    // Create rows and columns
    oTable->Attribute["Rows"] = 10;
    oTable->Attribute["Columns"] = 5;
 
    // Creates Cell and Row Objects
    IacObjectPtr cell;
    IacObjectPtr cellsRow;
 
    for (int row = 1; row < (int)oTable->Attribute["Rows"]; row++)
    {
        // selecting the row to give configure the height
        cellsRow = pdf->GetObjectByName("Table1.Cells[" + _bstr_t(_variant_t(row)) + "]");
 
        // This example divides the rows into the size Bottom value
        int intRowHeight = ((int)(oTable->Attribute["Bottom"]) - (int)(oTable->Attribute["Top"])) / (int)oTable->Attribute["Rows"];
        cellsRow->Attribute["Height"] = intRowHeight;
 
        for (int column = 1; column < (int)oTable->Attribute["Columns"]; column++)
        {
            // Access to the cell objects
            cell = pdf->GetObjectByName("Table1.Cells[" + _bstr_t(_variant_t(row)) + "," + _bstr_t(_variant_t(column)) + "]");
            cell->Attribute["Text"] = "AT[" + _bstr_t(_variant_t(row)) + "," + _bstr_t(_variant_t(column)) + "]";
            _variant_t varAttribute1;
            varAttribute1.vt = VT_I4;  // integers
            varAttribute1.lVal = 2;
            cell->Attribute["HorzAlign"] = varAttribute1;
            varAttribute1.lVal = 2;
            cell->Attribute["VertAlign"] = varAttribute1;
            varAttribute1.lVal = 0xFF00FF;
            cell->Attribute["BorderColor"] = varAttribute1;
            varAttribute1.lVal = 3;
            cell->Attribute["BorderWidth"] = varAttribute1;
            varAttribute1.lVal = 1;
            cell->Attribute["DataType"] = varAttribute1;
 
            // Width of cell in TWIPS. Changing this property changes the width of the column where the cell is located.
            int intColWidth = ((int)(oTable->Attribute["Right"]) - (int)(oTable->Attribute["Left"])) / (int)oTable->Attribute["Columns"];
            cell->Attribute["Width"] = intColWidth;
        }
    }
 
    // Save PDF
    pdf->Save("c:\\temp\\CreatePDFDocument_resulting.pdf", acFileSaveView);
 
    return 0;
}
' ObjectType constants
Const acObjectTypeArrow = 36
Const acObjectTypeBarcode = 45
Const acObjectTypeCell = 33
Const acObjectTypeCheckBox = 21
Const acObjectTypeEllipse = 4
Const acObjectTypeExcel = 17
Const acObjectTypeField = 6
Const acObjectTypeGraph = 19
Const acObjectTypeHighlight = 23
Const acObjectTypeLine = 1
Const acObjectTypePicture = 7
Const acObjectTypePolygon = 8
Const acObjectTypeRoundFrame = 3
Const acObjectTypeRow = 32
Const acObjectTypeSelection = 24
Const acObjectTypeSignature = 39
Const acObjectTypeStickyNote = 22
Const acObjectTypeTable = 16
Const acObjectTypeText = 5
 
' acBorderWidth constants
Const acBorderWidthNone = 0
Const acBorderWidthSimple = 1
Const acBorderWidthDouble = 2
Const acBorderWidthTriple = 3
Const acBorderWidthQuadruple = 4
 
' acHorzAlign constants
Const acHorzAlignLeft = 1
Const acHorzAlignCenter = 2
Const acHorzAlignRight = 3
Const acHorzJustify = 4
 
' acVertAlign constants
Const acVertAlignTop = 1
Const acVertAlignCenter = 2
Const acVertAlignBottom = 3
 
' acDataType constants
Const acDataTypeUnkown = 0
Const acDataTypeText = 1
Const acDataTypeNumerical = 2
Const acDataTypeDate = 3
 
' FileSave Constants
Const acFileSaveAll = 0
Const acFileSaveDefault = -1
Const acFileSaveView = 1
Const acFileSaveDesign = 2
Const acFileSavePDFA_7 = 3
Const acFileSavePDFA = 4
Const acFileSavePDF14 = 5
 
 
' Constants for Activation codes
Const strLicenseTo = "Amyuni PDF Creator Evaluation"
Const strActivationCode = "07EFCDAB010001004282943F2AF19A88F332D9E781E40460727DF8A42847A1BDE06DB61C71E94E2D90424BF8762385335F9D6884E9FC"
 
 
' Initializing PDFCreativeX Object
Dim pdf
Set pdf = CreateObject("PDFCreactiveX.PDFCreactiveX.6.5")
 
' Set license key
pdf.SetLicenseKey strLicenseTo, strActivationCode
 
' Set CurrentPage
pdf.CurrentPage = 1
 
' Create a Table in the current Page
pdf.CreateObject acObjectTypeTable, "Table1"
 
' Define Object
Dim oTable 
Set oTable = pdf.GetObjectByName("Table1")
 
' Configuration Table
oTable("Left") = 1000
oTable("Top") = 200
oTable("Right") = pdf.ObjectAttribute("Pages[1]", "Width") - 1000
oTable("Bottom") = pdf.ObjectAttribute("Pages[1]", "Length") - 200
oTable("BorderWidth") = acBorderWidthSimple
 
' Create rows And columns
oTable("Rows") = 10
oTable("Columns") = 5
 
' Creates Cell and Row Objects
    Dim cell
    Dim cellsRow
 
    For row = 1 To oTable("Rows")
        ' selecting the row to give configure the height
        Set cellsRow = pdf.GetObjectByName("Table1.Cells[" & CStr(row) & "]")
 
        ' This example divides the rows into the size Bottom value
        Dim intRowHeight
        intRowHeight = (oTable("Bottom") - oTable("Top")) / oTable("Rows")
        cellsRow("Height") = intRowHeight
 
        For column = 1 To oTable("Columns")
            ' Access to the cell objects
            Set cell = pdf.GetObjectByName("Table1.Cells[" & CStr(row) & "," + CStr(column) & "]")
            cell("Text") = "AT[" & CStr(row) & "," & column & "]"
            cell("HorzAlign") = acHorzAlignCenter
            cell("VertAlign") = acVertAlignCenter
            cell("BorderColor") = &HFF00FF
            cell("BorderWidth") = acBorderWidthTriple
            cell("DataType") = acDataTypeText
 
            ' Width of cell in TWIPS. Changing this property changes the width of the column where the cell Is located.
            Dim intColWidth
            intColWidth = (oTable("Right") - oTable("Left")) / oTable("Columns")
            cell("Width") = intColWidth
        Next
    Next
 
' Save PDF
pdf.Save "c:\temp\CreatePDFDocument_resulting.pdf", acFileSaveView