How to merge PDF documents from uploaded files for PDF merging API in PowerShell using PDF.co Web API
Tutorial: how to merge PDF documents from uploaded files for PDF merging API in PowerShell
Writing of the code to merge PDF documents from uploaded files in PowerShell can be done by developers of any level using PDF.co Web API. PDF.co Web API helps with PDF merging API in PowerShell. 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.
PowerShell code snippet like this for PDF.co Web API works best when you need to quickly implement PDF merging API in your PowerShell application. Sample code in PowerShell is all you need. Copy-paste it to your the code editor, then add a reference to PDF.co Web API and you are ready to try it! Writing PowerShell application typically includes multiple stages of the software development so even if the functionality works please test it with your data and the production environment.
Trial version of ByteScout is available for free download from our website. This and other source code samples for PowerShell 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)
MergePdfDocumentsFromUploadedFiles.ps1
# The authentication key (API Key). # Get your own by registering at https://app.pdf.co/documentation/api $API_KEY = "***********************************" # Source PDF files $SourceFiles = ".\sample1.pdf", ".\sample2.pdf" # Destination PDF file name $DestinationFile = ".\result.pdf" $uploadedFiles = @() try { foreach ($pdfFile in $SourceFiles ) { # 1a. RETRIEVE THE PRESIGNED URL TO UPLOAD THE FILE. # Prepare URL for `Get Presigned URL` API call $query = "https://api.pdf.co/v1/file/upload/get-presigned-url?contenttype=application/octet-stream&name=" + ` [IO.Path]::GetFileName($pdfFile) $query = [System.Uri]::EscapeUriString($query) # Execute request $jsonResponse = Invoke-RestMethod -Method Get -Headers @{ "x-api-key" = $API_KEY } -Uri $query if ($jsonResponse.error -eq $false) { # Get URL to use for the file upload $uploadUrl = $jsonResponse.presignedUrl # Get URL of uploaded file to use with later API calls $uploadedFileUrl = $jsonResponse.url # 1b. UPLOAD THE FILE TO CLOUD. $r = Invoke-WebRequest -Method Put -Headers @{ "x-api-key" = $API_KEY; "content-type" = "application/octet-stream" } -InFile $pdfFile -Uri $uploadUrl if ($r.StatusCode -eq 200) { # Keep uploaded file URL $uploadedFiles += $uploadedFileUrl } else { # Display request error status Write-Host $r.StatusCode + " " + $r.StatusDescription } } else { # Display service reported error Write-Host $jsonResponse.message } } if ($uploadedFiles.length -gt 0) { # 2. MERGE UPLOADED PDF DOCUMENTS # Prepare URL for `Merge PDF` API call $query = "https://api.pdf.co/v1/pdf/merge" # Prepare request body (will be auto-converted to JSON by Invoke-RestMethod) # See documentation: https://apidocs.pdf.co $body = @{ "name" = $(Split-Path $DestinationFile -Leaf) "url" = $uploadedFiles -join "," } | ConvertTo-Json # Execute request $response = Invoke-WebRequest -Method Post -Headers @{ "x-api-key" = $API_KEY; "Content-Type" = "application/json" } -Body $body -Uri $query $jsonResponse = $response.Content | ConvertFrom-Json if ($jsonResponse.error -eq $false) { # Get URL of generated PDF file $resultFileUrl = $jsonResponse.url; # Download PDF file Invoke-WebRequest -Headers @{ "x-api-key" = $API_KEY } -OutFile $DestinationFile -Uri $resultFileUrl Write-Host "Generated PDF file saved as `"$($DestinationFile)`" file." } 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 "& .\MergePdfDocumentsFromUploadedFiles.ps1" echo Script finished with errorlevel=%errorlevel% pause
VIDEO
ON-PREMISE OFFLINE SDK
See also:
ON-DEMAND REST WEB API
Get Your API Key
See also:
PDF-co-Web-API-PowerShell-Merge-PDF-Documents-From-Uploaded-Files.pdf