NAME
SelectPdf::PdfMergeClient - Pdf Merge with SelectPdf Online API.
SYNOPSIS
Merge PDFs from local disk or public url and save result into a file on disk.
use SelectPdf;
print "This is SelectPdf-$SelectPdf::VERSION\n";
my $test_url = "https://selectpdf.com/demo/files/selectpdf.pdf";
my $test_pdf = "Input.pdf";
my $local_file = "Result.pdf";
my $apiKey = "Your API key here";
eval {
my $client = new SelectPdf::PdfMergeClient($apiKey);
# set parameters - see full list at https://selectpdf.com/pdf-merge-api/
$client
# specify the pdf files that will be merged (order will be preserved in the final pdf)
->addFile($test_pdf) # add PDF from local file
->addUrlFile($test_url) # add PDF From public url
#->addFileWithPassword($test_pdf, "pdf_password") # add PDF (that requires a password) from local file
#->addUrlFileWithPassword($test_url, "pdf_password") # add PDF (that requires a password) from public url
;
print "Starting pdf merge ...\n";
# merge pdfs to local file
$client->saveToFile($local_file);
# merge pdfs to memory
# my $pdf = $client->save();
print "Finished! Number of pages: " . $client->getNumberOfPages() . ".\n";
# get API usage
my $usageClient = new SelectPdf::UsageClient($apiKey);
my $usage = $usageClient->getUsage(0);
print("Usage: " . encode_json($usage) . "\n");
print("Conversions remained this month: ". $usage->{"available"});
};
if ($@) {
print "An error occurred: $@\n";
}
For more details and full list of parameters see Pdf Merge API.
METHODS
new( $apiKey )
Construct the Pdf Merge Client.
my $client = SelectPdf::PdfMergeClient->new($apiKey);
Parameters:
- $apiKey: API Key.
addFile( $inputPdf )
Add local PDF document to the list of input files.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addFile($inputPdf);
Parameters:
- $inputPdf: Path to a local PDF file.
Returns:
- Reference to the current object.
addFileWithPassword( $inputPdf, $userPassword )
Add local PDF document to the list of input files.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addFileWithPassword($inputPdf, $userPassword);
Parameters:
- $inputPdf: Path to a local PDF file.
- $userPassword: User password for the PDF document.
Returns:
- Reference to the current object.
addUrlFile( $inputUrl )
Add remote PDF document to the list of input files.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addUrlFile($inputUrl);
Parameters:
- $inputUrl: Url of a remote PDF file.
Returns:
- Reference to the current object.
addUrlFileWithPassword( $inputUrl, $userPassword )
Add remote PDF document to the list of input files.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addUrlFileWithPassword($inputUrl, $userPassword);
Parameters:
- $inputUrl: Url of a remote PDF file.
- $userPassword: User password for the PDF document.
Returns:
- Reference to the current object.
save
Merge all specified input pdfs and return the resulted PDF.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addFile($inputPdf1);
$client->addFile($inputPdf2);
$content = $client->save();
Returns:
- Byte array containing the resulted PDF.
saveToFile( $filePath )
Merge all specified input pdfs and writes the resulted PDF to a local file.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addFile($inputPdf1);
$client->addFile($inputPdf2);
$client->saveToFile($filePath);
Parameters:
- $filePath: Local file including path if necessary.
Returns:
- Byte array containing the resulted PDF.
saveAsync
Merge all specified input pdfs and return the resulted PDF.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addFile($inputPdf1);
$client->addFile($inputPdf2);
$content = $client->saveAsync();
Returns:
- Byte array containing the resulted PDF. An asynchronous call is used.
saveToFileAsync( $filePath )
Merge all specified input pdfs and writes the resulted PDF to a local file. An asynchronous call is used.
my $client = new SelectPdf::PdfMergeClient($apiKey);
$client->addFile($inputPdf1);
$client->addFile($inputPdf2);
$client->saveToFileAsync($filePath);
Parameters:
- $filePath: Local file including path if necessary.
Returns:
- Byte array containing the resulted PDF.
setDocTitle( $docTitle )
Set the PDF document title.
Parameters:
- $docTitle: Document title.
Returns:
- Reference to the current object.
setDocSubject( $docSubject )
Set the PDF document subject.
Parameters:
- $docSubject: Document subject.
Returns:
- Reference to the current object.
setDocKeywords( $docKeywords )
Set the PDF document keywords.
Parameters:
- $docKeywords: Document keywords.
Returns:
- Reference to the current object.
setDocAuthor( $docAuthor )
Set the PDF document author.
Parameters:
- $docAuthor: Document author.
Returns:
- Reference to the current object.
setDocAddCreationDate( $docAddCreationDate )
Add the date and time when the PDF document was created to the PDF document information. The default value is False.
Parameters:
- $docAddCreationDate: Add creation date to the document metadata or not.
Returns:
- Reference to the current object.
setViewerPageLayout( $pageLayout )
Set the page layout to be used when the document is opened in a PDF viewer. The default value is 1 - OneColumn.
Parameters:
- $pageLayout: Page layout. Possible values: 0 (Single Page), 1 (One Column), 2 (Two Column Left), 3 (Two Column Right).
Returns:
- Reference to the current object.
setViewerPageMode( $pageMode )
Set the document page mode when the pdf document is opened in a PDF viewer. The default value is 0 - UseNone.
Parameters:
- $pageMode: Page mode. Possible values: 0 (Use None), 1 (Use Outlines), 2 (Use Thumbs), 3 (Full Screen), 4 (Use OC), 5 (Use Attachments).
Returns:
- Reference to the current object.
setViewerCenterWindow( $viewerCenterWindow )
Set a flag specifying whether to position the document's window in the center of the screen. The default value is False.
Parameters:
- $viewerCenterWindow: Center window or not.
Returns:
- Reference to the current object.
setViewerDisplayDocTitle( $viewerDisplayDocTitle )
Set a flag specifying whether the window's title bar should display the document title taken from document information. The default value is False.
Parameters:
- $viewerDisplayDocTitle: Display title or not.
Returns:
- Reference to the current object.
setViewerFitWindow( $viewerFitWindow )
Set a flag specifying whether to resize the document's window to fit the size of the first displayed page. The default value is False.
Parameters:
- $viewerFitWindow: Fit window or not.
Returns:
- Reference to the current object.
setViewerHideMenuBar( $viewerHideMenuBar )
Set a flag specifying whether to hide the pdf viewer application's menu bar when the document is active. The default value is False.
Parameters:
- $viewerHideMenuBar: Hide menu bar or not.
Returns:
- Reference to the current object.
setViewerHideToolbar( $viewerHideToolbar )
Set a flag specifying whether to hide the pdf viewer application's tool bars when the document is active. The default value is False.
Parameters:
- $viewerHideToolbar: Hide tool bars or not.
Returns:
- Reference to the current object.
setViewerHideWindowUI( $viewerHideWindowUI )
Set a flag specifying 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.
Parameters:
- $viewerHideWindowUI: Hide window UI or not.
Returns:
- Reference to the current object.
setUserPassword( $userPassword )
Set PDF user password.
Parameters:
- $userPassword: PDF user password.
Returns:
- Reference to the current object.
setOwnerPassword( $ownerPassword )
Set PDF owner password.
Parameters:
- $ownerPassword: PDF owner password.
Returns:
- Reference to the current object.
setCustomParameter( $parameterName, $parameterValue )
Set a custom parameter. Do not use this method unless advised by SelectPdf.
Parameters:
- $parameterName: Parameter name.
- $parameterValue: Parameter value.
Returns:
- Reference to the current object.
setTimeout( $timeout )
Set the maximum amount of time (in seconds) for this job. The default value is 30 seconds. Use a larger value (up to 120 seconds allowed) for pages that take a long time to load.
Parameters:
- $timeout: Timeout in seconds.
Returns:
- Reference to the current object.