PDF to text API in PowerShell with PDF.co Web API

Simple tutorial on how to do PDF to text API in PowerShell

Writing of the code to PDF to text API in PowerShell can be done by developers of any level using PDF.co Web API. PDF.co Web API was created to assist PDF to text API in PowerShell. 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.

If you want to quickly learn then these fast application programming interfaces of PDF.co Web API for PowerShell plus the guideline and the PowerShell code below will help you quickly learn PDF to text API. If you want to implement this functionality, you should copy and paste code below into your app using code editor. Then compile and run your application. Enjoy writing a code with ready-to-use sample PowerShell codes to implement PDF to text API using PDF.co Web API.

On our website you may get trial version of PDF.co Web API for free. Source code samples are included to help you with your PowerShell application.

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

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

ConvertPdfToTxtFromUploadedFile.ps1

      
# The authentication key (API Key). # Get your own by registering at https://app.pdf.co/documentation/api $API_KEY = "********************************" # Source PDF file $SourceFile = ".\sample-rotated.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 = "" # Destination TXT file name $DestinationFile = ".\result.txt" # Some of advanced options available through profiles: # (JSON can be single/double-quoted and contain comments.) # { # "profiles": [ # { # "profile1": { # "ExtractInvisibleText": true, // Invisible text extraction. Values: true / false # "ExtractShadowLikeText": true, // Shadow-like text extraction. Values: true / false # "ExtractAnnotations": true, // Whether to extract PDF annotations. # "CheckPermissions": true, // Ignore document permissions. Values: true / false # "DetectNewColumnBySpacesRatio": 1.2, // A ratio affecting number of spaces between words. # } # } # ] # } # Sample profile that sets advanced conversion options # Advanced options are properties of CSVExtractor class from ByteScout PDF Extractor SDK used in the back-end: # https://cdn.bytescout.com/help/BytescoutPDFExtractorSDK/html/87ce5fa6-3143-167d-abbd-bc7b5e160fe5.htm # Valid RotationAngle values: # 0 - no rotation # 1 - 90 degrees # 2 - 180 degrees # 3 - 270 degrees $Profiles = '{ "profiles": [{ "profile1": { "RotationAngle": 1 } } ] }' # 1. RETRIEVE THE PRESIGNED URL TO UPLOAD THE FILE. # * If you already have a direct file URL, skip to the step 3. # Prepare URL for `Get Presigned URL` API call $query = "https://api.pdf.co/v1/file/upload/get-presigned-url?contenttype=application/octet-stream&name=" + ` [System.IO.Path]::GetFileName($SourceFile) $query = [System.Uri]::EscapeUriString($query) try { # 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 # 2. UPLOAD THE FILE TO CLOUD. $r = Invoke-WebRequest -Method Put -Headers @{ "x-api-key" = $API_KEY; "content-type" = "application/octet-stream" } -InFile $SourceFile -Uri $uploadUrl if ($r.StatusCode -eq 200) { # 3. CONVERT UPLOADED PDF FILE TO TXT # Prepare URL for `PDF To TXT` API call $query = "https://api.pdf.co/v1/pdf/convert/to/text" # Prepare request body (will be auto-converted to JSON by Invoke-RestMethod) # See documentation: https://apidocs.pdf.co $body = @{ "name" = $(Split-Path $DestinationFile -Leaf) "password" = $Password "pages" = $Pages "url" = $uploadedFileUrl "profiles" = $Profiles } | 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 TXT file $resultFileUrl = $jsonResponse.url; # Download TXT file Invoke-WebRequest -Headers @{ "x-api-key" = $API_KEY } -OutFile $DestinationFile -Uri $resultFileUrl Write-Host "Generated TXT file saved as `"$($DestinationFile)`" file." } else { # Display service reported error Write-Host $jsonResponse.message } } else { # Display request error status Write-Host $r.StatusCode + " " + $r.StatusDescription } } 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 "& .\ConvertPdfToTxtFromUploadedFile.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: