Client reference
This page documents every public member of IPdfClient (9 members) plus the 2 additional public members declared only on the concrete PdfClient class (IsPdfa, Track) — 11 members in total. The two Convert overloads are distinct members mapping to different endpoints and are never collapsed.
Convert from request
Converts a request-shaped document to the requested output format via the remote PdfAPI.
Field
Value
Signature
PdfResult Convert(ConvertRequest request)
Kind
Remote
HTTP verb
POST
Resolved URL
<url>/v1/convert
Transport member
PostJson<PdfResult>
Request DTO
PdfAPI.Core.ConvertRequest
Response DTO
PdfAPI.Core.PdfResult
Endpoint
POST v1/convert
Source
PdfAPI.Client\PdfClient.cs:44-49
Convert from request URL composition
Segment
Bound from
Notes
—
—
No path segments or query parameters; the entire request is carried in the JSON body
Convert from request Parameters
Parameter
Type
Required
Default
Purpose
request
PdfAPI.Core.ConvertRequest
Yes
—
Serialized as the JSON POST body
Convert from request Returns
PostJson<PdfResult> returns a result envelope; this member unwraps it with .Results.FirstOrDefault(). An empty Results collection silently yields null rather than an exception.
Convert from request Exceptions
Exception
Thrown by
Condition
—
—
No exception handling in PdfClient; transport and deserialization failures propagate unwrapped from JsonHttpClient
Convert from request Notes
No null-check on request before the call.
A Results collection with no elements yields null, indistinguishable from a genuinely
empty successful response — see BR-CLI-004 .
Convert from file bytes
Converts a file-shaped document, supplied as raw bytes plus a file extension, to the requested output format via the remote PdfAPI.
Field
Value
Signature
PdfResult Convert(byte[] file, string fileExtension, PdfFormat format = PdfFormat.Pdf)
Kind
Remote
HTTP verb
POST
Resolved URL
<url>/v1/convert/{fileExtension}?format={format}
Transport member
PostJson<PdfResult>
Request DTO
byte[] (JSON body); fileExtension in the path; format in the query string
Response DTO
PdfAPI.Core.PdfResult
Endpoint
POST v1/convert/{fileExtension}
Source
PdfAPI.Client\PdfClient.cs:51-56
Convert from file bytes URL composition
var url = $"convert/{fileExtension.Trim('.')}?format={format}" ;
Segment
Bound from
Notes
{fileExtension.Trim('.')}
fileExtension
Leading and trailing . characters are stripped, so both ".docx" and "docx" produce the same path segment
format (query)
format
Serialized via ToString() — the PdfFormat enum name , not its numeric value
Convert from file bytes Parameters
Parameter
Type
Required
Default
Purpose
file
byte[]
Yes
—
Serialized as the JSON POST body
fileExtension
string
Yes
—
Source file extension; dots trimmed before use in the path
format
PdfFormat
No
PdfFormat.Pdf
Requested output format, carried in the query string
Convert from file bytes Returns
PostJson<PdfResult> returns a result envelope; this member unwraps it with .Results.FirstOrDefault(), silently yielding null when Results is empty.
Convert from file bytes Exceptions
Exception
Thrown by
Condition
NullReferenceException
PdfClient
fileExtension is null — Trim('.') is called without a null guard
—
JsonHttpClient
Transport and deserialization failures propagate unwrapped
Convert from file bytes Notes
Extracts the requested page ranges from a document, entirely in-process.
Field
Value
Signature
PdfResult Extract(DocumentRange range)
Kind
Local
HTTP verb
—
Resolved URL
—
Transport member
—
Request DTO
PdfAPI.Core.Extract.DocumentRange (in-process argument)
Response DTO
PdfAPI.Core.PdfResult
Endpoint
— (local call to PdfAPI.Core.PdfClientService.ExtractPages)
Source
PdfAPI.Client\PdfClient.cs:32
Not applicable — this member issues no HTTP call.
Parameter
Type
Required
Default
Purpose
range
PdfAPI.Core.Extract.DocumentRange
Yes
—
Source document and the page ranges to copy
Returns the PdfResult produced by PdfClientService.ExtractPages, which copies the requested page ranges via PdfCopy, clamps ranges past the end of the document, treats a stop page of -1 as "to the last page", honours IsOriginal, and supports descending ranges. PdfProcessorType is set to iTextSharp.
Exception
Thrown by
Condition
PdfAPI.Core.PdfException
PdfClientService.ValidatePdf
The source document's bytes are not a valid PDF
Executes entirely in the consumer's process; requires no API availability.
See BR-CLI-009 .
Check is pdf
Reports whether a byte array is a valid PDF, entirely in-process.
Field
Value
Signature
bool IsPdf(byte[] pdf)
Kind
Local
HTTP verb
—
Resolved URL
—
Transport member
—
Request DTO
byte[]
Response DTO
bool
Endpoint
— (local call to PdfAPI.Core.PdfClientService.IsPdf)
Source
PdfAPI.Client\PdfClient.cs:26
Check is pdf URL composition
Not applicable — this member issues no HTTP call.
Check is pdf Parameters
Parameter
Type
Required
Default
Purpose
pdf
byte[]
Yes
—
Bytes to test
Check is pdf Returns
Returns false for null; otherwise requires a length of at least 5 bytes, the %PDF magic bytes (0x25 0x50 0x44 0x46), and a "%PDF-" header prefix.
Check is pdf Exceptions
Exception
Thrown by
Condition
—
—
Never throws; returns false for any input that is not a valid PDF, including null
Check is pdf Notes
Merge documents
Converts non-PDF inputs as needed and merges all documents into a single PDF via the remote PdfAPI.
Field
Value
Signature
PdfResult Merge(MergeRequest request)
Kind
Remote
HTTP verb
POST
Resolved URL
<url>/v1/merge
Transport member
PostJson<PdfResult>
Request DTO
PdfAPI.Core.MergeRequest
Response DTO
PdfAPI.Core.PdfResult
Endpoint
POST v1/merge
Source
PdfAPI.Client\PdfClient.cs:58-63
Merge documents URL composition
Segment
Bound from
Notes
—
—
No path segments or query parameters; the entire request is carried in the JSON body
Merge documents Parameters
Parameter
Type
Required
Default
Purpose
request
PdfAPI.Core.MergeRequest
Yes
—
Serialized as the JSON POST body
Merge documents Returns
PostJson<PdfResult> returns a result envelope; this member unwraps it with .Results.FirstOrDefault(), silently yielding null when Results is empty.
Merge documents Exceptions
Exception
Thrown by
Condition
—
—
No exception handling in PdfClient; transport and deserialization failures propagate unwrapped from JsonHttpClient
Merge documents Notes
No null-check on request before the call.
See BR-CLI-004 .
Count pages
Counts the pages in a PDF, entirely in-process.
Field
Value
Signature
int Pages(byte[] pdf)
Kind
Local
HTTP verb
—
Resolved URL
—
Transport member
—
Request DTO
byte[]
Response DTO
int
Endpoint
— (local call to PdfAPI.Core.PdfClientService.GetPageCount)
Source
PdfAPI.Client\PdfClient.cs:24
Count pages URL composition
Not applicable — this member issues no HTTP call.
Count pages Parameters
Parameter
Type
Required
Default
Purpose
pdf
byte[]
Yes
—
PDF bytes to inspect
Count pages Returns
Validates the bytes via PdfClientService.ValidatePdf, then UTF-8-decodes them and counts /Type /Page[^s] regex matches.
Count pages Exceptions
Exception
Thrown by
Condition
PdfAPI.Core.PdfException
PdfClientService.ValidatePdf
pdf is not a valid PDF
Count pages Notes
Read pdf version
Reads the PDF version from the document header, entirely in-process.
Field
Value
Signature
string Version(byte[] pdf)
Kind
Local
HTTP verb
—
Resolved URL
—
Transport member
—
Request DTO
byte[]
Response DTO
string
Endpoint
— (local call to PdfAPI.Core.PdfClientService.Version)
Source
PdfAPI.Client\PdfClient.cs:22
Read pdf version URL composition
Not applicable — this member issues no HTTP call.
Read pdf version Parameters
Parameter
Type
Required
Default
Purpose
pdf
byte[]
Yes
—
PDF bytes to inspect
Read pdf version Returns
Validates the bytes via PdfClientService.ValidatePdf, then regex-matches %PDF-(?<version>\d+\.\d+) against the ASCII-decoded header; returns "" when no match is found.
Read pdf version Exceptions
Exception
Thrown by
Condition
PdfAPI.Core.PdfException
PdfClientService.ValidatePdf
pdf is not a valid PDF
Read pdf version Notes
Flattens form fields in a PDF, entirely in-process.
Field
Value
Signature
byte[] Flatten(byte[] pdf)
Kind
Local
HTTP verb
—
Resolved URL
—
Transport member
—
Request DTO
byte[]
Response DTO
byte[]
Endpoint
— (local call to PdfAPI.Core.PdfClientService.Flatten)
Source
PdfAPI.Client\PdfClient.cs:30
Not applicable — this member issues no HTTP call.
Parameter
Type
Required
Default
Purpose
pdf
byte[]
Yes
—
PDF bytes to flatten
Validates the bytes via PdfClientService.ValidatePdf; when AcroForm is non-null, re-writes the document through PdfStamper { FormFlattening = true }, otherwise returns the input bytes unchanged.
Exception
Thrown by
Condition
PdfAPI.Core.PdfException
PdfClientService.ValidatePdf
pdf is not a valid PDF
Detects whether a PDF has form fields, entirely in-process.
Field
Value
Signature
bool HasFormFields(byte[] pdf)
Kind
Local
HTTP verb
—
Resolved URL
—
Transport member
—
Request DTO
byte[]
Response DTO
bool
Endpoint
— (local call to PdfAPI.Core.PdfClientService.HasFormFields)
Source
PdfAPI.Client\PdfClient.cs:28
Not applicable — this member issues no HTTP call.
Parameter
Type
Required
Default
Purpose
pdf
byte[]
Yes
—
PDF bytes to inspect
Validates the bytes via PdfClientService.ValidatePdf, opens an iTextSharp.text.pdf.PdfReader, returns false when AcroForm is null, otherwise AcroFields.Fields.Count > 0.
Exception
Thrown by
Condition
PdfAPI.Core.PdfException
PdfClientService.ValidatePdf
pdf is not a valid PDF
iTextSharp exceptions
iTextSharp.text.pdf.PdfReader
The bytes are malformed enough to fail parsing despite passing ValidatePdf
Validates PDF/A conformance via the remote PdfAPI. Declared only on the concrete PdfClient class — not on IPdfClient — so a caller holding only IPdfClient cannot reach this member.
Field
Value
Signature
bool IsPdfa(byte[] pdf)
Kind
Remote
HTTP verb
POST
Resolved URL
<url>/v1/info/validate/pdfa
Transport member
PostJson<bool>
Request DTO
byte[] (JSON body)
Response DTO
bool
Endpoint
POST v1/info/validate/pdfa
Source
PdfAPI.Client\PdfClient.cs:36-42
var url = $"info/validate/pdfa" ;
Segment
Bound from
Notes
—
—
No path segments or query parameters; the bytes are carried in the JSON body
Parameter
Type
Required
Default
Purpose
pdf
byte[]
Yes
—
Serialized as the JSON POST body
PostJson<bool> returns a result envelope; this member unwraps it with .Results.FirstOrDefault(), silently yielding false when Results is empty — indistinguishable from a genuine "not PDF/A" answer.
Exception
Thrown by
Condition
—
—
No exception handling in PdfClient; transport and deserialization failures propagate unwrapped from JsonHttpClient
Track request status
Reads the current tracking status for a previously submitted conversion or merge request via the remote PdfAPI. Declared only on the concrete PdfClient class — not on IPdfClient.
Field
Value
Signature
PdfTrackingInfo Track(long trackingId)
Kind
Remote
HTTP verb
GET
Resolved URL
<url>/v1/info/track/{trackingId}
Transport member
GetResult<PdfTrackingInfo>
Request DTO
trackingId in the path; no body
Response DTO
PdfAPI.Core.PdfTrackingInfo, returned directly — not unwrapped
Endpoint
GET v1/info/track/{trackingId}
Source
PdfAPI.Client\PdfClient.cs:65-69
Track request status URL composition
var url = $"info/track/{trackingId}" ;
Segment
Bound from
Notes
{trackingId}
trackingId
Placed directly in the path
Track request status Parameters
Parameter
Type
Required
Default
Purpose
trackingId
long
Yes
—
Identifier of the tracked conversion/merge request
Track request status Returns
GetResult<PdfTrackingInfo> returns the entity directly with no envelope unwrapping — unlike the four PostJson<T> call sites elsewhere on this client.
Track request status Exceptions
Exception
Thrown by
Condition
—
—
No exception handling in PdfClient; transport and deserialization failures propagate unwrapped from JsonHttpClient
Track request status Notes
Neither retryIntervalMilliseconds nor retryCount is passed, so the API's own server-side
polling retry defaults (retryIntervalMilliseconds=1000, retryCount=0) apply — effectively a single, immediate status read. See BR-CLI-005 .
Coverage checklist
11 of 11 public members documented, each exactly once. 9 declared on IPdfClient; 2 (IsPdfa, Track) declared only on the concrete PdfClient class.
Sources
PdfAPI.Client\PdfClient.cs
PdfAPI.Client\IPdfClient.cs
PdfAPI.Core\Services\PdfClientService.cs