Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
PdfRActionConstraint
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
1 / 1
4
100.00% covered (success)
100.00%
1 / 1
 check
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
1 / 1
4
1<?php
2
3declare(strict_types=1);
4
5namespace Phpdftk\Pdf\Conformance\Constraint;
6
7use Phpdftk\Pdf\Conformance\Inspection\DocumentInspector;
8use Phpdftk\Pdf\Conformance\Profile\ConformanceProfile;
9use Phpdftk\Pdf\Conformance\Result\ConformanceViolation;
10use Phpdftk\Pdf\Conformance\Result\ViolationSeverity;
11use Phpdftk\Pdf\Core\Action\JavaScriptAction;
12use Phpdftk\Pdf\Core\Action\LaunchAction;
13
14/**
15 * ISO 23504-1 (PDF/R-1): Action restrictions.
16 *
17 * PDF/R-1 prohibits JavaScript and Launch actions.
18 */
19final class PdfRActionConstraint implements ConformanceConstraint
20{
21    public function check(DocumentInspector $inspector, ConformanceProfile $profile): array
22    {
23        $violations = [];
24
25        foreach ($inspector->getRegisteredObjects() as $object) {
26            if ($object instanceof JavaScriptAction) {
27                $violations[] = new ConformanceViolation(
28                    clause: '6.6',
29                    message: 'JavaScript actions are prohibited in PDF/R-1',
30                    severity: ViolationSeverity::Error,
31                    objectPath: 'Action[JavaScript]',
32                );
33            }
34
35            if ($object instanceof LaunchAction) {
36                $violations[] = new ConformanceViolation(
37                    clause: '6.6',
38                    message: 'Launch actions are prohibited in PDF/R-1',
39                    severity: ViolationSeverity::Error,
40                    objectPath: 'Action[Launch]',
41                );
42            }
43        }
44
45        return $violations;
46    }
47}