ByteScout Cloud API Server - PDF Merging API - PowerShell - Merge PDF Documents From URLs Asynchronously - ByteScout

ByteScout Cloud API Server – PDF Merging API – PowerShell – Merge PDF Documents From URLs Asynchronously

  • Home
  • /
  • Articles
  • /
  • ByteScout Cloud API Server – PDF Merging API – PowerShell – Merge PDF Documents From URLs Asynchronously

How to merge PDF documents from urls asynchronously for PDF merging API in PowerShell with ByteScout Cloud API Server

ByteScout Cloud API Server is the ready to deploy Web API Server that can be deployed in less than thirty minutes into your own in-house Windows server (no Internet connnection is required to process data!) 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 built-in ByteScout powered engine, no cloud services are used to process your data!.

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

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

MergePdfDocumentsFromUrlsAsynchronously.ps1

      
# 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. # Cloud API asynchronous "Merge PDF" job example. # Allows to avoid timeout errors when processing huge or scanned PDF documents. # Direct URLs of PDF documents to merge $SourceFiles = @( "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-merge/sample1.pdf", "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-merge/sample2.pdf" ) # Destination PDF file name $DestinationFile = ".\result.pdf" # (!) Make asynchronous job $Async = $true # Prepare URL for `Merge PDF` API call $query = "https://localhost/pdf/merge?name={0}&url={1}&async={2}" -f ` $(Split-Path $DestinationFile -Leaf), $($SourceFiles -join ","), $Async $query = [System.Uri]::EscapeUriString($query) try { # Execute request $jsonResponse = Invoke-RestMethod -Method Get -Uri $query if ($jsonResponse.error -eq $false) { # Asynchronous job ID $jobId = $jsonResponse.jobId # URL of generated PDF file that will available after the job completion $resultFileUrl = $jsonResponse.url # Check the job status in a loop. do { $statusCheckUrl = "https://localhost/job/check?jobid=" + $jobId $jsonStatus = Invoke-RestMethod -Method Get -Uri $statusCheckUrl # Display timestamp and status (for demo purposes) Write-Host "$(Get-date): $($jsonStatus.status)" if ($jsonStatus.status -eq "success") { # Download PDF file Invoke-WebRequest -OutFile $DestinationFile -Uri $resultFileUrl Write-Host "Generated PDF file saved as `"$($DestinationFile)`" file." break } elseif ($jsonStatus.status -eq "working") { # Pause for a few seconds Start-Sleep -Seconds 3 } else { Write-Host $jsonStatus.status break } } while ($true) } else { # Display service reported error Write-Host $jsonResponse.message } } catch { # Display request error Write-Host $_.Exception }

run.bat

      
@echo off powershell -NoProfile -ExecutionPolicy Bypass -Command "& .\MergePdfDocumentsFromUrlsAsynchronously.ps1" echo Script finished with errorlevel=%errorlevel% pause

VIDEO

ON-PREMISE OFFLINE SDK

Get 60 Day Free Trial

See also:

ON-DEMAND REST WEB API

Get Your API Key

See also:

Tutorials:

prev
next