class Pdfcrowd::PdfToPdfClient
Conversion from PDF to PDF.
Public Class Methods
Constructor for the Pdfcrowd
API client.
-
user_name
- Your username atPdfcrowd
. -
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
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
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
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
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
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
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
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
Get the job id.
-
Returns - The unique job identifier.
# File lib/pdfcrowd.rb, line 3925 def getJobId() return @helper.getJobId() end
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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