ByteScout Cloud API Server - PDF Text Search API - PowerShell - PDF Text Search from URL Asynchronously - ByteScout

ByteScout Cloud API Server – PDF Text Search API – PowerShell – PDF Text Search from URL Asynchronously

  • Home
  • /
  • Articles
  • /
  • ByteScout Cloud API Server – PDF Text Search API – PowerShell – PDF Text Search from URL Asynchronously

How to PDF text search API in PowerShell with ByteScout Cloud API Server

What is ByteScout Cloud API Server? It is API server that is ready to use and can be installed and deployed in less than 30 minutes on your own Windows server or server in a cloud. It can save data and files on your local server-based file storage or in Amazon AWS S3 storage. Data is processed solely on the API server and is powered by ByteScout engine, no cloud services or Internet connection is required for data processing..

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

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

PDFTextSearchFromUrlAsynchronously.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. # Direct URL of PDF file to get information $SourceFileURL = "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-to-text/sample.pdf" # 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 = "" # Search string. $SearchString = '\d{1,}\.\d\d' #Regular expression to find numbers like '100.00' # Enable regular expressions (Regex) $RegexSearch = 'True' # (!) Make asynchronous job $Async = $true # Prepare URL for PDF text search API call. $query = "https://localhost/pdf/find?password=$($Password)&pages=$($Pages)&url=$($SourceFileURL)&searchString=$($SearchString)&regexSearch=$($RegexSearch)&async=$($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 JSON file with search result that will available after the job completion $resultFileUrl = $jsonResponse.url # Check the job status in a loop. # If you don't want to pause the main thread you can rework the code # to use a separate thread for the status checking and completion. 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") { # Get JSON for search result $jsonSearchResult = Invoke-RestMethod -Method Get -Uri $resultFileUrl # Display found result in console foreach ($item in $jsonSearchResult) { Write-Host "Found text $($item.text) at coordinates $($item.left), $($item.top)" } 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 "& .\PDFTextSearchFromUrlAsynchronously.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