ByteScout Cloud API Server - PDF Merging API - PHP - Merge PDF Documents From Uploaded Files - ByteScout

ByteScout Cloud API Server – PDF Merging API – PHP – Merge PDF Documents From Uploaded Files

  • Home
  • /
  • Articles
  • /
  • ByteScout Cloud API Server – PDF Merging API – PHP – Merge PDF Documents From Uploaded Files

How to merge PDF documents from uploaded files for PDF merging API in PHP and ByteScout Cloud API Server

Learn to write code merge PDF documents from uploaded files for PDF merging API in PHP: Simple How To Tutorial

The documentation is written to assist you to apply all the necessary features on your side. ByteScout Cloud API Server was designed to assist PDF merging API in PHP. ByteScout Cloud API Server is the ready to use Web API Server that can be deployed in less than 30 minutes into your own in-house server or into private cloud server. Can store data on in-house local server based storage or in Amazon AWS S3 bucket. Processing data solely on the server using buil-in ByteScout powered engine, no cloud services are used to process your data!.

This simple and easy to understand sample source code in PHP for ByteScout Cloud API Server contains different functions and options you should do calling the API to implement PDF merging API. Follow the tutorial and copy – paste code for PHP into your project’s code editor. You can use these PHP sample examples in one or many applications.

Trial version of ByteScout is available for free download from our website. This and other source code samples for PHP and other programming languages are available.

On-demand (REST Web API) version:
 Web API (on-demand version)

On-premise offline SDK for Windows:
 60 Day Free Trial (on-premise)

merge-pdf.php
      
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image To PDF Conversion Results</title> </head> <body> <?php // Please NOTE: In this sample we're assuming Cloud Api Server is hosted at "https://localhost". // If it's not then please replace this with with your hosting url. // Get submitted form data // 1. UPLOAD FILES TO CLOUD // If you already have direct file links, skip to Step 2. $uploadedFiles = array(); $fileCount = count($_FILES["files"]["name"]); if (!file_exists("./uploads")) { mkdir("./uploads"); } for($i = 0; $i < $fileCount; $i++) { // 1a. RETRIEVE THE PRESIGNED URL TO UPLOAD THE FILE. // Create URL $url = "https://localhost/file/upload/get-presigned-url" . "?name=" . $_FILES["files"]["name"][$i] . "&contenttype=application/octet-stream"; // Create request $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // Execute request $result = curl_exec($curl); if (curl_errno($curl) == 0) { $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($status_code == 200) { $json = json_decode($result, true); // Get URL to use for the file upload $uploadFileUrl = $json["presignedUrl"]; // Get URL of uploaded file to use with later API calls $uploadedFileUrl = $json["url"]; // 1b. UPLOAD THE FILE TO CLOUD. $tmpFilePath = $_FILES["files"]["tmp_name"][$i]; $localFile = "./uploads/" . $_FILES["files"]['name'][$i]; move_uploaded_file($tmpFilePath, $localFile); $fileHandle = fopen($localFile, "r"); curl_setopt($curl, CURLOPT_URL, $uploadFileUrl); curl_setopt($curl, CURLOPT_HTTPHEADER, array("content-type: application/octet-stream")); curl_setopt($curl, CURLOPT_PUT, true); curl_setopt($curl, CURLOPT_INFILE, $fileHandle); curl_setopt($curl, CURLOPT_INFILESIZE, filesize($localFile)); // Execute request curl_exec($curl); if (curl_errno($curl) == 0) { $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($status_code == 200) { $uploadedFiles[] = $uploadedFileUrl; } else { // Display request error echo "<p>Status code: " . $status_code . "</p>"; echo "<p>" . $result . "</p>"; } } else { // Display CURL error echo "Error: " . curl_error($curl); } fclose($fileHandle); } else { // Display request error echo "<p>Status code: " . $status_code . "</p>"; echo "<p>" . $result . "</p>"; } } else { // Display CURL error echo "Error: " . curl_error($curl); } curl_close($curl); } // 2. MERGE UPLOADED PDF DOCUMENTS if (count($uploadedFiles) > 0) { MergePdf($uploadedFiles); } function MergePdf($uploadedFiles) { // Create URL $url = "https://localhost/pdf/merge" . "?name=result.pdf" . "&url=" . join(",", $uploadedFiles); // Create request $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // Execute request $result = curl_exec($curl); if (curl_errno($curl) == 0) { $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($status_code == 200) { $json = json_decode($result, true); if ($json["error"] == false) { $resultFileUrl = $json["url"]; // Display link to the result document echo "<div><h2>Conversion Result:</h2><a href='" . $resultFileUrl . "' target='_blank'>" . $resultFileUrl . "</a></div>"; } else { // Display service reported error echo "<p>Error: " . $json["message"] . "</p>"; } } else { // Display request error echo "<p>Status code: " . $status_code . "</p>"; echo "<p>" . $result . "</p>"; } } else { // Display CURL error echo "Error: " . curl_error($curl); } // Cleanup curl_close($curl); } ?> </body> </html>

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Cloud API Server Home Page

Explore ByteScout Cloud API Server Documentation

Explore Samples

Sign Up for ByteScout Cloud API Server Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

VIDEO

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Cloud API Server Home Page

Explore ByteScout Cloud API Server Documentation

Explore Samples

Sign Up for ByteScout Cloud API Server Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

Tutorials:

prev
next