Class: ElementBuilder

PDFNet. ElementBuilder


new ElementBuilder()

ElementBuilder is used to build new PDF::Elements (e.g. image, text, path, etc) from scratch. In conjunction with ElementWriter, ElementBuilder can be used to create new page content. Note: Analogous to ElementReader, every call to ElementBuilder.Create? method destroys the Element currently associated with the builder and all previous Element pointers are invalidated. Note: For C++ developers. Analogous to ElementReader, ElementBuilder is the owner of all Element objects it creates.

Extends

Methods


<static> create()

Constructor for an ElementBuilder object that can be used to build new PDF::Elements (eg. image, text, path, etc.) from scratch. In conjunction with ElementWriter, ElementBuilder can be used to create new page content.
Returns:
A promise that resolves to Returns an ElementBuilder object
Type
Promise.<PDFNet.ElementBuilder>

arcTo(x, y, width, height, start, extent)

Draw an arc with the specified parameters (lower left corner, width, height and angles).
Parameters:
Name Type Description
x number The horizontal x coordinate of the lower left corner of the ellipse encompassing rectangle
y number The horizontal y coordinate of the lower left corner of the ellipse encompassing rectangle
width number overall width of the full ellipse (not considering the angular extents).
height number overall height of the full ellipse (not considering the angular extents).
start number starting angle of the arc in degrees
extent number angular extent of the arc in degrees
Returns:
Type
Promise.<void>

arcTo2(xr, yr, rx, isLargeArc, sweep, endX, endY)

Draw an arc from the current point to the end point.
Parameters:
Name Type Description
xr number x radius for the arc
yr number y radius for the arc
rx number x-axis rotation in radians
isLargeArc boolean indicates if smaller or larger arc is chosen 1 one of the two larger arc sweeps is chosen 0 one of the two smaller arc sweeps is chosen
sweep boolean direction in which arc is drawn (1 clockwise, 0 counterclockwise)
endX number x coordinate of end point
endY number y coordinate of end point Note: The Arc is defined the same way as it is specified by SVG or XPS standards. For further questions please refer to the XPS or SVG standards.
Returns:
Type
Promise.<void>

closePath()

Closes the current subpath.
Returns:
Type
Promise.<void>

createEllipse(x, y, width, height)

Create an ellipse (or circle, if width == height) path Element.
Parameters:
Name Type Description
x number The horizontal x coordinate of the ellipse center.
y number The vertical y coordinate of the ellipse center.
width number The width of the ellipse rectangle.
height number The height of the ellipse rectangle.
Returns:
A promise that resolves to the path Element
Type
Promise.<PDFNet.Element>

createFormFromDoc(page, doc)

Create a Form XObject Element using the content of the existing page. Unlike CreateForm(Page) method, you can use this method to create form in another document.
Parameters:
Name Type Description
page PDFNet.Page A page used to create the Form XObject.
doc PDFNet.PDFDoc | PDFNet.SDFDoc | PDFNet.FDFDoc Destination document for the Form XObject.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createFormFromPage(page)

Create a Form XObject Element using the content of the existing page. This method assumes that the XObject will be used in the same document as the given page. If you need to create the Form XObject in a different document use CreateForm(Page, Doc) method.
Parameters:
Name Type Description
page PDFNet.Page A page used to create the Form XObject.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createFormFromStream(form)

Create a Form XObject Element.
Parameters:
Name Type Description
form PDFNet.Obj a Form XObject content stream
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createGroupBegin()

Create e_group_begin Element (i.e. 'q' operator in PDF content stream). The function saves the current graphics state.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createGroupEnd()

Create e_group_end Element (i.e. 'Q' operator in PDF content stream). The function restores the previous graphics state.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createImage(img)

Create a content image Element out of a given document Image.
Parameters:
Name Type Description
img PDFNet.Image the given image.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createImageFromMatrix(img, mtx)

Create a content image Element out of a given document Image.
Parameters:
Name Type Description
img PDFNet.Image the given image.
mtx PDFNet.Matrix2D the image transformation matrix.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createImageScaled(img, x, y, hscale, vscale)

Create a content image Element out of a given document Image with the lower left corner at (x, y), and scale factors (hscale, vscale).
Parameters:
Name Type Description
img PDFNet.Image the given image.
x number The horizontal x position to place the lower left corner of the image
y number The vertical x position to place the lower left corner of the image
hscale number The horizontal scale of the image
vscale number The vertical scale of the image
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createMarkedContentBegin(tag, property_dict)

Create e_marked_content_begin element with an associated property dictionary (i.e. BMC or BDC operator in PDF content stream).
Parameters:
Name Type Description
tag string the tag entry for this element.
property_dict PDFNet.Obj the property dictionary.
Returns:
A promise that resolves to the marked content begin element.
Type
Promise.<PDFNet.Element>

createMarkedContentBeginInlineProperties(tag)

Create e_marked_content_begin element with an inline property dictionary (i.e. BDC operator in PDF content stream).
Parameters:
Name Type Description
tag string the tag entry for this element.
Returns:
A promise that resolves to the marked content begin element. Note: The inline property dictionary can be accessed and edited using element.GetMCPropertyDict()
Type
Promise.<PDFNet.Element>

createMarkedContentEnd()

Create e_marked_content_end element (i.e. EMC operator in PDF content stream).
Returns:
A promise that resolves to the marked content end element.
Type
Promise.<PDFNet.Element>

createMarkedContentPoint(tag, property_dict)

Create e_marked_content_point element with an associated property dictionary (i.e. MP or DP operator in PDF content stream).
Parameters:
Name Type Description
tag string the tag entry for this element.
property_dict PDFNet.Obj the property dictionary.
Returns:
A promise that resolves to the marked content point element.
Type
Promise.<PDFNet.Element>

createMarkedContentPointInlineProperties(tag)

Create e_marked_content_point element with an inline property dictionary (i.e. DP operator in PDF content stream).
Parameters:
Name Type Description
tag string the tag entry for this element.
Returns:
A promise that resolves to the marked content point element. Note: The inline property dictionary can be accessed and edited using element.GetMCPropertyDict()
Type
Promise.<PDFNet.Element>

createNewTextRun(text_data)

Create a new text run.
Parameters:
Name Type Description
text_data string text to initialize the text run with. Note: a text run can be created only within a text block Note: you must set the current Font and font size before calling this function.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createNewTextRunUnsigned(text_data)

Create a new text run.
Parameters:
Name Type Description
text_data string text to initialize the text run with. Uses unsigned characters. Note: a text run can be created only within a text block Note: you must set the current Font and font size before calling this function.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createPath(points, buf_seg_types)

Create a path Element using the given path segment data
Parameters:
Name Type Description
points Array.<number> An array containing data on the points in the path. What each point represents is determined by the corresponding segment type.
buf_seg_types ArrayBuffer | Int8Array | Uint8Array | Uint8ClampedArray A buffer/array containing data on the segment types. Possible segment types are as follows:
PDFNet.Element.PathSegmentType = {
	e_moveto : 1,
	e_lineto : 2,
	e_cubicto : 3,
	e_conicto : 4,
	e_rect : 5,
	e_closepath : 6
}
Returns:
A promise that resolves to the path Element
Type
Promise.<PDFNet.Element>

createRect(x, y, width, height)

Create a rectangle path Element.
Parameters:
Name Type Description
x number The horizontal coordinate of the lower left corner of the rectangle.
y number The vertical coordinate of the lower left corner of the rectangle.
width number The width of the rectangle.
height number The height of the rectangle.
Returns:
A promise that resolves to the path Element
Type
Promise.<PDFNet.Element>

createShading(sh)

Parameters:
Name Type Description
sh PDFNet.Shading A Shading object. Shading objects represent a flat interface around all PDF shading types (e_function_shading, e_axial_shading, etc.) Create a shading Element.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createShapedTextRun(text_data)

Create a new text run from shaped text. Shaped Text can be created with an approriate Font, using the Font::GetShapedText() method.
Parameters:
Name Type Description
text_data PDFNet.ShapedText the shaped text data Note: you must set the current Font and font size before calling this function and the font must be created using Font::CreateCIDTrueTypeFont() method, and should be the same font used to generate the shaped text content. Note: For best results, the font should be encoded using the e_Indices encoding scheme. Note: a text run can be created only within a text block
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createTextBegin()

Start a text block ('BT' operator in PDF content stream).
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createTextBeginWithFont(font, font_sz)

Start a text block ('BT' operator in PDF content stream). The function installs the given font in the current graphics state.
Parameters:
Name Type Description
font PDFNet.Font font to set the text in the text block to
font_sz number size to set the text in the text block to
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createTextEnd()

Ends a text block.
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createTextNewLine()

Create e_text_new_line Element (i.e. a T* operator in PDF content stream).
Returns:
A promise that resolves to the path Element
Type
Promise.<PDFNet.Element>

createTextNewLineWithOffset(dx, dy)

Create e_text_new_line Element (i.e. a Td operator in PDF content stream). Move to the start of the next line, offset from the start of the current line by (dx , dy). dx and dy are numbers expressed in unscaled text space units.
Parameters:
Name Type Description
dx number The horizontal x offset from the start of the current line
dy number The vertical y offset from the start of the current line
Returns:
A promise that resolves to the path Element
Type
Promise.<PDFNet.Element>

createTextRun(text_data, font, font_sz)

Create a text run using the given font.
Parameters:
Name Type Description
text_data string text to initialize the text run with
font PDFNet.Font font of the text in the text run
font_sz number size of the text in the text run Note: a text run can be created only within a text block
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createTextRunUnsigned(text_data, font, font_sz)

Create a text run using the given font.
Parameters:
Name Type Description
text_data string text to initialize the text run with. Uses unsigned characters.
font PDFNet.Font font of the text in the text run
font_sz number size of the text in the text run Note: a text run can be created only within a text block
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

createUnicodeTextRun(text_data)

Create a new Unicode text run.
Parameters:
Name Type Description
text_data string the Unicode text Note: you must set the current Font and font size before calling this function and the font must be a CID/Unicode font. Note: a text run can be created only within a text block
Returns:
A promise that resolves to an object of type: "PDFNet.Element"
Type
Promise.<PDFNet.Element>

curveTo(cx1, cy1, cx2, cy2, x2, y2)

Draw a Bezier curve from the current point to the given point (x2, y2) using (cx1, cy1) and (cx2, cy2) as control points.
Parameters:
Name Type Description
cx1 number The x component of the first control point
cy1 number The y component of the first control point
cx2 number The x component of the second control point
cy2 number The y component of the second control point
x2 number The horizontal x component of the goal point
y2 number The vertical y component of the goal point
Returns:
Type
Promise.<void>

destroy()

Destructor
Inherited From:
Returns:
Type
Promise.<void>

ellipse(x, y, width, height)

Add an ellipse (or circle, if rx == ry) to the current path as a complete subpath. Setting the current point is not required before using this function.
Parameters:
Name Type Description
x number The x coordinate of the ellipse center.
y number The y coordinate of the ellipse center.
width number The x radii of the ellipse.
height number The y radii of the ellipse.
Returns:
Type
Promise.<void>

lineTo(x, y)

Draw a line from the current point to the given point.
Parameters:
Name Type Description
x number The horizontal x component of the goal point
y number The vertical y component of the goal point
Returns:
Type
Promise.<void>

moveTo(x, y)

Set the current point.
Parameters:
Name Type Description
x number The horizontal x component of the point
y number The vertical y component of the point
Returns:
Type
Promise.<void>

pathBegin()

Starts building a new path Element that can contain an arbitrary sequence of lines, curves, and rectangles.
Returns:
Type
Promise.<void>

pathEnd()

Finishes building of the path Element.
Returns:
A promise that resolves to the path Element
Type
Promise.<PDFNet.Element>

rect(x, y, width, height)

Add a rectangle to the current path as a complete subpath. Setting the current point is not required before using this function.
Parameters:
Name Type Description
x number The x coordinate of the lower left corner of the rectangle.
y number The y coordinate of the lower left corner of the rectangle.
width number The width of the rectangle.
height number The height of the rectangle.
Returns:
Type
Promise.<void>

reset( [gs])

The function sets the graphics state of this Element to the given value. If 'gs' parameter is not specified or is NULL the function resets the graphics state of this Element to the default graphics state (i.e. the graphics state at the beginning of the display list). The function can be used in situations where the same ElementBuilder is used to create content on several pages, XObjects, etc. If the graphics state is not Reset() when moving to a new display list, the new Element will have the same graphics state as the last Element in the previous display list (and this may or may not be your intent). Another use of Reset(gs) is to make sure that two Elements have the graphics state.
Parameters:
Name Type Argument Description
gs PDFNet.GState <optional>
GState (graphics state) object. If NULL or unspecified, resets graphics state to default.
Returns:
Type
Promise.<void>

takeOwnership()

Take the ownership of this object, so that PDFNet.runWithCleanup won't destroy this object.
Inherited From:
Returns:
Type
void