Class: Pdfcrowd::HtmlToImageClient

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

Overview

Conversion from HTML to image.

Instance Method Summary collapse

Constructor Details

#initialize(user_name, api_key) ⇒ HtmlToImageClient

Constructor for the Pdfcrowd API client.

  • user_name - Your username at Pdfcrowd.

  • api_key - Your API key.



2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
# File 'lib/pdfcrowd.rb', line 2512

def initialize(user_name, api_key)
    @helper = ConnectionHelper.new(user_name, api_key)
    @fields = {
        'input_format'=>'html',
        'output_format'=>'png'
    }
    @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 can be either a single file or an archive (.tar.gz, .tar.bz2, or .zip). If the HTML document refers to local external assets (images, style sheets, javascript), zip the document together with the assets. The file must exist and not be empty. The file name must have a valid extension.

  • Returns - Byte array containing the conversion output.



2586
2587
2588
2589
2590
2591
2592
2593
# File 'lib/pdfcrowd.rb', line 2586

def convertFile(file)
    if (!(File.file?(file) && !File.zero?(file)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file, "convertFile", "html-to-image", "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 can be either a single file or an archive (.tar.gz, .tar.bz2, or .zip). If the HTML document refers to local external assets (images, style sheets, javascript), zip the document together with the assets. The file must exist and not be empty. The file name must have a valid extension.

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



2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
# File 'lib/pdfcrowd.rb', line 2612

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", "html-to-image", "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 can be either a single file or an archive (.tar.gz, .tar.bz2, or .zip). If the HTML document refers to local external assets (images, style sheets, javascript), zip the document together with the assets. The file must exist and not be empty. The file name must have a valid extension.

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



2599
2600
2601
2602
2603
2604
2605
2606
# File 'lib/pdfcrowd.rb', line 2599

def convertFileToStream(file, out_stream)
    if (!(File.file?(file) && !File.zero?(file)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file, "convertFileToStream::file", "html-to-image", "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

#convertStream(in_stream) ⇒ Object

Convert the contents of an input stream.

  • in_stream - The input stream with source data. The stream can contain either HTML code or an archive (.zip, .tar.gz, .tar.bz2).The archive can contain HTML code and its external assets (images, style sheets, javascript).

  • Returns - Byte array containing the conversion output.



2678
2679
2680
2681
# File 'lib/pdfcrowd.rb', line 2678

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. The stream can contain either HTML code or an archive (.zip, .tar.gz, .tar.bz2).The archive can contain HTML code and its external assets (images, style sheets, javascript).

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



2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
# File 'lib/pdfcrowd.rb', line 2696

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", "html-to-image", "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. The stream can contain either HTML code or an archive (.zip, .tar.gz, .tar.bz2).The archive can contain HTML code and its external assets (images, style sheets, javascript).

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



2687
2688
2689
2690
# File 'lib/pdfcrowd.rb', line 2687

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

#convertString(text) ⇒ Object

Convert a string.

  • text - The string content to convert. The string must not be empty.

  • Returns - Byte array containing the conversion output.



2632
2633
2634
2635
2636
2637
2638
2639
# File 'lib/pdfcrowd.rb', line 2632

def convertString(text)
    if (!(!text.nil? && !text.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(text, "convertString", "html-to-image", "The string must not be empty.", "convert_string"), 470);
    end
    
    @fields['text'] = text
    @helper.post(@fields, @files, @raw_data)
end

#convertStringToFile(text, file_path) ⇒ Object

Convert a string and write the output to a file.

  • text - The string content to convert. The string must not be empty.

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



2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
# File 'lib/pdfcrowd.rb', line 2658

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

#convertStringToStream(text, out_stream) ⇒ Object

Convert a string and write the output to an output stream.

  • text - The string content to convert. The string must not be empty.

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



2645
2646
2647
2648
2649
2650
2651
2652
# File 'lib/pdfcrowd.rb', line 2645

def convertStringToStream(text, out_stream)
    if (!(!text.nil? && !text.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(text, "convertStringToStream::text", "html-to-image", "The string must not be empty.", "convert_string_to_stream"), 470);
    end
    
    @fields['text'] = text
    @helper.post(@fields, @files, @raw_data, out_stream)
end

#convertUrl(url) ⇒ Object

Convert a web page.

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

  • Returns - Byte array containing the conversion output.



2540
2541
2542
2543
2544
2545
2546
2547
# File 'lib/pdfcrowd.rb', line 2540

def convertUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "convertUrl", "html-to-image", "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 a web page and write the result to a local file.

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

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



2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
# File 'lib/pdfcrowd.rb', line 2566

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", "html-to-image", "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 a web page and write the result to an output stream.

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

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



2553
2554
2555
2556
2557
2558
2559
2560
# File 'lib/pdfcrowd.rb', line 2553

def convertUrlToStream(url, out_stream)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "convertUrlToStream::url", "html-to-image", "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.



3169
3170
3171
# File 'lib/pdfcrowd.rb', line 3169

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.



3154
3155
3156
# File 'lib/pdfcrowd.rb', line 3154

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

#getJobIdObject

Get the job id.

  • Returns - The unique job identifier.



3175
3176
3177
# File 'lib/pdfcrowd.rb', line 3175

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

#getOutputSizeObject

Get the size of the output in bytes.

  • Returns - The count of bytes.



3181
3182
3183
# File 'lib/pdfcrowd.rb', line 3181

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.



3163
3164
3165
# File 'lib/pdfcrowd.rb', line 3163

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

#getVersionObject

Get the version details.

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



3187
3188
3189
# File 'lib/pdfcrowd.rb', line 3187

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

#setAutoDetectElementToConvert(value) ⇒ Object

The main HTML element for conversion is detected automatically.

  • value - Set to true to detect the main element.

  • Returns - The converter object.



3049
3050
3051
3052
# File 'lib/pdfcrowd.rb', line 3049

def setAutoDetectElementToConvert(value)
    @fields['auto_detect_element_to_convert'] = value
    self
end

#setBackgroundColor(color) ⇒ Object

The output image background color.

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

  • Returns - The converter object.



2764
2765
2766
2767
2768
2769
2770
2771
# File 'lib/pdfcrowd.rb', line 2764

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

#setBlockAds(value) ⇒ Object

Try to block ads. Enabling this option can produce smaller output and speed up the conversion.

  • value - Set to true to block ads in web pages.

  • Returns - The converter object.



2844
2845
2846
2847
# File 'lib/pdfcrowd.rb', line 2844

def setBlockAds(value)
    @fields['block_ads'] = value
    self
end

#setClientCertificate(certificate) ⇒ Object

A client certificate to authenticate Pdfcrowd converter on your web server. The certificate is used for two-way SSL/TLS authentication and adds extra security.

  • certificate - The file must be in PKCS12 format. The file must exist and not be empty.

  • Returns - The converter object.



3230
3231
3232
3233
3234
3235
3236
3237
# File 'lib/pdfcrowd.rb', line 3230

def setClientCertificate(certificate)
    if (!(File.file?(certificate) && !File.zero?(certificate)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(certificate, "setClientCertificate", "html-to-image", "The file must exist and not be empty.", "set_client_certificate"), 470);
    end
    
    @files['client_certificate'] = certificate
    self
end

#setClientCertificatePassword(password) ⇒ Object

A password for PKCS12 file with a client certificate if it is needed.

  • password -

  • Returns - The converter object.



3243
3244
3245
3246
# File 'lib/pdfcrowd.rb', line 3243

def setClientCertificatePassword(password)
    @fields['client_certificate_password'] = password
    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 24.04, 20.10, 18.10, latest.

  • Returns - The converter object.



3265
3266
3267
3268
3269
3270
3271
3272
# File 'lib/pdfcrowd.rb', line 3265

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

#setCookies(cookies) ⇒ Object

Set cookies that are sent in Pdfcrowd HTTP requests.

  • cookies - The cookie string.

  • Returns - The converter object.



2900
2901
2902
2903
# File 'lib/pdfcrowd.rb', line 2900

def setCookies(cookies)
    @fields['cookies'] = cookies
    self
end

#setCustomCss(css) ⇒ Object

Apply custom CSS to the input HTML document. It allows you to modify the visual appearance and layout of your HTML content dynamically. Tip: Using !important in custom CSS provides a way to prioritize and override conflicting styles.

  • css - A string containing valid CSS. The string must not be empty.

  • Returns - The converter object.



2945
2946
2947
2948
2949
2950
2951
2952
# File 'lib/pdfcrowd.rb', line 2945

def setCustomCss(css)
    if (!(!css.nil? && !css.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(css, "setCustomCss", "html-to-image", "The string must not be empty.", "set_custom_css"), 470);
    end
    
    @fields['custom_css'] = css
    self
end

#setCustomHttpHeader(header) ⇒ Object

Set a custom HTTP header that is sent in Pdfcrowd HTTP requests.

  • header - A string containing the header name and value separated by a colon.

  • Returns - The converter object.



2984
2985
2986
2987
2988
2989
2990
2991
# File 'lib/pdfcrowd.rb', line 2984

def setCustomHttpHeader(header)
    unless /^.+:.+$/.match(header)
        raise Error.new(Pdfcrowd.create_invalid_value_message(header, "setCustomHttpHeader", "html-to-image", "A string containing the header name and value separated by a colon.", "set_custom_http_header"), 470);
    end
    
    @fields['custom_http_header'] = header
    self
end

#setCustomJavascript(javascript) ⇒ Object

Run a custom JavaScript after the document is loaded and ready to print. The script is intended for post-load DOM manipulation (add/remove elements, update CSS, …). In addition to the standard browser APIs, the custom JavaScript code can use helper functions from our JavaScript library.

  • javascript - A string containing a JavaScript code. The string must not be empty.

  • Returns - The converter object.



2958
2959
2960
2961
2962
2963
2964
2965
# File 'lib/pdfcrowd.rb', line 2958

def setCustomJavascript(javascript)
    if (!(!javascript.nil? && !javascript.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(javascript, "setCustomJavascript", "html-to-image", "The string must not be empty.", "set_custom_javascript"), 470);
    end
    
    @fields['custom_javascript'] = javascript
    self
end

#setDataAutoEscape(value) ⇒ Object

Auto escape HTML symbols in the input data before placing them into the output.

  • value - Set to true to turn auto escaping on.

  • Returns - The converter object.



3120
3121
3122
3123
# File 'lib/pdfcrowd.rb', line 3120

def setDataAutoEscape(value)
    @fields['data_auto_escape'] = value
    self
end

#setDataEncoding(encoding) ⇒ Object

Set the encoding of the data file set by setDataFile.

  • encoding - The data file encoding.

  • Returns - The converter object.



3102
3103
3104
3105
# File 'lib/pdfcrowd.rb', line 3102

def setDataEncoding(encoding)
    @fields['data_encoding'] = encoding
    self
end

#setDataFile(data_file) ⇒ Object

Load the input data for template rendering from the specified file. The data format can be JSON, XML, YAML or CSV.

  • data_file - The file path to a local file containing the input data.

  • Returns - The converter object.



3080
3081
3082
3083
# File 'lib/pdfcrowd.rb', line 3080

def setDataFile(data_file)
    @files['data_file'] = data_file
    self
end

#setDataFormat(data_format) ⇒ Object

Specify the input data format.

  • data_format - The data format. Allowed values are auto, json, xml, yaml, csv.

  • Returns - The converter object.



3089
3090
3091
3092
3093
3094
3095
3096
# File 'lib/pdfcrowd.rb', line 3089

def setDataFormat(data_format)
    unless /(?i)^(auto|json|xml|yaml|csv)$/.match(data_format)
        raise Error.new(Pdfcrowd.create_invalid_value_message(data_format, "setDataFormat", "html-to-image", "Allowed values are auto, json, xml, yaml, csv.", "set_data_format"), 470);
    end
    
    @fields['data_format'] = data_format
    self
end

#setDataIgnoreUndefined(value) ⇒ Object

Ignore undefined variables in the HTML template. The default mode is strict so any undefined variable causes the conversion to fail. You can use if variable is defined % to check if the variable is defined.

  • value - Set to true to ignore undefined variables.

  • Returns - The converter object.



3111
3112
3113
3114
# File 'lib/pdfcrowd.rb', line 3111

def setDataIgnoreUndefined(value)
    @fields['data_ignore_undefined'] = value
    self
end

#setDataOptions(options) ⇒ Object

Set the advanced data options:csv_delimiter - The CSV data delimiter, the default is ,.xml_remove_root - Remove the root XML element from the input data.data_root - The name of the root element inserted into the input data without a root node (e.g. CSV), the default is data.

  • options - Comma separated list of options.

  • Returns - The converter object.



3138
3139
3140
3141
# File 'lib/pdfcrowd.rb', line 3138

def setDataOptions(options)
    @fields['data_options'] = options
    self
end

#setDataString(data_string) ⇒ Object

Set the input data for template rendering. The data format can be JSON, XML, YAML or CSV.

  • data_string - The input data string.

  • Returns - The converter object.



3071
3072
3073
3074
# File 'lib/pdfcrowd.rb', line 3071

def setDataString(data_string)
    @fields['data_string'] = data_string
    self
end

#setDataTrimBlocks(value) ⇒ Object

Auto trim whitespace around each template command block.

  • value - Set to true to turn auto trimming on.

  • Returns - The converter object.



3129
3130
3131
3132
# File 'lib/pdfcrowd.rb', line 3129

def setDataTrimBlocks(value)
    @fields['data_trim_blocks'] = value
    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.



3147
3148
3149
3150
# File 'lib/pdfcrowd.rb', line 3147

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

#setDefaultEncoding(encoding) ⇒ Object

Set the default HTML content text encoding.

  • encoding - The text encoding of the HTML content.

  • Returns - The converter object.



2853
2854
2855
2856
# File 'lib/pdfcrowd.rb', line 2853

def setDefaultEncoding(encoding)
    @fields['default_encoding'] = encoding
    self
end

#setDisableImageLoading(value) ⇒ Object

Do not load images.

  • value - Set to true to disable loading of images.

  • Returns - The converter object.



2804
2805
2806
2807
# File 'lib/pdfcrowd.rb', line 2804

def setDisableImageLoading(value)
    @fields['disable_image_loading'] = value
    self
end

#setDisableJavascript(value) ⇒ Object

Do not execute JavaScript.

  • value - Set to true to disable JavaScript in web pages.

  • Returns - The converter object.



2795
2796
2797
2798
# File 'lib/pdfcrowd.rb', line 2795

def setDisableJavascript(value)
    @fields['disable_javascript'] = value
    self
end

#setDisableRemoteFonts(value) ⇒ Object

Disable loading fonts from remote sources.

  • value - Set to true disable loading remote fonts.

  • Returns - The converter object.



2813
2814
2815
2816
# File 'lib/pdfcrowd.rb', line 2813

def setDisableRemoteFonts(value)
    @fields['disable_remote_fonts'] = value
    self
end

#setElementToConvert(selectors) ⇒ Object

Convert only the specified element from the main document and its children. The element is specified by one or more CSS selectors. If the element is not found, the conversion fails. If multiple elements are found, the first one is used.

  • selectors - One or more CSS selectors separated by commas. The string must not be empty.

  • Returns - The converter object.



3010
3011
3012
3013
3014
3015
3016
3017
# File 'lib/pdfcrowd.rb', line 3010

def setElementToConvert(selectors)
    if (!(!selectors.nil? && !selectors.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(selectors, "setElementToConvert", "html-to-image", "The string must not be empty.", "set_element_to_convert"), 470);
    end
    
    @fields['element_to_convert'] = selectors
    self
end

#setElementToConvertMode(mode) ⇒ Object

Specify the DOM handling when only a part of the document is converted. This can affect the CSS rules used.

  • mode - Allowed values are cut-out, remove-siblings, hide-siblings.

  • Returns - The converter object.



3023
3024
3025
3026
3027
3028
3029
3030
# File 'lib/pdfcrowd.rb', line 3023

def setElementToConvertMode(mode)
    unless /(?i)^(cut-out|remove-siblings|hide-siblings)$/.match(mode)
        raise Error.new(Pdfcrowd.create_invalid_value_message(mode, "setElementToConvertMode", "html-to-image", "Allowed values are cut-out, remove-siblings, hide-siblings.", "set_element_to_convert_mode"), 470);
    end
    
    @fields['element_to_convert_mode'] = mode
    self
end

#setFailOnAnyUrlError(fail_on_error) ⇒ Object

Abort the conversion if any of the sub-request HTTP status code is greater than or equal to 400 or if some sub-requests are still pending. See details in a debug log.

  • fail_on_error - Set to true to abort the conversion.

  • Returns - The converter object.



2927
2928
2929
2930
# File 'lib/pdfcrowd.rb', line 2927

def setFailOnAnyUrlError(fail_on_error)
    @fields['fail_on_any_url_error'] = fail_on_error
    self
end

#setFailOnMainUrlError(fail_on_error) ⇒ Object

Abort the conversion if the main URL HTTP status code is greater than or equal to 400.

  • fail_on_error - Set to true to abort the conversion.

  • Returns - The converter object.



2918
2919
2920
2921
# File 'lib/pdfcrowd.rb', line 2918

def setFailOnMainUrlError(fail_on_error)
    @fields['fail_on_main_url_error'] = fail_on_error
    self
end

#setHttpAuth(user_name, password) ⇒ Object

Set credentials to access HTTP base authentication protected websites.

  • user_name - Set the HTTP authentication user name.

  • password - Set the HTTP authentication password.

  • Returns - The converter object.



2890
2891
2892
2893
2894
# File 'lib/pdfcrowd.rb', line 2890

def setHttpAuth(user_name, password)
    setHttpAuthUserName(user_name)
    setHttpAuthPassword(password)
    self
end

#setHttpAuthPassword(password) ⇒ Object

Set the HTTP authentication password.

  • password - The password.

  • Returns - The converter object.



2880
2881
2882
2883
# File 'lib/pdfcrowd.rb', line 2880

def setHttpAuthPassword(password)
    @fields['http_auth_password'] = password
    self
end

#setHttpAuthUserName(user_name) ⇒ Object

Set the HTTP authentication user name.

  • user_name - The user name.

  • Returns - The converter object.



2871
2872
2873
2874
# File 'lib/pdfcrowd.rb', line 2871

def setHttpAuthUserName(user_name)
    @fields['http_auth_user_name'] = user_name
    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.



3204
3205
3206
3207
3208
3209
3210
3211
# File 'lib/pdfcrowd.rb', line 3204

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", "html-to-image", "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.



3217
3218
3219
3220
3221
3222
3223
3224
# File 'lib/pdfcrowd.rb', line 3217

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", "html-to-image", "The value must have format DOMAIN_OR_IP_ADDRESS:PORT.", "set_https_proxy"), 470);
    end
    
    @fields['https_proxy'] = proxy
    self
end

#setJavascriptDelay(delay) ⇒ Object

Wait the specified number of milliseconds to finish all JavaScript after the document is loaded. Your API license defines the maximum wait time by “Max Delay” parameter.

  • delay - The number of milliseconds to wait. Must be a positive integer number or 0.

  • Returns - The converter object.



2997
2998
2999
3000
3001
3002
3003
3004
# File 'lib/pdfcrowd.rb', line 2997

def setJavascriptDelay(delay)
    if (!(Integer(delay) >= 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(delay, "setJavascriptDelay", "html-to-image", "Must be a positive integer number or 0.", "set_javascript_delay"), 470);
    end
    
    @fields['javascript_delay'] = delay
    self
end

#setLoadIframes(iframes) ⇒ Object

Specifies how iframes are handled.

  • iframes - Allowed values are all, same-origin, none.

  • Returns - The converter object.



2831
2832
2833
2834
2835
2836
2837
2838
# File 'lib/pdfcrowd.rb', line 2831

def setLoadIframes(iframes)
    unless /(?i)^(all|same-origin|none)$/.match(iframes)
        raise Error.new(Pdfcrowd.create_invalid_value_message(iframes, "setLoadIframes", "html-to-image", "Allowed values are all, same-origin, none.", "set_load_iframes"), 470);
    end
    
    @fields['load_iframes'] = iframes
    self
end

#setLocale(locale) ⇒ Object

Set the locale for the conversion. This may affect the output format of dates, times and numbers.

  • locale - The locale code according to ISO 639.

  • Returns - The converter object.



2862
2863
2864
2865
# File 'lib/pdfcrowd.rb', line 2862

def setLocale(locale)
    @fields['locale'] = locale
    self
end

#setMaxLoadingTime(max_time) ⇒ Object

Set the maximum time to load the page and its resources. After this time, all requests will be considered successful. This can be useful to ensure that the conversion does not timeout. Use this method if there is no other way to fix page loading.

  • max_time - The number of seconds to wait. The value must be in the range 10-30.

  • Returns - The converter object.



3252
3253
3254
3255
3256
3257
3258
3259
# File 'lib/pdfcrowd.rb', line 3252

def setMaxLoadingTime(max_time)
    if (!(Integer(max_time) >= 10 && Integer(max_time) <= 30))
        raise Error.new(Pdfcrowd.create_invalid_value_message(max_time, "setMaxLoadingTime", "html-to-image", "The value must be in the range 10-30.", "set_max_loading_time"), 470);
    end
    
    @fields['max_loading_time'] = max_time
    self
end

#setNoBackground(value) ⇒ Object

Do not print the background graphics.

  • value - Set to true to disable the background graphics.

  • Returns - The converter object.



2786
2787
2788
2789
# File 'lib/pdfcrowd.rb', line 2786

def setNoBackground(value)
    @fields['no_background'] = value
    self
end

#setNoXpdfcrowdHeader(value) ⇒ Object

Do not send the X-Pdfcrowd HTTP header in Pdfcrowd HTTP requests.

  • value - Set to true to disable sending X-Pdfcrowd HTTP header.

  • Returns - The converter object.



2936
2937
2938
2939
# File 'lib/pdfcrowd.rb', line 2936

def setNoXpdfcrowdHeader(value)
    @fields['no_xpdfcrowd_header'] = value
    self
end

#setOnLoadJavascript(javascript) ⇒ Object

Run a custom JavaScript right after the document is loaded. The script is intended for early DOM manipulation (add/remove elements, update CSS, …). In addition to the standard browser APIs, the custom JavaScript code can use helper functions from our JavaScript library.

  • javascript - A string containing a JavaScript code. The string must not be empty.

  • Returns - The converter object.



2971
2972
2973
2974
2975
2976
2977
2978
# File 'lib/pdfcrowd.rb', line 2971

def setOnLoadJavascript(javascript)
    if (!(!javascript.nil? && !javascript.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(javascript, "setOnLoadJavascript", "html-to-image", "The string must not be empty.", "set_on_load_javascript"), 470);
    end
    
    @fields['on_load_javascript'] = javascript
    self
end

#setOutputFormat(output_format) ⇒ Object

The format of the output file.

  • output_format - Allowed values are png, jpg, gif, tiff, bmp, ico, ppm, pgm, pbm, pnm, psb, pct, ras, tga, sgi, sun, webp.

  • Returns - The converter object.



2527
2528
2529
2530
2531
2532
2533
2534
# File 'lib/pdfcrowd.rb', line 2527

def setOutputFormat(output_format)
    unless /(?i)^(png|jpg|gif|tiff|bmp|ico|ppm|pgm|pbm|pnm|psb|pct|ras|tga|sgi|sun|webp)$/.match(output_format)
        raise Error.new(Pdfcrowd.create_invalid_value_message(output_format, "setOutputFormat", "html-to-image", "Allowed values are png, jpg, gif, tiff, bmp, ico, ppm, pgm, pbm, pnm, psb, pct, ras, tga, sgi, sun, webp.", "set_output_format"), 470);
    end
    
    @fields['output_format'] = output_format
    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.



3300
3301
3302
3303
# File 'lib/pdfcrowd.rb', line 3300

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

#setReadabilityEnhancements(enhancements) ⇒ Object

The input HTML is automatically enhanced to improve the readability.

  • enhancements - Allowed values are none, readability-v1, readability-v2, readability-v3, readability-v4.

  • Returns - The converter object.



3058
3059
3060
3061
3062
3063
3064
3065
# File 'lib/pdfcrowd.rb', line 3058

def setReadabilityEnhancements(enhancements)
    unless /(?i)^(none|readability-v1|readability-v2|readability-v3|readability-v4)$/.match(enhancements)
        raise Error.new(Pdfcrowd.create_invalid_value_message(enhancements, "setReadabilityEnhancements", "html-to-image", "Allowed values are none, readability-v1, readability-v2, readability-v3, readability-v4.", "set_readability_enhancements"), 470);
    end
    
    @fields['readability_enhancements'] = enhancements
    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.



3309
3310
3311
3312
# File 'lib/pdfcrowd.rb', line 3309

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

#setScaleFactor(factor) ⇒ Object

Set the scaling factor (zoom) for the output image.

  • factor - The percentage value. Must be a positive integer number.

  • Returns - The converter object.



2751
2752
2753
2754
2755
2756
2757
2758
# File 'lib/pdfcrowd.rb', line 2751

def setScaleFactor(factor)
    if (!(Integer(factor) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(factor, "setScaleFactor", "html-to-image", "Must be a positive integer number.", "set_scale_factor"), 470);
    end
    
    @fields['scale_factor'] = factor
    self
end

#setScreenshotHeight(height) ⇒ Object

Set the output image height in pixels. If it is not specified, actual document height is used.

  • height - Must be a positive integer number.

  • Returns - The converter object.



2738
2739
2740
2741
2742
2743
2744
2745
# File 'lib/pdfcrowd.rb', line 2738

def setScreenshotHeight(height)
    if (!(Integer(height) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(height, "setScreenshotHeight", "html-to-image", "Must be a positive integer number.", "set_screenshot_height"), 470);
    end
    
    @fields['screenshot_height'] = height
    self
end

#setScreenshotWidth(width) ⇒ Object

Set the output image width in pixels.

  • width - The value must be in the range 96-65000.

  • Returns - The converter object.



2725
2726
2727
2728
2729
2730
2731
2732
# File 'lib/pdfcrowd.rb', line 2725

def setScreenshotWidth(width)
    if (!(Integer(width) >= 96 && Integer(width) <= 65000))
        raise Error.new(Pdfcrowd.create_invalid_value_message(width, "setScreenshotWidth", "html-to-image", "The value must be in the range 96-65000.", "set_screenshot_width"), 470);
    end
    
    @fields['screenshot_width'] = width
    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.



3195
3196
3197
3198
# File 'lib/pdfcrowd.rb', line 3195

def setTag(tag)
    @fields['tag'] = tag
    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.



3279
3280
3281
3282
# File 'lib/pdfcrowd.rb', line 3279

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

#setUseMobileUserAgent(value) ⇒ Object

Use a mobile user agent.

  • value - Set to true to use a mobile user agent.

  • Returns - The converter object.



2822
2823
2824
2825
# File 'lib/pdfcrowd.rb', line 2822

def setUseMobileUserAgent(value)
    @fields['use_mobile_user_agent'] = value
    self
end

#setUsePrintMedia(value) ⇒ Object

Use the print version of the page if available (@media print).

  • value - Set to true to use the print version of the page.

  • Returns - The converter object.



2777
2778
2779
2780
# File 'lib/pdfcrowd.rb', line 2777

def setUsePrintMedia(value)
    @fields['use_print_media'] = 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.



3288
3289
3290
3291
# File 'lib/pdfcrowd.rb', line 3288

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

#setVerifySslCertificates(value) ⇒ Object

Do not allow insecure HTTPS connections.

  • value - Set to true to enable SSL certificate verification.

  • Returns - The converter object.



2909
2910
2911
2912
# File 'lib/pdfcrowd.rb', line 2909

def setVerifySslCertificates(value)
    @fields['verify_ssl_certificates'] = value
    self
end

#setWaitForElement(selectors) ⇒ Object

Wait for the specified element in a source document. The element is specified by one or more CSS selectors. The element is searched for in the main document and all iframes. If the element is not found, the conversion fails. Your API license defines the maximum wait time by “Max Delay” parameter.

  • selectors - One or more CSS selectors separated by commas. The string must not be empty.

  • Returns - The converter object.



3036
3037
3038
3039
3040
3041
3042
3043
# File 'lib/pdfcrowd.rb', line 3036

def setWaitForElement(selectors)
    if (!(!selectors.nil? && !selectors.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(selectors, "setWaitForElement", "html-to-image", "The string must not be empty.", "set_wait_for_element"), 470);
    end
    
    @fields['wait_for_element'] = selectors
    self
end

#setZipMainFilename(filename) ⇒ Object

Set the file name of the main HTML document stored in the input archive. If not specified, the first HTML file in the archive is used for conversion. Use this method if the input archive contains multiple HTML documents.

  • filename - The file name.

  • Returns - The converter object.



2716
2717
2718
2719
# File 'lib/pdfcrowd.rb', line 2716

def setZipMainFilename(filename)
    @fields['zip_main_filename'] = filename
    self
end