Class: Pdfcrowd::ImageToPdfClient

Inherits:
Object
  • Object
show all
Defined in:
lib/pdfcrowd.rb

Overview

Conversion from an image to PDF.

Instance Method Summary collapse

Constructor Details

#initialize(user_name, api_key) ⇒ ImageToPdfClient

Constructor for the Pdfcrowd API client.

  • user_name - Your username at Pdfcrowd.

  • api_key - Your API key.



4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
# File 'lib/pdfcrowd.rb', line 4437

def initialize(user_name, api_key)
    @helper = ConnectionHelper.new(user_name, api_key)
    @fields = {
        'input_format'=>'image',
        'output_format'=>'pdf'
    }
    @file_id = 1
    @files = {}
    @raw_data = {}
end

Instance Method Details

#convertFile(file) ⇒ Object

Convert a local file.

  • file - The path to a local file to convert. The file must exist and not be empty.

  • Returns - Byte array containing the conversion output.



4498
4499
4500
4501
4502
4503
4504
4505
# File 'lib/pdfcrowd.rb', line 4498

def convertFile(file)
    if (!(File.file?(file) && !File.zero?(file)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file, "convertFile", "image-to-pdf", "The file must exist and not be empty.", "convert_file"), 470);
    end
    
    @files['file'] = file
    @helper.post(@fields, @files, @raw_data)
end

#convertFileToFile(file, file_path) ⇒ Object

Convert a local file and write the result to a local file.

  • file - The path to a local file to convert. The file must exist and not be empty.

  • file_path - The output file path. The string must not be empty.



4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
# File 'lib/pdfcrowd.rb', line 4524

def convertFileToFile(file, file_path)
    if (!(!file_path.nil? && !file_path.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "convertFileToFile::file_path", "image-to-pdf", "The string must not be empty.", "convert_file_to_file"), 470);
    end
    
    output_file = open(file_path, "wb")
    begin
        convertFileToStream(file, output_file)
        output_file.close()
    rescue Error => why
        output_file.close()
        FileUtils.rm(file_path)
        raise
    end
end

#convertFileToStream(file, out_stream) ⇒ Object

Convert a local file and write the result to an output stream.

  • file - The path to a local file to convert. The file must exist and not be empty.

  • out_stream - The output stream that will contain the conversion output.



4511
4512
4513
4514
4515
4516
4517
4518
# File 'lib/pdfcrowd.rb', line 4511

def convertFileToStream(file, out_stream)
    if (!(File.file?(file) && !File.zero?(file)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file, "convertFileToStream::file", "image-to-pdf", "The file must exist and not be empty.", "convert_file_to_stream"), 470);
    end
    
    @files['file'] = file
    @helper.post(@fields, @files, @raw_data, out_stream)
end

#convertRawData(data) ⇒ Object

Convert raw data.

  • data - The raw content to be converted.

  • Returns - Byte array with the output.



4544
4545
4546
4547
# File 'lib/pdfcrowd.rb', line 4544

def convertRawData(data)
    @raw_data['file'] = data
    @helper.post(@fields, @files, @raw_data)
end

#convertRawDataToFile(data, file_path) ⇒ Object

Convert raw data to a file.

  • data - The raw content to be converted.

  • file_path - The output file path. The string must not be empty.



4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
# File 'lib/pdfcrowd.rb', line 4562

def convertRawDataToFile(data, file_path)
    if (!(!file_path.nil? && !file_path.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "convertRawDataToFile::file_path", "image-to-pdf", "The string must not be empty.", "convert_raw_data_to_file"), 470);
    end
    
    output_file = open(file_path, "wb")
    begin
        convertRawDataToStream(data, output_file)
        output_file.close()
    rescue Error => why
        output_file.close()
        FileUtils.rm(file_path)
        raise
    end
end

#convertRawDataToStream(data, out_stream) ⇒ Object

Convert raw data and write the result to an output stream.

  • data - The raw content to be converted.

  • out_stream - The output stream that will contain the conversion output.



4553
4554
4555
4556
# File 'lib/pdfcrowd.rb', line 4553

def convertRawDataToStream(data, out_stream)
    @raw_data['file'] = data
    @helper.post(@fields, @files, @raw_data, out_stream)
end

#convertStream(in_stream) ⇒ Object

Convert the contents of an input stream.

  • in_stream - The input stream with source data.

  • Returns - Byte array containing the conversion output.



4582
4583
4584
4585
# File 'lib/pdfcrowd.rb', line 4582

def convertStream(in_stream)
    @raw_data['stream'] = in_stream.read
    @helper.post(@fields, @files, @raw_data)
end

#convertStreamToFile(in_stream, file_path) ⇒ Object

Convert the contents of an input stream and write the result to a local file.

  • in_stream - The input stream with source data.

  • file_path - The output file path. The string must not be empty.



4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
# File 'lib/pdfcrowd.rb', line 4600

def convertStreamToFile(in_stream, file_path)
    if (!(!file_path.nil? && !file_path.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "convertStreamToFile::file_path", "image-to-pdf", "The string must not be empty.", "convert_stream_to_file"), 470);
    end
    
    output_file = open(file_path, "wb")
    begin
        convertStreamToStream(in_stream, output_file)
        output_file.close()
    rescue Error => why
        output_file.close()
        FileUtils.rm(file_path)
        raise
    end
end

#convertStreamToStream(in_stream, out_stream) ⇒ Object

Convert the contents of an input stream and write the result to an output stream.

  • in_stream - The input stream with source data.

  • out_stream - The output stream that will contain the conversion output.



4591
4592
4593
4594
# File 'lib/pdfcrowd.rb', line 4591

def convertStreamToStream(in_stream, out_stream)
    @raw_data['stream'] = in_stream.read
    @helper.post(@fields, @files, @raw_data, out_stream)
end

#convertUrl(url) ⇒ Object

Convert an image.

  • url - The address of the image to convert. The supported protocols are http:// and https://.

  • Returns - Byte array containing the conversion output.



4452
4453
4454
4455
4456
4457
4458
4459
# File 'lib/pdfcrowd.rb', line 4452

def convertUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "convertUrl", "image-to-pdf", "The supported protocols are http:// and https://.", "convert_url"), 470);
    end
    
    @fields['url'] = url
    @helper.post(@fields, @files, @raw_data)
end

#convertUrlToFile(url, file_path) ⇒ Object

Convert an image and write the result to a local file.

  • url - The address of the image to convert. The supported protocols are http:// and https://.

  • file_path - The output file path. The string must not be empty.



4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
# File 'lib/pdfcrowd.rb', line 4478

def convertUrlToFile(url, file_path)
    if (!(!file_path.nil? && !file_path.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "convertUrlToFile::file_path", "image-to-pdf", "The string must not be empty.", "convert_url_to_file"), 470);
    end
    
    output_file = open(file_path, "wb")
    begin
        convertUrlToStream(url, output_file)
        output_file.close()
    rescue Error => why
        output_file.close()
        FileUtils.rm(file_path)
        raise
    end
end

#convertUrlToStream(url, out_stream) ⇒ Object

Convert an image and write the result to an output stream.

  • url - The address of the image to convert. The supported protocols are http:// and https://.

  • out_stream - The output stream that will contain the conversion output.



4465
4466
4467
4468
4469
4470
4471
4472
# File 'lib/pdfcrowd.rb', line 4465

def convertUrlToStream(url, out_stream)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "convertUrlToStream::url", "image-to-pdf", "The supported protocols are http:// and https://.", "convert_url_to_stream"), 470);
    end
    
    @fields['url'] = url
    @helper.post(@fields, @files, @raw_data, out_stream)
end

#getConsumedCreditCountObject

Get the number of credits consumed by the last conversion.

  • Returns - The number of credits.



5236
5237
5238
# File 'lib/pdfcrowd.rb', line 5236

def getConsumedCreditCount()
    return @helper.getConsumedCreditCount()
end

#getDebugLogUrlObject

Get the URL of the debug log for the last conversion.

  • Returns - The link to the debug log.



5221
5222
5223
# File 'lib/pdfcrowd.rb', line 5221

def getDebugLogUrl()
    return @helper.getDebugLogUrl()
end

#getJobIdObject

Get the job id.

  • Returns - The unique job identifier.



5242
5243
5244
# File 'lib/pdfcrowd.rb', line 5242

def getJobId()
    return @helper.getJobId()
end

#getOutputSizeObject

Get the size of the output in bytes.

  • Returns - The count of bytes.



5248
5249
5250
# File 'lib/pdfcrowd.rb', line 5248

def getOutputSize()
    return @helper.getOutputSize()
end

#getRemainingCreditCountObject

Get the number of conversion credits available in your account. This method can only be called after a call to one of the convertXtoY methods. The returned value can differ from the actual count if you run parallel conversions. The special value 999999 is returned if the information is not available.

  • Returns - The number of credits.



5230
5231
5232
# File 'lib/pdfcrowd.rb', line 5230

def getRemainingCreditCount()
    return @helper.getRemainingCreditCount()
end

#getVersionObject

Get the version details.

  • Returns - API version, converter version, and client version.



5254
5255
5256
# File 'lib/pdfcrowd.rb', line 5254

def getVersion()
    return "client " + CLIENT_VERSION + ", API v2, converter " + @helper.getConverterVersion()
end

#setAuthor(author) ⇒ Object

Set the author of the PDF.

  • author - The author.

  • Returns - The converter object.



5077
5078
5079
5080
# File 'lib/pdfcrowd.rb', line 5077

def setAuthor(author)
    @fields['author'] = author
    self
end

#setCenterWindow(value) ⇒ Object

Specify whether to position the document’s window in the center of the screen.

  • value - Set to true to center the window.

  • Returns - The converter object.



5196
5197
5198
5199
# File 'lib/pdfcrowd.rb', line 5196

def setCenterWindow(value)
    @fields['center_window'] = value
    self
end

#setConverterVersion(version) ⇒ Object

Set the converter version. Different versions may produce different output. Choose which one provides the best output for your case.

  • version - The version identifier. Allowed values are latest, 20.10, 18.10.

  • Returns - The converter object.



5297
5298
5299
5300
5301
5302
5303
5304
# File 'lib/pdfcrowd.rb', line 5297

def setConverterVersion(version)
    unless /(?i)^(latest|20.10|18.10)$/.match(version)
        raise Error.new(Pdfcrowd.create_invalid_value_message(version, "setConverterVersion", "image-to-pdf", "Allowed values are latest, 20.10, 18.10.", "set_converter_version"), 470);
    end
    
    @helper.setConverterVersion(version)
    self
end

#setCropArea(x, y, width, height) ⇒ Object

Set the content area position and size. The content area enables to specify the part to be converted.

  • x - Set the top left X coordinate of the content area. It is relative to the top left X coordinate of the print area. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • y - Set the top left Y coordinate of the content area. It is relative to the top left Y coordinate of the print area. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • width - Set the width of the content area. It should be at least 1 inch. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • height - Set the height of the content area. It should be at least 1 inch. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4693
4694
4695
4696
4697
4698
4699
# File 'lib/pdfcrowd.rb', line 4693

def setCropArea(x, y, width, height)
    setCropAreaX(x)
    setCropAreaY(y)
    setCropAreaWidth(width)
    setCropAreaHeight(height)
    self
end

#setCropAreaHeight(height) ⇒ Object

Set the height of the content area. It should be at least 1 inch.

  • height - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4677
4678
4679
4680
4681
4682
4683
4684
# File 'lib/pdfcrowd.rb', line 4677

def setCropAreaHeight(height)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(height)
        raise Error.new(Pdfcrowd.create_invalid_value_message(height, "setCropAreaHeight", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_crop_area_height"), 470);
    end
    
    @fields['crop_area_height'] = height
    self
end

#setCropAreaWidth(width) ⇒ Object

Set the width of the content area. It should be at least 1 inch.

  • width - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4664
4665
4666
4667
4668
4669
4670
4671
# File 'lib/pdfcrowd.rb', line 4664

def setCropAreaWidth(width)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(width)
        raise Error.new(Pdfcrowd.create_invalid_value_message(width, "setCropAreaWidth", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_crop_area_width"), 470);
    end
    
    @fields['crop_area_width'] = width
    self
end

#setCropAreaX(x) ⇒ Object

Set the top left X coordinate of the content area. It is relative to the top left X coordinate of the print area.

  • x - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4638
4639
4640
4641
4642
4643
4644
4645
# File 'lib/pdfcrowd.rb', line 4638

def setCropAreaX(x)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(x)
        raise Error.new(Pdfcrowd.create_invalid_value_message(x, "setCropAreaX", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_crop_area_x"), 470);
    end
    
    @fields['crop_area_x'] = x
    self
end

#setCropAreaY(y) ⇒ Object

Set the top left Y coordinate of the content area. It is relative to the top left Y coordinate of the print area.

  • y - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4651
4652
4653
4654
4655
4656
4657
4658
# File 'lib/pdfcrowd.rb', line 4651

def setCropAreaY(y)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(y)
        raise Error.new(Pdfcrowd.create_invalid_value_message(y, "setCropAreaY", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_crop_area_y"), 470);
    end
    
    @fields['crop_area_y'] = y
    self
end

#setDebugLog(value) ⇒ Object

Turn on the debug logging. Details about the conversion are stored in the debug log. The URL of the log can be obtained from the getDebugLogUrl method or available in conversion statistics.

  • value - Set to true to enable the debug logging.

  • Returns - The converter object.



5214
5215
5216
5217
# File 'lib/pdfcrowd.rb', line 5214

def setDebugLog(value)
    @fields['debug_log'] = value
    self
end

#setDisplayTitle(value) ⇒ Object

Specify whether the window’s title bar should display the document title. If false , the title bar should instead display the name of the PDF file containing the document.

  • value - Set to true to display the title.

  • Returns - The converter object.



5205
5206
5207
5208
# File 'lib/pdfcrowd.rb', line 5205

def setDisplayTitle(value)
    @fields['display_title'] = value
    self
end

#setDpi(dpi) ⇒ Object

Set the DPI resolution of the input image. The DPI affects margin options specified in points too (e.g. 1 point is equal to 1 pixel in 96 DPI).

  • dpi - The DPI value.

  • Returns - The converter object.



4883
4884
4885
4886
# File 'lib/pdfcrowd.rb', line 4883

def setDpi(dpi)
    @fields['dpi'] = dpi
    self
end

#setEncrypt(value) ⇒ Object

Encrypt the PDF. This prevents search engines from indexing the contents.

  • value - Set to true to enable PDF encryption.

  • Returns - The converter object.



5005
5006
5007
5008
# File 'lib/pdfcrowd.rb', line 5005

def setEncrypt(value)
    @fields['encrypt'] = value
    self
end

#setFitWindow(value) ⇒ Object

Specify whether to resize the document’s window to fit the size of the first displayed page.

  • value - Set to true to resize the window.

  • Returns - The converter object.



5187
5188
5189
5190
# File 'lib/pdfcrowd.rb', line 5187

def setFitWindow(value)
    @fields['fit_window'] = value
    self
end

#setHideMenubar(value) ⇒ Object

Specify whether to hide the viewer application’s menu bar when the document is active.

  • value - Set to true to hide the menu bar.

  • Returns - The converter object.



5169
5170
5171
5172
# File 'lib/pdfcrowd.rb', line 5169

def setHideMenubar(value)
    @fields['hide_menubar'] = value
    self
end

#setHideToolbar(value) ⇒ Object

Specify whether to hide the viewer application’s tool bars when the document is active.

  • value - Set to true to hide tool bars.

  • Returns - The converter object.



5160
5161
5162
5163
# File 'lib/pdfcrowd.rb', line 5160

def setHideToolbar(value)
    @fields['hide_toolbar'] = value
    self
end

#setHideWindowUi(value) ⇒ Object

Specify whether to hide user interface elements in the document’s window (such as scroll bars and navigation controls), leaving only the document’s contents displayed.

  • value - Set to true to hide ui elements.

  • Returns - The converter object.



5178
5179
5180
5181
# File 'lib/pdfcrowd.rb', line 5178

def setHideWindowUi(value)
    @fields['hide_window_ui'] = value
    self
end

#setHttpProxy(proxy) ⇒ Object

A proxy server used by Pdfcrowd conversion process for accessing the source URLs with HTTP scheme. It can help to circumvent regional restrictions or provide limited access to your intranet.

  • proxy - The value must have format DOMAIN_OR_IP_ADDRESS:PORT.

  • Returns - The converter object.



5271
5272
5273
5274
5275
5276
5277
5278
# File 'lib/pdfcrowd.rb', line 5271

def setHttpProxy(proxy)
    unless /(?i)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z0-9]{1,}:\d+$/.match(proxy)
        raise Error.new(Pdfcrowd.create_invalid_value_message(proxy, "setHttpProxy", "image-to-pdf", "The value must have format DOMAIN_OR_IP_ADDRESS:PORT.", "set_http_proxy"), 470);
    end
    
    @fields['http_proxy'] = proxy
    self
end

#setHttpsProxy(proxy) ⇒ Object

A proxy server used by Pdfcrowd conversion process for accessing the source URLs with HTTPS scheme. It can help to circumvent regional restrictions or provide limited access to your intranet.

  • proxy - The value must have format DOMAIN_OR_IP_ADDRESS:PORT.

  • Returns - The converter object.



5284
5285
5286
5287
5288
5289
5290
5291
# File 'lib/pdfcrowd.rb', line 5284

def setHttpsProxy(proxy)
    unless /(?i)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z0-9]{1,}:\d+$/.match(proxy)
        raise Error.new(Pdfcrowd.create_invalid_value_message(proxy, "setHttpsProxy", "image-to-pdf", "The value must have format DOMAIN_OR_IP_ADDRESS:PORT.", "set_https_proxy"), 470);
    end
    
    @fields['https_proxy'] = proxy
    self
end

#setInitialPage(page) ⇒ Object

Display the specified page when the document is opened.

  • page - Must be a positive integer number.

  • Returns - The converter object.



5134
5135
5136
5137
5138
5139
5140
5141
# File 'lib/pdfcrowd.rb', line 5134

def setInitialPage(page)
    if (!(Integer(page) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(page, "setInitialPage", "image-to-pdf", "Must be a positive integer number.", "set_initial_page"), 470);
    end
    
    @fields['initial_page'] = page
    self
end

#setInitialZoom(zoom) ⇒ Object

Specify the initial page zoom in percents when the document is opened.

  • zoom - Must be a positive integer number.

  • Returns - The converter object.



5147
5148
5149
5150
5151
5152
5153
5154
# File 'lib/pdfcrowd.rb', line 5147

def setInitialZoom(zoom)
    if (!(Integer(zoom) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(zoom, "setInitialZoom", "image-to-pdf", "Must be a positive integer number.", "set_initial_zoom"), 470);
    end
    
    @fields['initial_zoom'] = zoom
    self
end

#setInitialZoomType(zoom_type) ⇒ Object

Specify how the page should be displayed when opened.

  • zoom_type - Allowed values are fit-width, fit-height, fit-page.

  • Returns - The converter object.



5121
5122
5123
5124
5125
5126
5127
5128
# File 'lib/pdfcrowd.rb', line 5121

def setInitialZoomType(zoom_type)
    unless /(?i)^(fit-width|fit-height|fit-page)$/.match(zoom_type)
        raise Error.new(Pdfcrowd.create_invalid_value_message(zoom_type, "setInitialZoomType", "image-to-pdf", "Allowed values are fit-width, fit-height, fit-page.", "set_initial_zoom_type"), 470);
    end
    
    @fields['initial_zoom_type'] = zoom_type
    self
end

#setKeywords(keywords) ⇒ Object

Associate keywords with the document.

  • keywords - The string with the keywords.

  • Returns - The converter object.



5086
5087
5088
5089
# File 'lib/pdfcrowd.rb', line 5086

def setKeywords(keywords)
    @fields['keywords'] = keywords
    self
end

#setLinearize(value) ⇒ Object

Create linearized PDF. This is also known as Fast Web View.

  • value - Set to true to create linearized PDF.

  • Returns - The converter object.



4996
4997
4998
4999
# File 'lib/pdfcrowd.rb', line 4996

def setLinearize(value)
    @fields['linearize'] = value
    self
end

#setMarginBottom(bottom) ⇒ Object

Set the output page bottom margin.

  • bottom - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4829
4830
4831
4832
4833
4834
4835
4836
# File 'lib/pdfcrowd.rb', line 4829

def setMarginBottom(bottom)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(bottom)
        raise Error.new(Pdfcrowd.create_invalid_value_message(bottom, "setMarginBottom", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_margin_bottom"), 470);
    end
    
    @fields['margin_bottom'] = bottom
    self
end

#setMarginLeft(left) ⇒ Object

Set the output page left margin.

  • left - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4842
4843
4844
4845
4846
4847
4848
4849
# File 'lib/pdfcrowd.rb', line 4842

def setMarginLeft(left)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(left)
        raise Error.new(Pdfcrowd.create_invalid_value_message(left, "setMarginLeft", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_margin_left"), 470);
    end
    
    @fields['margin_left'] = left
    self
end

#setMarginRight(right) ⇒ Object

Set the output page right margin.

  • right - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4816
4817
4818
4819
4820
4821
4822
4823
# File 'lib/pdfcrowd.rb', line 4816

def setMarginRight(right)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(right)
        raise Error.new(Pdfcrowd.create_invalid_value_message(right, "setMarginRight", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_margin_right"), 470);
    end
    
    @fields['margin_right'] = right
    self
end

#setMarginTop(top) ⇒ Object

Set the output page top margin.

  • top - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4803
4804
4805
4806
4807
4808
4809
4810
# File 'lib/pdfcrowd.rb', line 4803

def setMarginTop(top)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(top)
        raise Error.new(Pdfcrowd.create_invalid_value_message(top, "setMarginTop", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_margin_top"), 470);
    end
    
    @fields['margin_top'] = top
    self
end

#setMultipageBackground(background) ⇒ Object

Apply each page of a background to the corresponding page of the output PDF. A background can be either a PDF or an image.

  • background - The file path to a local file. The file must exist and not be empty.

  • Returns - The converter object.



4970
4971
4972
4973
4974
4975
4976
4977
# File 'lib/pdfcrowd.rb', line 4970

def setMultipageBackground(background)
    if (!(File.file?(background) && !File.zero?(background)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(background, "setMultipageBackground", "image-to-pdf", "The file must exist and not be empty.", "set_multipage_background"), 470);
    end
    
    @files['multipage_background'] = background
    self
end

#setMultipageBackgroundUrl(url) ⇒ Object

Load a file from the specified URL and apply each page of the file as a background to the corresponding page of the output PDF. A background can be either a PDF or an image.

  • url - The supported protocols are http:// and https://.

  • Returns - The converter object.



4983
4984
4985
4986
4987
4988
4989
4990
# File 'lib/pdfcrowd.rb', line 4983

def setMultipageBackgroundUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setMultipageBackgroundUrl", "image-to-pdf", "The supported protocols are http:// and https://.", "set_multipage_background_url"), 470);
    end
    
    @fields['multipage_background_url'] = url
    self
end

#setMultipageWatermark(watermark) ⇒ Object

Apply each page of a watermark to the corresponding page of the output PDF. A watermark can be either a PDF or an image.

  • watermark - The file path to a local file. The file must exist and not be empty.

  • Returns - The converter object.



4918
4919
4920
4921
4922
4923
4924
4925
# File 'lib/pdfcrowd.rb', line 4918

def setMultipageWatermark(watermark)
    if (!(File.file?(watermark) && !File.zero?(watermark)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(watermark, "setMultipageWatermark", "image-to-pdf", "The file must exist and not be empty.", "set_multipage_watermark"), 470);
    end
    
    @files['multipage_watermark'] = watermark
    self
end

#setMultipageWatermarkUrl(url) ⇒ Object

Load a file from the specified URL and apply each page of the file as a watermark to the corresponding page of the output PDF. A watermark can be either a PDF or an image.

  • url - The supported protocols are http:// and https://.

  • Returns - The converter object.



4931
4932
4933
4934
4935
4936
4937
4938
# File 'lib/pdfcrowd.rb', line 4931

def setMultipageWatermarkUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setMultipageWatermarkUrl", "image-to-pdf", "The supported protocols are http:// and https://.", "set_multipage_watermark_url"), 470);
    end
    
    @fields['multipage_watermark_url'] = url
    self
end

#setNoCopy(value) ⇒ Object

Disallow text and graphics extraction from the output PDF.

  • value - Set to true to set the no-copy flag in the output PDF.

  • Returns - The converter object.



5050
5051
5052
5053
# File 'lib/pdfcrowd.rb', line 5050

def setNoCopy(value)
    @fields['no_copy'] = value
    self
end

#setNoModify(value) ⇒ Object

Disallow modification of the output PDF.

  • value - Set to true to set the read-only only flag in the output PDF.

  • Returns - The converter object.



5041
5042
5043
5044
# File 'lib/pdfcrowd.rb', line 5041

def setNoModify(value)
    @fields['no_modify'] = value
    self
end

#setNoPrint(value) ⇒ Object

Disallow printing of the output PDF.

  • value - Set to true to set the no-print flag in the output PDF.

  • Returns - The converter object.



5032
5033
5034
5035
# File 'lib/pdfcrowd.rb', line 5032

def setNoPrint(value)
    @fields['no_print'] = value
    self
end

#setOrientation(orientation) ⇒ Object

Set the output page orientation.

  • orientation - Allowed values are landscape, portrait.

  • Returns - The converter object.



4764
4765
4766
4767
4768
4769
4770
4771
# File 'lib/pdfcrowd.rb', line 4764

def setOrientation(orientation)
    unless /(?i)^(landscape|portrait)$/.match(orientation)
        raise Error.new(Pdfcrowd.create_invalid_value_message(orientation, "setOrientation", "image-to-pdf", "Allowed values are landscape, portrait.", "set_orientation"), 470);
    end
    
    @fields['orientation'] = orientation
    self
end

#setOwnerPassword(password) ⇒ Object

Protect the PDF with an owner password. Supplying an owner password grants unlimited access to the PDF including changing the passwords and access permissions.

  • password - The owner password.

  • Returns - The converter object.



5023
5024
5025
5026
# File 'lib/pdfcrowd.rb', line 5023

def setOwnerPassword(password)
    @fields['owner_password'] = password
    self
end

#setPageBackground(background) ⇒ Object

Apply a background to each page of the output PDF file. A background can be either a PDF or an image. If a multi-page file (PDF or TIFF) is used, the first page is used as the background.

  • background - The file path to a local file. The file must exist and not be empty.

  • Returns - The converter object.



4944
4945
4946
4947
4948
4949
4950
4951
# File 'lib/pdfcrowd.rb', line 4944

def setPageBackground(background)
    if (!(File.file?(background) && !File.zero?(background)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(background, "setPageBackground", "image-to-pdf", "The file must exist and not be empty.", "set_page_background"), 470);
    end
    
    @files['page_background'] = background
    self
end

#setPageBackgroundColor(color) ⇒ Object

The page background color in RGB or RGBA hexadecimal format. The color fills the entire page regardless of the margins. If not page size is specified and the image format supports background (e.g. PDF, PNG), the background color is applied too.

  • color - The value must be in RRGGBB or RRGGBBAA hexadecimal format.

  • Returns - The converter object.



4870
4871
4872
4873
4874
4875
4876
4877
# File 'lib/pdfcrowd.rb', line 4870

def setPageBackgroundColor(color)
    unless /^[0-9a-fA-F]{6,8}$/.match(color)
        raise Error.new(Pdfcrowd.create_invalid_value_message(color, "setPageBackgroundColor", "image-to-pdf", "The value must be in RRGGBB or RRGGBBAA hexadecimal format.", "set_page_background_color"), 470);
    end
    
    @fields['page_background_color'] = color
    self
end

#setPageBackgroundUrl(url) ⇒ Object

Load a file from the specified URL and apply the file as a background to each page of the output PDF. A background can be either a PDF or an image. If a multi-page file (PDF or TIFF) is used, the first page is used as the background.

  • url - The supported protocols are http:// and https://.

  • Returns - The converter object.



4957
4958
4959
4960
4961
4962
4963
4964
# File 'lib/pdfcrowd.rb', line 4957

def setPageBackgroundUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setPageBackgroundUrl", "image-to-pdf", "The supported protocols are http:// and https://.", "set_page_background_url"), 470);
    end
    
    @fields['page_background_url'] = url
    self
end

#setPageDimensions(width, height) ⇒ Object

Set the output page dimensions. If no page size is specified, margins are applied as a border around the image.

  • width - Set the output page width. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • height - Set the output page height. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4754
4755
4756
4757
4758
# File 'lib/pdfcrowd.rb', line 4754

def setPageDimensions(width, height)
    setPageWidth(width)
    setPageHeight(height)
    self
end

#setPageHeight(height) ⇒ Object

Set the output page height.

  • height - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4740
4741
4742
4743
4744
4745
4746
4747
# File 'lib/pdfcrowd.rb', line 4740

def setPageHeight(height)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(height)
        raise Error.new(Pdfcrowd.create_invalid_value_message(height, "setPageHeight", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_page_height"), 470);
    end
    
    @fields['page_height'] = height
    self
end

#setPageLayout(layout) ⇒ Object

Specify the page layout to be used when the document is opened.

  • layout - Allowed values are single-page, one-column, two-column-left, two-column-right.

  • Returns - The converter object.



5095
5096
5097
5098
5099
5100
5101
5102
# File 'lib/pdfcrowd.rb', line 5095

def setPageLayout(layout)
    unless /(?i)^(single-page|one-column|two-column-left|two-column-right)$/.match(layout)
        raise Error.new(Pdfcrowd.create_invalid_value_message(layout, "setPageLayout", "image-to-pdf", "Allowed values are single-page, one-column, two-column-left, two-column-right.", "set_page_layout"), 470);
    end
    
    @fields['page_layout'] = layout
    self
end

#setPageMargins(top, right, bottom, left) ⇒ Object

Set the output page margins.

  • top - Set the output page top margin. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • right - Set the output page right margin. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • bottom - Set the output page bottom margin. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • left - Set the output page left margin. The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4858
4859
4860
4861
4862
4863
4864
# File 'lib/pdfcrowd.rb', line 4858

def setPageMargins(top, right, bottom, left)
    setMarginTop(top)
    setMarginRight(right)
    setMarginBottom(bottom)
    setMarginLeft(left)
    self
end

#setPageMode(mode) ⇒ Object

Specify how the document should be displayed when opened.

  • mode - Allowed values are full-screen, thumbnails, outlines.

  • Returns - The converter object.



5108
5109
5110
5111
5112
5113
5114
5115
# File 'lib/pdfcrowd.rb', line 5108

def setPageMode(mode)
    unless /(?i)^(full-screen|thumbnails|outlines)$/.match(mode)
        raise Error.new(Pdfcrowd.create_invalid_value_message(mode, "setPageMode", "image-to-pdf", "Allowed values are full-screen, thumbnails, outlines.", "set_page_mode"), 470);
    end
    
    @fields['page_mode'] = mode
    self
end

#setPageSize(size) ⇒ Object

Set the output page size.

  • size - Allowed values are A0, A1, A2, A3, A4, A5, A6, Letter.

  • Returns - The converter object.



4714
4715
4716
4717
4718
4719
4720
4721
# File 'lib/pdfcrowd.rb', line 4714

def setPageSize(size)
    unless /(?i)^(A0|A1|A2|A3|A4|A5|A6|Letter)$/.match(size)
        raise Error.new(Pdfcrowd.create_invalid_value_message(size, "setPageSize", "image-to-pdf", "Allowed values are A0, A1, A2, A3, A4, A5, A6, Letter.", "set_page_size"), 470);
    end
    
    @fields['page_size'] = size
    self
end

#setPageWatermark(watermark) ⇒ Object

Apply a watermark to each page of the output PDF file. A watermark can be either a PDF or an image. If a multi-page file (PDF or TIFF) is used, the first page is used as the watermark.

  • watermark - The file path to a local file. The file must exist and not be empty.

  • Returns - The converter object.



4892
4893
4894
4895
4896
4897
4898
4899
# File 'lib/pdfcrowd.rb', line 4892

def setPageWatermark(watermark)
    if (!(File.file?(watermark) && !File.zero?(watermark)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(watermark, "setPageWatermark", "image-to-pdf", "The file must exist and not be empty.", "set_page_watermark"), 470);
    end
    
    @files['page_watermark'] = watermark
    self
end

#setPageWatermarkUrl(url) ⇒ Object

Load a file from the specified URL and apply the file as a watermark to each page of the output PDF. A watermark can be either a PDF or an image. If a multi-page file (PDF or TIFF) is used, the first page is used as the watermark.

  • url - The supported protocols are http:// and https://.

  • Returns - The converter object.



4905
4906
4907
4908
4909
4910
4911
4912
# File 'lib/pdfcrowd.rb', line 4905

def setPageWatermarkUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setPageWatermarkUrl", "image-to-pdf", "The supported protocols are http:// and https://.", "set_page_watermark_url"), 470);
    end
    
    @fields['page_watermark_url'] = url
    self
end

#setPageWidth(width) ⇒ Object

Set the output page width.

  • width - The value must be specified in inches “in”, millimeters “mm”, centimeters “cm”, pixels “px”, or points “pt”.

  • Returns - The converter object.



4727
4728
4729
4730
4731
4732
4733
4734
# File 'lib/pdfcrowd.rb', line 4727

def setPageWidth(width)
    unless /(?i)^0$|^[0-9]*\.?[0-9]+(pt|px|mm|cm|in)$/.match(width)
        raise Error.new(Pdfcrowd.create_invalid_value_message(width, "setPageWidth", "image-to-pdf", "The value must be specified in inches \"in\", millimeters \"mm\", centimeters \"cm\", pixels \"px\", or points \"pt\".", "set_page_width"), 470);
    end
    
    @fields['page_width'] = width
    self
end

#setPosition(position) ⇒ Object

Set the image position on the page.

  • position - Allowed values are center, top, bottom, left, right, top-left, top-right, bottom-left, bottom-right.

  • Returns - The converter object.



4777
4778
4779
4780
4781
4782
4783
4784
# File 'lib/pdfcrowd.rb', line 4777

def setPosition(position)
    unless /(?i)^(center|top|bottom|left|right|top-left|top-right|bottom-left|bottom-right)$/.match(position)
        raise Error.new(Pdfcrowd.create_invalid_value_message(position, "setPosition", "image-to-pdf", "Allowed values are center, top, bottom, left, right, top-left, top-right, bottom-left, bottom-right.", "set_position"), 470);
    end
    
    @fields['position'] = position
    self
end

#setPrintPageMode(mode) ⇒ Object

Set the mode to print the image on the content area of the page.

  • mode - Allowed values are default, fit, stretch.

  • Returns - The converter object.



4790
4791
4792
4793
4794
4795
4796
4797
# File 'lib/pdfcrowd.rb', line 4790

def setPrintPageMode(mode)
    unless /(?i)^(default|fit|stretch)$/.match(mode)
        raise Error.new(Pdfcrowd.create_invalid_value_message(mode, "setPrintPageMode", "image-to-pdf", "Allowed values are default, fit, stretch.", "set_print_page_mode"), 470);
    end
    
    @fields['print_page_mode'] = mode
    self
end

#setProxy(host, port, user_name, password) ⇒ Object

Specifies an HTTP proxy that the API client library will use to connect to the internet.

  • host - The proxy hostname.

  • port - The proxy port.

  • user_name - The username.

  • password - The password.

  • Returns - The converter object.



5332
5333
5334
5335
# File 'lib/pdfcrowd.rb', line 5332

def setProxy(host, port, user_name, password)
    @helper.setProxy(host, port, user_name, password)
    self
end

#setRemoveBorders(value) ⇒ Object

Remove borders of an image which does not change in color.

  • value - Set to true to remove borders.

  • Returns - The converter object.



4705
4706
4707
4708
# File 'lib/pdfcrowd.rb', line 4705

def setRemoveBorders(value)
    @fields['remove_borders'] = value
    self
end

#setResize(resize) ⇒ Object

Resize the image.

  • resize - The resize percentage or new image dimensions.

  • Returns - The converter object.



4620
4621
4622
4623
# File 'lib/pdfcrowd.rb', line 4620

def setResize(resize)
    @fields['resize'] = resize
    self
end

#setRetryCount(count) ⇒ Object

Specifies the number of automatic retries when the 502 or 503 HTTP status code is received. The status code indicates a temporary network issue. This feature can be disabled by setting to 0.

  • count - Number of retries.

  • Returns - The converter object.



5341
5342
5343
5344
# File 'lib/pdfcrowd.rb', line 5341

def setRetryCount(count)
    @helper.setRetryCount(count)
    self
end

#setRotate(rotate) ⇒ Object

Rotate the image.

  • rotate - The rotation specified in degrees.

  • Returns - The converter object.



4629
4630
4631
4632
# File 'lib/pdfcrowd.rb', line 4629

def setRotate(rotate)
    @fields['rotate'] = rotate
    self
end

#setSubject(subject) ⇒ Object

Set the subject of the PDF.

  • subject - The subject.

  • Returns - The converter object.



5068
5069
5070
5071
# File 'lib/pdfcrowd.rb', line 5068

def setSubject(subject)
    @fields['subject'] = subject
    self
end

#setTag(tag) ⇒ Object

Tag the conversion with a custom value. The tag is used in conversion statistics. A value longer than 32 characters is cut off.

  • tag - A string with the custom tag.

  • Returns - The converter object.



5262
5263
5264
5265
# File 'lib/pdfcrowd.rb', line 5262

def setTag(tag)
    @fields['tag'] = tag
    self
end

#setTitle(title) ⇒ Object

Set the title of the PDF.

  • title - The title.

  • Returns - The converter object.



5059
5060
5061
5062
# File 'lib/pdfcrowd.rb', line 5059

def setTitle(title)
    @fields['title'] = title
    self
end

#setUseHttp(value) ⇒ Object

Specifies if the client communicates over HTTP or HTTPS with Pdfcrowd API. Warning: Using HTTP is insecure as data sent over HTTP is not encrypted. Enable this option only if you know what you are doing.

  • value - Set to true to use HTTP.

  • Returns - The converter object.



5311
5312
5313
5314
# File 'lib/pdfcrowd.rb', line 5311

def setUseHttp(value)
    @helper.setUseHttp(value)
    self
end

#setUserAgent(agent) ⇒ Object

Set a custom user agent HTTP header. It can be useful if you are behind a proxy or a firewall.

  • agent - The user agent string.

  • Returns - The converter object.



5320
5321
5322
5323
# File 'lib/pdfcrowd.rb', line 5320

def setUserAgent(agent)
    @helper.setUserAgent(agent)
    self
end

#setUserPassword(password) ⇒ Object

Protect the PDF with a user password. When a PDF has a user password, it must be supplied in order to view the document and to perform operations allowed by the access permissions.

  • password - The user password.

  • Returns - The converter object.



5014
5015
5016
5017
# File 'lib/pdfcrowd.rb', line 5014

def setUserPassword(password)
    @fields['user_password'] = password
    self
end