PdfProcessingService
in package
Handles PDF file operations for waiver uploads.
Provides PDF validation, page counting, merging, and thumbnail generation. Uses pure PHP libraries (smalot/pdfparser, setasign/fpdi) with no external dependencies.
Table of Contents
Constants
- MAX_PDF_SIZE = 52428800
- Maximum file size for PDF uploads (in bytes) Default: 50MB
Methods
- generateThumbnail() : ServiceResult
- Generate a placeholder thumbnail for a PDF
- getPageCount() : int
- Get page count from a PDF file
- isPdf() : bool
- Check if a file is a PDF based on extension and magic bytes
- isPdfMimeType() : bool
- Check if a MIME type indicates a PDF
- mergePdfs() : ServiceResult
- Merge multiple PDF files into one
- validatePdf() : ServiceResult
- Validate that a file is a valid PDF
Constants
MAX_PDF_SIZE
Maximum file size for PDF uploads (in bytes) Default: 50MB
private
mixed
MAX_PDF_SIZE
= 52428800
Methods
generateThumbnail()
Generate a placeholder thumbnail for a PDF
public
generateThumbnail(string $pdfPath, string $outputPath[, int $width = 200 ][, int $height = 260 ]) : ServiceResult
Since we don't have ImageMagick/Ghostscript, we create a simple branded placeholder image showing the page count.
Parameters
- $pdfPath : string
-
Path to the PDF file
- $outputPath : string
-
Path for the thumbnail image (PNG)
- $width : int = 200
-
Thumbnail width in pixels (default: 200)
- $height : int = 260
-
Thumbnail height in pixels (default: 260)
Return values
ServiceResult —Success or failure
getPageCount()
Get page count from a PDF file
public
getPageCount(string $filePath) : int
Parameters
- $filePath : string
-
Path to the PDF file
Return values
int —Page count, or 0 on error
isPdf()
Check if a file is a PDF based on extension and magic bytes
public
isPdf(string $filePath) : bool
Parameters
- $filePath : string
-
Path to file
Return values
bool —True if file appears to be a PDF
isPdfMimeType()
Check if a MIME type indicates a PDF
public
isPdfMimeType(string $mimeType) : bool
Parameters
- $mimeType : string
-
MIME type to check
Return values
bool —True if MIME type is PDF
mergePdfs()
Merge multiple PDF files into one
public
mergePdfs(array<string|int, mixed> $pdfInfos, string $outputPath) : ServiceResult
Parameters
- $pdfInfos : array<string|int, mixed>
- $outputPath : string
-
Path for the merged output PDF
Return values
ServiceResult —Success with total page count, or failure with error
validatePdf()
Validate that a file is a valid PDF
public
validatePdf(string $filePath) : ServiceResult
Parameters
- $filePath : string
-
Path to the PDF file
Return values
ServiceResult —Success with page count in data, or failure with error message