class Pdfcrowd::PdfToPdfClient

Conversion from PDF to PDF.

Public Class Methods

new(user_name, api_key) click to toggle source

Constructor for the Pdfcrowd API client.

  • user_name - Your username at Pdfcrowd.

  • api_key - Your API key.

# File lib/pdfcrowd.rb, line 3471
def initialize(user_name, api_key)
    @helper = ConnectionHelper.new(user_name, api_key)
    @fields = {
        'input_format'=>'pdf',
        'output_format'=>'pdf'
    }
    @file_id = 1
    @files = {}
    @raw_data = {}
end

Public Instance Methods

addPdfFile(file_path) click to toggle source

Add a PDF file to the list of the input PDFs.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3525
def addPdfFile(file_path)
    if (!(File.file?(file_path) && !File.zero?(file_path)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "addPdfFile", "pdf-to-pdf", "The file must exist and not be empty.", "add_pdf_file"), 470);
    end
    
    @files['f_%s' % @file_id] = file_path
    @file_id += 1
    self
end
addPdfRawData(data) click to toggle source

Add in-memory raw PDF data to the list of the input PDFs.Typical usage is for adding PDF created by another Pdfcrowd converter. Example in PHP: $clientPdf2Pdf->addPdfRawData($clientHtml2Pdf->convertUrl('www.example.com'));

  • data - The raw PDF data. The input data must be PDF content.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3539
def addPdfRawData(data)
    if (!(!data.nil? && data.length > 300 and data[0...4] == '%PDF'))
        raise Error.new(Pdfcrowd.create_invalid_value_message("raw PDF data", "addPdfRawData", "pdf-to-pdf", "The input data must be PDF content.", "add_pdf_raw_data"), 470);
    end
    
    @raw_data['f_%s' % @file_id] = data
    @file_id += 1
    self
end
convert() click to toggle source

Perform an action on the input files.

  • Returns - Byte array containing the output PDF.

# File lib/pdfcrowd.rb, line 3497
def convert()
    @helper.post(@fields, @files, @raw_data)
end
convertToFile(file_path) click to toggle source

Perform an action on the input files and write the output PDF to a file.

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

# File lib/pdfcrowd.rb, line 3511
def convertToFile(file_path)
    if (!(!file_path.nil? && !file_path.empty?))
        raise Error.new(Pdfcrowd.create_invalid_value_message(file_path, "convertToFile", "pdf-to-pdf", "The string must not be empty.", "convert_to_file"), 470);
    end
    
    output_file = open(file_path, "wb")
    convertToStream(output_file)
    output_file.close()
end
convertToStream(out_stream) click to toggle source

Perform an action on the input files and write the output PDF to an output stream.

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

# File lib/pdfcrowd.rb, line 3504
def convertToStream(out_stream)
    @helper.post(@fields, @files, @raw_data, out_stream)
end
getConsumedCreditCount() click to toggle source

Get the number of credits consumed by the last conversion.

  • Returns - The number of credits.

# File lib/pdfcrowd.rb, line 3919
def getConsumedCreditCount()
    return @helper.getConsumedCreditCount()
end
getDebugLogUrl() click to toggle source

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

  • Returns - The link to the debug log.

# File lib/pdfcrowd.rb, line 3904
def getDebugLogUrl()
    return @helper.getDebugLogUrl()
end
getJobId() click to toggle source

Get the job id.

  • Returns - The unique job identifier.

# File lib/pdfcrowd.rb, line 3925
def getJobId()
    return @helper.getJobId()
end
getOutputSize() click to toggle source

Get the size of the output in bytes.

  • Returns - The count of bytes.

# File lib/pdfcrowd.rb, line 3937
def getOutputSize()
    return @helper.getOutputSize()
end
getPageCount() click to toggle source

Get the total number of pages in the output document.

  • Returns - The page count.

# File lib/pdfcrowd.rb, line 3931
def getPageCount()
    return @helper.getPageCount()
end
getRemainingCreditCount() click to toggle source

Get the number of conversion credits available in your account. This method can only be called after a call to one of the convertXYZ 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.

# File lib/pdfcrowd.rb, line 3913
def getRemainingCreditCount()
    return @helper.getRemainingCreditCount()
end
getVersion() click to toggle source

Get the version details.

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

# File lib/pdfcrowd.rb, line 3943
def getVersion()
    return "client " + CLIENT_VERSION + ", API v2, converter " + @helper.getConverterVersion()
end
setAction(action) click to toggle source

Specifies the action to be performed on the input PDFs.

  • action - Allowed values are join, shuffle.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3486
def setAction(action)
    unless /(?i)^(join|shuffle)$/.match(action)
        raise Error.new(Pdfcrowd.create_invalid_value_message(action, "setAction", "pdf-to-pdf", "Allowed values are join, shuffle.", "set_action"), 470);
    end
    
    @fields['action'] = action
    self
end
setAuthor(author) click to toggle source

Set the author of the PDF.

  • author - The author.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3738
def setAuthor(author)
    @fields['author'] = author
    self
end
setCenterWindow(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3870
def setCenterWindow(value)
    @fields['center_window'] = value
    self
end
setConverterVersion(version) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3960
def setConverterVersion(version)
    unless /(?i)^(latest|20.10|18.10)$/.match(version)
        raise Error.new(Pdfcrowd.create_invalid_value_message(version, "setConverterVersion", "pdf-to-pdf", "Allowed values are latest, 20.10, 18.10.", "set_converter_version"), 470);
    end
    
    @helper.setConverterVersion(version)
    self
end
setDebugLog(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3897
def setDebugLog(value)
    @fields['debug_log'] = value
    self
end
setDisplayTitle(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3879
def setDisplayTitle(value)
    @fields['display_title'] = value
    self
end
setEncrypt(value) click to toggle source

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

  • value - Set to true to enable PDF encryption.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3666
def setEncrypt(value)
    @fields['encrypt'] = value
    self
end
setFitWindow(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3861
def setFitWindow(value)
    @fields['fit_window'] = value
    self
end
setHideMenubar(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3843
def setHideMenubar(value)
    @fields['hide_menubar'] = value
    self
end
setHideToolbar(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3834
def setHideToolbar(value)
    @fields['hide_toolbar'] = value
    self
end
setHideWindowUi(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3852
def setHideWindowUi(value)
    @fields['hide_window_ui'] = value
    self
end
setInitialPage(page) click to toggle source

Display the specified page when the document is opened.

  • page - Must be a positive integer number.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3808
def setInitialPage(page)
    if (!(Integer(page) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(page, "setInitialPage", "pdf-to-pdf", "Must be a positive integer number.", "set_initial_page"), 470);
    end
    
    @fields['initial_page'] = page
    self
end
setInitialZoom(zoom) click to toggle source

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

  • zoom - Must be a positive integer number.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3821
def setInitialZoom(zoom)
    if (!(Integer(zoom) > 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(zoom, "setInitialZoom", "pdf-to-pdf", "Must be a positive integer number.", "set_initial_zoom"), 470);
    end
    
    @fields['initial_zoom'] = zoom
    self
end
setInitialZoomType(zoom_type) click to toggle source

Specify how the page should be displayed when opened.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3795
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", "pdf-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) click to toggle source

Associate keywords with the document.

  • keywords - The string with the keywords.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3747
def setKeywords(keywords)
    @fields['keywords'] = keywords
    self
end
setLinearize(value) click to toggle source

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

  • value - Set to true to create linearized PDF.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3657
def setLinearize(value)
    @fields['linearize'] = value
    self
end
setMultipageBackground(background) click to toggle source

Apply each page of the specified PDF to the background of the corresponding page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3631
def setMultipageBackground(background)
    if (!(File.file?(background) && !File.zero?(background)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(background, "setMultipageBackground", "pdf-to-pdf", "The file must exist and not be empty.", "set_multipage_background"), 470);
    end
    
    @files['multipage_background'] = background
    self
end
setMultipageBackgroundUrl(url) click to toggle source

Load a background PDF from the specified URL and apply each page of the specified background PDF to the corresponding page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3644
def setMultipageBackgroundUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setMultipageBackgroundUrl", "pdf-to-pdf", "The supported protocols are http:// and https://.", "set_multipage_background_url"), 470);
    end
    
    @fields['multipage_background_url'] = url
    self
end
setMultipageWatermark(watermark) click to toggle source

Apply each page of the specified watermark PDF to the corresponding page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3579
def setMultipageWatermark(watermark)
    if (!(File.file?(watermark) && !File.zero?(watermark)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(watermark, "setMultipageWatermark", "pdf-to-pdf", "The file must exist and not be empty.", "set_multipage_watermark"), 470);
    end
    
    @files['multipage_watermark'] = watermark
    self
end
setMultipageWatermarkUrl(url) click to toggle source

Load a watermark PDF from the specified URL and apply each page of the specified watermark PDF to the corresponding page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3592
def setMultipageWatermarkUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setMultipageWatermarkUrl", "pdf-to-pdf", "The supported protocols are http:// and https://.", "set_multipage_watermark_url"), 470);
    end
    
    @fields['multipage_watermark_url'] = url
    self
end
setNoCopy(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3711
def setNoCopy(value)
    @fields['no_copy'] = value
    self
end
setNoModify(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3702
def setNoModify(value)
    @fields['no_modify'] = value
    self
end
setNoPrint(value) click to toggle source

Disallow printing of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3693
def setNoPrint(value)
    @fields['no_print'] = value
    self
end
setOwnerPassword(password) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3684
def setOwnerPassword(password)
    @fields['owner_password'] = password
    self
end
setPageBackground(background) click to toggle source

Apply the first page of the specified PDF to the background of every page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3605
def setPageBackground(background)
    if (!(File.file?(background) && !File.zero?(background)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(background, "setPageBackground", "pdf-to-pdf", "The file must exist and not be empty.", "set_page_background"), 470);
    end
    
    @files['page_background'] = background
    self
end
setPageBackgroundUrl(url) click to toggle source

Load a background PDF from the specified URL and apply the first page of the background PDF to every page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3618
def setPageBackgroundUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setPageBackgroundUrl", "pdf-to-pdf", "The supported protocols are http:// and https://.", "set_page_background_url"), 470);
    end
    
    @fields['page_background_url'] = url
    self
end
setPageLayout(layout) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3769
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", "pdf-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
setPageMode(mode) click to toggle source

Specify how the document should be displayed when opened.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3782
def setPageMode(mode)
    unless /(?i)^(full-screen|thumbnails|outlines)$/.match(mode)
        raise Error.new(Pdfcrowd.create_invalid_value_message(mode, "setPageMode", "pdf-to-pdf", "Allowed values are full-screen, thumbnails, outlines.", "set_page_mode"), 470);
    end
    
    @fields['page_mode'] = mode
    self
end
setPageWatermark(watermark) click to toggle source

Apply the first page of the watermark PDF to every page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3553
def setPageWatermark(watermark)
    if (!(File.file?(watermark) && !File.zero?(watermark)))
        raise Error.new(Pdfcrowd.create_invalid_value_message(watermark, "setPageWatermark", "pdf-to-pdf", "The file must exist and not be empty.", "set_page_watermark"), 470);
    end
    
    @files['page_watermark'] = watermark
    self
end
setPageWatermarkUrl(url) click to toggle source

Load a watermark PDF from the specified URL and apply the first page of the watermark PDF to every page of the output PDF.

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

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3566
def setPageWatermarkUrl(url)
    unless /(?i)^https?:\/\/.*$/.match(url)
        raise Error.new(Pdfcrowd.create_invalid_value_message(url, "setPageWatermarkUrl", "pdf-to-pdf", "The supported protocols are http:// and https://.", "set_page_watermark_url"), 470);
    end
    
    @fields['page_watermark_url'] = url
    self
end
setProxy(host, port, user_name, password) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3995
def setProxy(host, port, user_name, password)
    @helper.setProxy(host, port, user_name, password)
    self
end
setRetryCount(count) click to toggle source

Specifies the number of 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 wanted.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 4004
def setRetryCount(count)
    @helper.setRetryCount(count)
    self
end
setRightToLeft(value) click to toggle source

Set the predominant reading order for text to right-to-left. This option has no direct effect on the document's contents or page numbering but can be used to determine the relative positioning of pages when displayed side by side or printed n-up

  • value - Set to true to set right-to-left reading order.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3888
def setRightToLeft(value)
    @fields['right_to_left'] = value
    self
end
setSubject(subject) click to toggle source

Set the subject of the PDF.

  • subject - The subject.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3729
def setSubject(subject)
    @fields['subject'] = subject
    self
end
setTag(tag) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3951
def setTag(tag)
    @fields['tag'] = tag
    self
end
setTitle(title) click to toggle source

Set the title of the PDF.

  • title - The title.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3720
def setTitle(title)
    @fields['title'] = title
    self
end
setUseHttp(value) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3974
def setUseHttp(value)
    @helper.setUseHttp(value)
    self
end
setUseMetadataFrom(index) click to toggle source

Use metadata (title, subject, author and keywords) from the n-th input PDF.

  • index - Set the index of the input PDF file from which to use the metadata. 0 means no metadata. Must be a positive integer number or 0.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3756
def setUseMetadataFrom(index)
    if (!(Integer(index) >= 0))
        raise Error.new(Pdfcrowd.create_invalid_value_message(index, "setUseMetadataFrom", "pdf-to-pdf", "Must be a positive integer number or 0.", "set_use_metadata_from"), 470);
    end
    
    @fields['use_metadata_from'] = index
    self
end
setUserAgent(agent) click to toggle source

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

  • agent - The user agent string.

  • Returns - The converter object.

# File lib/pdfcrowd.rb, line 3983
def setUserAgent(agent)
    @helper.setUserAgent(agent)
    self
end
setUserPassword(password) click to toggle source

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.

# File lib/pdfcrowd.rb, line 3675
def setUserPassword(password)
    @fields['user_password'] = password
    self
end