How to add text and images to PDF in PowerShell with PDF.co Web API

How to add text and images to PDF in PowerShell

We made thousands of pre-made source code pieces for easy implementation in your own programming projects. PDF.co Web API is the Rest API that provides set of data extraction functions, tools for documents manipulation, splitting and merging of pdf files. Includes built-in OCR, images recognition, can generate and read barcodes from images, scans and pdf. It can be used to add text and images to PDF using PowerShell.

The SDK samples like this one below explain how to quickly make your application do add text and images to PDF in PowerShell with the help of PDF.co Web API. In order to implement the functionality, you should copy and paste this code for PowerShell below into your code editor with your app, compile and run your application. Enjoy writing a code with ready-to-use sample PowerShell codes.

Trial version of PDF.co Web API can be downloaded for free from our website. It also includes source code samples for PowerShell and other programming languages.

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

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

AddImageByFindingTargetCoordinates.ps1

      
# The authentication key (API Key). # Get your own by registering at https://app.pdf.co/documentation/api $API_KEY = "***********************************" # Direct URL of source PDF file. $SourceFileUrl = "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-edit/sample.pdf" # Search string. $SearchString = 'Your Company Name' # Prepare URL for PDF text search API call. # See documentation: https://app.pdf.co/documentation/api/1.0/pdf/find.html $queryFindText = "https://api.pdf.co/v1/pdf/find" # Prepare request body (will be auto-converted to JSON by Invoke-RestMethod) # See documentation: https://apidocs.pdf.co $bodyFindText = @{ "url" = $SourceFileURL "searchString" = $SearchString } | ConvertTo-Json try { # Execute request $responseFindText = Invoke-WebRequest -Method Post -Headers @{ "x-api-key" = $API_KEY; "Content-Type" = "application/json" } -Body $bodyFindText -Uri $queryFindText $jsonResponseFindText = $responseFindText.Content | ConvertFrom-Json if ($jsonResponseFindText.error -eq $false) { # Display search information $itemFindText = $jsonResponseFindText.body[0]; Write-Host "Found text at coordinates $($itemFindText.left), $($itemFindText.top)" #Comma-separated list of page indices (or ranges) to process. Leave empty for all pages. Example: '0,2-5,7-'. $Pages = "" # PDF document password. Leave empty for unprotected documents. $Password = "" # Destination PDF file name $DestinationFile = "./result.pdf" # Image params $Type = "image" $X = 450 $Y = $itemFindText.top $Width = 119 $Height = 32 $ImageUrl = "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-edit/logo.png" $resultFileName = [System.IO.Path]::GetFileName($DestinationFile) # * Add image * # Prepare request to `PDF Edit` API endpoint $query = "https://api.pdf.co/v1/pdf/edit/add" # Prepare request body (will be auto-converted to JSON by Invoke-RestMethod) # See documentation: https://apidocs.pdf.co $body = @{ "name" = $resultFileName "password" = $Password "pages" = $Pages "url" = $SourceFileUrl "type" = $Type "x" = $X "y" = $Y "width" = $Width "height" = $Height "urlimage" = $ImageUrl } | ConvertTo-Json try { # 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 barcode image file $resultFileUrl = $jsonResponse.url # Download output file Invoke-WebRequest -Uri $resultFileUrl -OutFile $DestinationFile Write-Host "Generated PDF saved to '$($DestinationFile)' file." } else { # Display service reported error Write-Host $jsonResponse.message } } catch { # Display request error Write-Host $_.Exception } } 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 "& .\AddImageByFindingTargetCoordinates.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:

Related Samples: