Class: GroupDocs::Document::Annotation

Inherits:
Api::Entity show all
Includes:
Api::Helpers::AccessMode
Defined in:
lib/groupdocs/document/annotation.rb

Defined Under Namespace

Classes: MarkerPosition, Reply, Reviewer

Constant Summary collapse

TYPES =

updated in release 1.7.0

%w(Text Area Point TextStrikeout Polyline TextField Watermark TextReplacement Arrow TextRedaction ResourceRedaction ResourceRedaction TextUnderline Distance All)

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Api::Entity

#inspect, #to_hash

Methods included from Api::Helpers::Accessor

#alias_accessor

Constructor Details

#initialize(options = {}, &blk) ⇒ Annotation

Creates new GroupDocs::Document::Annotation.

Raises:

  • (ArgumentError)

    If document is not passed or is not an instance of GroupDocs::Document



107
108
109
110
111
# File 'lib/groupdocs/document/annotation.rb', line 107

def initialize(options = {}, &blk)
  super(options, &blk)
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
    "You have to pass GroupDocs::Document object: #{document.inspect}."
end

Instance Attribute Details

#accessSymbol

Converts access mode to human-readable format.

Returns:

  • (Symbol)


34
35
36
# File 'lib/groupdocs/document/annotation.rb', line 34

def access
  @access
end

#annotationPositionObject



40
41
42
# File 'lib/groupdocs/document/annotation.rb', line 40

def annotationPosition
  @annotationPosition
end

#backgroundColorObject



72
73
74
# File 'lib/groupdocs/document/annotation.rb', line 72

def backgroundColor
  @backgroundColor
end

#boxObject



36
37
38
# File 'lib/groupdocs/document/annotation.rb', line 36

def box
  @box
end

#createdOnObject



30
31
32
# File 'lib/groupdocs/document/annotation.rb', line 30

def createdOn
  @createdOn
end

#creatorEmailObject



68
69
70
# File 'lib/groupdocs/document/annotation.rb', line 68

def creatorEmail
  @creatorEmail
end

#creatorGuidObject



26
27
28
# File 'lib/groupdocs/document/annotation.rb', line 26

def creatorGuid
  @creatorGuid
end

#creatorNameObject



66
67
68
# File 'lib/groupdocs/document/annotation.rb', line 66

def creatorName
  @creatorName
end

#documentObject



16
17
18
# File 'lib/groupdocs/document/annotation.rb', line 16

def document
  @document
end

#documentGuidObject



24
25
26
# File 'lib/groupdocs/document/annotation.rb', line 24

def documentGuid
  @documentGuid
end

#fieldTextObject



45
46
47
# File 'lib/groupdocs/document/annotation.rb', line 45

def fieldText
  @fieldText
end

#fontColorObject



49
50
51
# File 'lib/groupdocs/document/annotation.rb', line 49

def fontColor
  @fontColor
end

#fontFamilyObject

Returns the value of attribute fontFamily.



46
47
48
# File 'lib/groupdocs/document/annotation.rb', line 46

def fontFamily
  @fontFamily
end

#fontSizeObject

Returns the value of attribute fontSize.



47
48
49
# File 'lib/groupdocs/document/annotation.rb', line 47

def fontSize
  @fontSize
end

#guidObject



20
21
22
# File 'lib/groupdocs/document/annotation.rb', line 20

def guid
  @guid
end

#heightObject

Returns the value of attribute height.



43
44
45
# File 'lib/groupdocs/document/annotation.rb', line 43

def height
  @height
end

#idObject



18
19
20
# File 'lib/groupdocs/document/annotation.rb', line 18

def id
  @id
end

#layerIdObject



70
71
72
# File 'lib/groupdocs/document/annotation.rb', line 70

def layerId
  @layerId
end

#pageNumberObject

added in release 1.5.8



53
54
55
# File 'lib/groupdocs/document/annotation.rb', line 53

def pageNumber
  @pageNumber
end

#penColorObject

added in release 1.7.0



60
61
62
# File 'lib/groupdocs/document/annotation.rb', line 60

def penColor
  @penColor
end

#penStyleObject



64
65
66
# File 'lib/groupdocs/document/annotation.rb', line 64

def penStyle
  @penStyle
end

#penWidthObject



62
63
64
# File 'lib/groupdocs/document/annotation.rb', line 62

def penWidth
  @penWidth
end

#repliesObject



38
39
40
# File 'lib/groupdocs/document/annotation.rb', line 38

def replies
  @replies
end

#replyGuidObject



28
29
30
# File 'lib/groupdocs/document/annotation.rb', line 28

def replyGuid
  @replyGuid
end

#serverTimeObject



55
56
57
# File 'lib/groupdocs/document/annotation.rb', line 55

def serverTime
  @serverTime
end

#sessionGuidObject



22
23
24
# File 'lib/groupdocs/document/annotation.rb', line 22

def sessionGuid
  @sessionGuid
end

#textObject

added in release 2.0.0



76
77
78
# File 'lib/groupdocs/document/annotation.rb', line 76

def text
  @text
end

#typeSymbol

Returns type in human-readable format.

Returns:

  • (Symbol)


32
33
34
# File 'lib/groupdocs/document/annotation.rb', line 32

def type
  @type
end

#widthObject



42
43
44
# File 'lib/groupdocs/document/annotation.rb', line 42

def width
  @width
end

Instance Method Details

#add_reply(reply) ⇒ Object

Adds reply to annotation.

Parameters:

Raises:

  • (ArgumentError)

    if reply is not GroupDocs::Document::Annotation::Reply object



198
199
200
201
202
203
204
# File 'lib/groupdocs/document/annotation.rb', line 198

def add_reply(reply)
  reply.is_a?(GroupDocs::Document::Annotation::Reply) or raise ArgumentError,
    "Reply should be GroupDocs::Document::Annotation::Reply object, received: #{reply.inspect}"

  @replies ||= Array.new
  @replies << reply
end

#create!(info, access = {}) ⇒ Object

Creates new annotation.

Examples:

document = GroupDocs::Storage::Folder.list!.first.to_document
annotation = GroupDocs::Document::Annotation.new(document: document)
annotation.create!

Parameters:

  • info (Hash)

    Annotation info

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (info):

  • :box (Array)
  • :annotationPosition (Array)

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


221
222
223
224
225
226
227
228
229
230
231
232
# File 'lib/groupdocs/document/annotation.rb', line 221

def create!(info, access = {})
  json = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
    request[:request_body] = info
  end.execute!

  json.each do |field, value|
    send(:"#{field}=", value) if respond_to?(:"#{field}=")
  end
end

#created_onTime

Converts timestamp which is return by API server to Time object.

Returns:

  • (Time)


160
161
162
# File 'lib/groupdocs/document/annotation.rb', line 160

def created_on
  Time.at(@createdOn / 1000)
end

#move!(x, y, access = {}) ⇒ Object

Moves annotation to given coordinates.

Parameters:

  • x (Integer, Float)
  • y (Integer, Float)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


298
299
300
301
302
303
304
305
306
307
# File 'lib/groupdocs/document/annotation.rb', line 298

def move!(x, y, access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/ant/{{client_id}}/annotations/#{guid}/position"
    request[:request_body] = { :x => x, :y => y }
  end.execute!

  self.annotation_position = { :x => x, :y => y }
end

#move_marker!(marker, access = {}) ⇒ Object

Changed in release 1.5.8

Moves annotation marker to given coordinates.

Parameters:

  • marker (GroupDocs::Annotation::Marker)

    Marker position

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
# File 'lib/groupdocs/document/annotation.rb', line 319

def move_marker!(marker, access = {})
  marker.is_a?(GroupDocs::Document::Annotation::MarkerPosition) or raise ArgumentError,
    "Marker should be GroupDocs::Document::Annotation::MarkerPosition object, received: #{marker.inspect}"
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/ant/{{client_id}}/annotations/#{guid}/markerPosition"
    request[:request_body] = marker
  end.execute!

  if box && page_number
    box.x = marker.position[:x]
    box.y = marker.position[:y]
    page_number = marker.page
  else
    self.box = { :x => marker.position[:x], :y => marker.position[:y] }
    self.page_number = marker.page
  end
end

#remove!(access = {}) ⇒ Object

Removes annotation.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


242
243
244
245
246
247
248
# File 'lib/groupdocs/document/annotation.rb', line 242

def remove!(access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :DELETE
    request[:path] = "/ant/{{client_id}}/annotations/#{guid}"
  end.execute!
end

#remove_annotations!(access = {}) ⇒ Object

added in release 1.6.0

Removes all annotations from document.

Examples:

document = GroupDocs::Storage::Folder.list!.first.to_document
annotation = GroupDocs::Document::Annotation.new(document: document)
annotation.remove_annotations!

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


264
265
266
267
268
269
270
271
# File 'lib/groupdocs/document/annotation.rb', line 264

def remove_annotations!(access = {})
  json = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :DELETE
    request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
  end.execute!
    json[:delete_annotation_results]
end

#replies!(options = {}, access = {}) ⇒ Array<GroupDocs::Document::Annotation::Reply>

Return an array of replies..

Parameters:

  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :after (Time)

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

Raises:

  • (ArgumentError)

    If :after option is passed but it’s not an instance of Time



285
286
287
# File 'lib/groupdocs/document/annotation.rb', line 285

def replies!(options = {}, access = {})
  Document::Annotation::Reply.get!(self, options, access)
end

#resize!(x, y, access = {}) ⇒ Object

Resize annotation.

Parameters:

  • x (Integer, Float)
  • y (Integer, Float)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


367
368
369
370
371
372
373
374
375
376
# File 'lib/groupdocs/document/annotation.rb', line 367

def resize!(x, y, access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
    request[:request_body] = { :width => x, :height => y }
  end.execute!
    self.box = { :width => x, :height => y }

end

#set_access!(mode, access = {}) ⇒ Object

Sets access mode.

Parameters:

  • mode (Symbol)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


347
348
349
350
351
352
353
354
355
356
# File 'lib/groupdocs/document/annotation.rb', line 347

def set_access!(mode, access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/ant/{{client_id}}/annotations/#{guid}/annotationAccess"
    request[:request_body] = %w(public private).index(mode.to_s)
  end.execute!

  self.access = mode
end

#text_color!(font_color, access = {}) ⇒ Object

Save Text Of Text Color.

Parameters:

  • fontColor (Integer, Float)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


409
410
411
412
413
414
415
416
417
418
# File 'lib/groupdocs/document/annotation.rb', line 409

def text_color!(font_color, access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
    request[:request_body] = { :fontColor => font_color }
  end.execute!

  self.fontColor = font_color
end

#text_info!(fieldText, fontFamily, fontSize, access = {}) ⇒ Object

Save Text Of Text Field.

Parameters:

  • fieldText (String)
  • fontFamily (String)
  • fontSize (Integer, Float)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


388
389
390
391
392
393
394
395
396
397
398
399
# File 'lib/groupdocs/document/annotation.rb', line 388

def text_info!(fieldText, fontFamily, fontSize, access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
    request[:request_body] = { :fieldText => fieldText, :fontFamily => fontFamily, :fontSize => fontSize }
  end.execute!

  self.fieldText = fieldText
  self.fontFamily = fontFamily
  self.fontSize = fontSize
end