How to merge PDF documents from uploaded files for PDF merging API in Python with PDF.co Web API

Step-by-step tutorial:How to merge PDF documents from uploaded files to have PDF merging API in Python

Every ByteScout tool includes sample Python source codes that you can find here or in the folder with installed ByteScout product. PDF.co Web API helps with PDF merging API in Python. PDF.co Web API is the Web API with a set of tools for documents manipulation, data conversion, data extraction, splitting and merging of documents. Includes image recognition, built-in OCR, barcode generation and barcode decoders to decode bar codes from scans, pictures and pdf.

Use the code displayed below in your application to save a lot of time on writing and testing code. Open your Python project and simply copy & paste the code and then run your app! Want to see how it works with your data then code testing will allow the function to be tested and work properly.

Trial version of ByteScout is available for free download from our website. This and other source code samples for Python 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)

MergePDFDocumentsFromUploadedFile.py

      
import os import requests # pip install requests # The authentication key (API Key). # Get your own by registering at https://app.pdf.co/documentation/api API_KEY = "**********************************" # Base URL for PDF.co Web API requests BASE_URL = "https://api.pdf.co/v1" # Source PDF files SourceFile_1 = ".\\sample1.pdf" SourceFile_2 = ".\\sample2.pdf" # Destination PDF file name DestinationFile = ".\\result.pdf" def main(args = None): UploadedFileUrl_1 = uploadFile(SourceFile_1) UploadedFileUrl_2 = uploadFile(SourceFile_2) if (UploadedFileUrl_1 != None and UploadedFileUrl_2!= None): uploadedFileUrls = "{},{}".format(UploadedFileUrl_1, UploadedFileUrl_2) mergeFiles(uploadedFileUrls, DestinationFile) def mergeFiles(uploadedFileUrls, destinationFile): """Perform Merge using PDF.co Web API""" # Prepare URL for 'Merge PDF' API request url = "{}/pdf/merge?name={}&url={}".format( BASE_URL, os.path.basename(destinationFile), uploadedFileUrls ) # Execute request and get response as JSON response = requests.get(url, headers={ "x-api-key": API_KEY, "content-type": "application/octet-stream" }) if (response.status_code == 200): json = response.json() if json["error"] == False: # Get URL of result file resultFileUrl = json["url"] # Download result file r = requests.get(resultFileUrl, stream=True) if (r.status_code == 200): with open(destinationFile, 'wb') as file: for chunk in r: file.write(chunk) print(f"Result file saved as \"{destinationFile}\" file.") else: print(f"Request error: {response.status_code} {response.reason}") else: # Show service reported error print(json["message"]) else: print(f"Request error: {response.status_code} {response.reason}") def uploadFile(fileName): """Uploads file to the cloud""" # 1. RETRIEVE PRESIGNED URL TO UPLOAD FILE. # Prepare URL for 'Get Presigned URL' API request url = "{}/file/upload/get-presigned-url?contenttype=application/octet-stream&name={}".format( BASE_URL, os.path.basename(fileName)) # Execute request and get response as JSON response = requests.get(url, headers={ "x-api-key": API_KEY }) if (response.status_code == 200): json = response.json() if json["error"] == False: # URL to use for file upload uploadUrl = json["presignedUrl"] # URL for future reference uploadedFileUrl = json["url"] # 2. UPLOAD FILE TO CLOUD. with open(fileName, 'rb') as file: requests.put(uploadUrl, data=file, headers={ "x-api-key": API_KEY, "content-type": "application/octet-stream" }) return uploadedFileUrl else: # Show service reported error print(json["message"]) else: print(f"Request error: {response.status_code} {response.reason}") return None if __name__ == '__main__': main()

VIDEO

ON-PREMISE OFFLINE SDK

Get 60 Day Free Trial

See also:

ON-DEMAND REST WEB API

Get Your API Key

See also:

Related Samples: