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.



4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
# File 'lib/pdfcrowd.rb', line 4376

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.



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

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.



4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
# File 'lib/pdfcrowd.rb', line 4463

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.



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

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.



4483
4484
4485
4486
# File 'lib/pdfcrowd.rb', line 4483

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.



4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
# File 'lib/pdfcrowd.rb', line 4501

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.



4492
4493
4494
4495
# File 'lib/pdfcrowd.rb', line 4492

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.



4521
4522
4523
4524
# File 'lib/pdfcrowd.rb', line 4521

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.



4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
# File 'lib/pdfcrowd.rb', line 4539

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.



4530
4531
4532
4533
# File 'lib/pdfcrowd.rb', line 4530

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.



4391
4392
4393
4394
4395
4396
4397
4398
# File 'lib/pdfcrowd.rb', line 4391

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.



4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
# File 'lib/pdfcrowd.rb', line 4417

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.



4404
4405
4406
4407
4408
4409
4410
4411
# File 'lib/pdfcrowd.rb', line 4404

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.



5175
5176
5177
# File 'lib/pdfcrowd.rb', line 5175

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.



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

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

#getJobIdObject

Get the job id.

  • Returns - The unique job identifier.



5181
5182
5183
# File 'lib/pdfcrowd.rb', line 5181

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

#getOutputSizeObject

Get the size of the output in bytes.

  • Returns - The count of bytes.



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

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.



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

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

#getVersionObject

Get the version details.

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



5193
5194
5195
# File 'lib/pdfcrowd.rb', line 5193

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.



5016
5017
5018
5019
# File 'lib/pdfcrowd.rb', line 5016

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.



5135
5136
5137
5138
# File 'lib/pdfcrowd.rb', line 5135

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.



5236
5237
5238
5239
5240
5241
5242
5243
# File 'lib/pdfcrowd.rb', line 5236

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.



4632
4633
4634
4635
4636
4637
4638
# File 'lib/pdfcrowd.rb', line 4632

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.



4616
4617
4618
4619
4620
4621
4622
4623
# File 'lib/pdfcrowd.rb', line 4616

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.



4603
4604
4605
4606
4607
4608
4609
4610
# File 'lib/pdfcrowd.rb', line 4603

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.



4577
4578
4579
4580
4581
4582
4583
4584
# File 'lib/pdfcrowd.rb', line 4577

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.



4590
4591
4592
4593
4594
4595
4596
4597
# File 'lib/pdfcrowd.rb', line 4590

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.



5153
5154
5155
5156
# File 'lib/pdfcrowd.rb', line 5153

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.



5144
5145
5146
5147
# File 'lib/pdfcrowd.rb', line 5144

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.



4822
4823
4824
4825
# File 'lib/pdfcrowd.rb', line 4822

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.



4944
4945
4946
4947
# File 'lib/pdfcrowd.rb', line 4944

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.



5126
5127
5128
5129
# File 'lib/pdfcrowd.rb', line 5126

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.



5108
5109
5110
5111
# File 'lib/pdfcrowd.rb', line 5108

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.



5099
5100
5101
5102
# File 'lib/pdfcrowd.rb', line 5099

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.



5117
5118
5119
5120
# File 'lib/pdfcrowd.rb', line 5117

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.



5210
5211
5212
5213
5214
5215
5216
5217
# File 'lib/pdfcrowd.rb', line 5210

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.



5223
5224
5225
5226
5227
5228
5229
5230
# File 'lib/pdfcrowd.rb', line 5223

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.



5073
5074
5075
5076
5077
5078
5079
5080
# File 'lib/pdfcrowd.rb', line 5073

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.



5086
5087
5088
5089
5090
5091
5092
5093
# File 'lib/pdfcrowd.rb', line 5086

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.



5060
5061
5062
5063
5064
5065
5066
5067
# File 'lib/pdfcrowd.rb', line 5060

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.



5025
5026
5027
5028
# File 'lib/pdfcrowd.rb', line 5025

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.



4935
4936
4937
4938
# File 'lib/pdfcrowd.rb', line 4935

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.



4768
4769
4770
4771
4772
4773
4774
4775
# File 'lib/pdfcrowd.rb', line 4768

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.



4781
4782
4783
4784
4785
4786
4787
4788
# File 'lib/pdfcrowd.rb', line 4781

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.



4755
4756
4757
4758
4759
4760
4761
4762
# File 'lib/pdfcrowd.rb', line 4755

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.



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

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.



4909
4910
4911
4912
4913
4914
4915
4916
# File 'lib/pdfcrowd.rb', line 4909

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.



4922
4923
4924
4925
4926
4927
4928
4929
# File 'lib/pdfcrowd.rb', line 4922

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.



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

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.



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

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.



4989
4990
4991
4992
# File 'lib/pdfcrowd.rb', line 4989

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.



4980
4981
4982
4983
# File 'lib/pdfcrowd.rb', line 4980

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.



4971
4972
4973
4974
# File 'lib/pdfcrowd.rb', line 4971

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.



4703
4704
4705
4706
4707
4708
4709
4710
# File 'lib/pdfcrowd.rb', line 4703

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.



4962
4963
4964
4965
# File 'lib/pdfcrowd.rb', line 4962

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.



4883
4884
4885
4886
4887
4888
4889
4890
# File 'lib/pdfcrowd.rb', line 4883

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.



4809
4810
4811
4812
4813
4814
4815
4816
# File 'lib/pdfcrowd.rb', line 4809

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.



4896
4897
4898
4899
4900
4901
4902
4903
# File 'lib/pdfcrowd.rb', line 4896

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.



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

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.



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

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.



5034
5035
5036
5037
5038
5039
5040
5041
# File 'lib/pdfcrowd.rb', line 5034

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.



4797
4798
4799
4800
4801
4802
4803
# File 'lib/pdfcrowd.rb', line 4797

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.



5047
5048
5049
5050
5051
5052
5053
5054
# File 'lib/pdfcrowd.rb', line 5047

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



5271
5272
5273
5274
# File 'lib/pdfcrowd.rb', line 5271

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.



4644
4645
4646
4647
# File 'lib/pdfcrowd.rb', line 4644

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.



4559
4560
4561
4562
# File 'lib/pdfcrowd.rb', line 4559

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

#setRetryCount(count) ⇒ Object

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

  • count - Number of retries.

  • Returns - The converter object.



5280
5281
5282
5283
# File 'lib/pdfcrowd.rb', line 5280

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

#setRotate(rotate) ⇒ Object

Rotate the image.

  • rotate - The rotation specified in degrees.

  • Returns - The converter object.



4568
4569
4570
4571
# File 'lib/pdfcrowd.rb', line 4568

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

#setSubject(subject) ⇒ Object

Set the subject of the PDF.

  • subject - The subject.

  • Returns - The converter object.



5007
5008
5009
5010
# File 'lib/pdfcrowd.rb', line 5007

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.



5201
5202
5203
5204
# File 'lib/pdfcrowd.rb', line 5201

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

#setTitle(title) ⇒ Object

Set the title of the PDF.

  • title - The title.

  • Returns - The converter object.



4998
4999
5000
5001
# File 'lib/pdfcrowd.rb', line 4998

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.



5250
5251
5252
5253
# File 'lib/pdfcrowd.rb', line 5250

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.



5259
5260
5261
5262
# File 'lib/pdfcrowd.rb', line 5259

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.



4953
4954
4955
4956
# File 'lib/pdfcrowd.rb', line 4953

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