```php title="PHP" mime_type !== 'application/pdf') { return; } // Process PDF-specific logic // For example: extract page information, count pages, extract images, etc. if (!isset($result->metadata)) { $result->metadata = []; } if (is_array($result->metadata)) { $result->metadata['pdf_processed'] = true; $result->metadata['processor_version'] = '1.0.0'; } } public function processingStage(): string { return "Middle"; } public function shouldProcess(object $result, object $config): bool { // Only process PDFs with content return $result->mime_type === 'application/pdf' && !empty($result->content); } public function estimatedDurationMs(object $result): int { // PDF processing varies by size return 50; } public function priority(): int { return 75; } } // Register the PDF-only processor $processor = new PdfOnlyProcessor(); Kreuzberg::registerPostProcessor($processor); echo "PDF-only processor registered\n"; ```