# PDF Smart Kit synthetic test materials

Tested: 2026-10-31T01:48:55.885Z · Product 1.0.0 · Chromium / Chrome 156.0.8078.74

First-party synthetic local browser processor tests. English report. Not a benchmark, independent review or production run.

CC0-1.0 for these synthetic inputs, outputs and report.

## Reproduce
1. Start the local site with npm ci and npm run dev, or open the matching release of pdfsk.com.
2. Download each listed input. Select the corresponding tool and the options recorded in runs[].options. Redact coordinates are normalized top-left page coordinates; use page 1, X 10%, Y 20%, width 80%, height 20%.
3. Merge digital-input.pdf followed by merge-second-input.pdf with no rotation. OCR language: English, searchable PDF enabled. Compression: Balanced (recommended).
4. Compare page counts, extracted text, visible mask and form flattening. Inspect DOCX word/document.xml for editable text. Compare the recorded file hashes for this run; new exports can differ because of timestamps and browser rendering.
5. For the negative case, convert invalid-input.pdf to Word and confirm it is rejected. For the OCR limit, inspect the faint small-print line against extracted text.

## merge-pdf
Inputs: [digital-input.pdf](digital-input.pdf), [merge-second-input.pdf](merge-second-input.pdf) · Output: [merged-output.pdf](merged-output.pdf)

Options: {}
- PASS: PDF parses with expected page count
- PASS: Page dimensions preserved
- PASS: Input order retained in extracted text
- Limit: The source has one form field; the merged output exposes no interactive fields in this sample. Review required form behaviour separately.

```json
{
  "pages": 3,
  "text": [
    "SYNTHETIC PAGE 1 PRIVATE DEMO 123456 PUBLIC KEEP 2468",
    "SYNTHETIC PAGE 2 PUBLIC SECOND PAGE PUBLIC KEEP 2468",
    "APPENDED PAGE 3"
  ],
  "dimensions": [
    [
      420,
      560
    ],
    [
      420,
      560
    ],
    [
      420,
      560
    ]
  ],
  "formFields": 0
}
```

## pdf-to-word
Inputs: [digital-input.pdf](digital-input.pdf) · Output: [word-output.docx](word-output.docx)

Options: {}
- PASS: Two page sections in DOCX
- PASS: Page labels retained as editable Word text
- Limit: This is positioned text, not a reconstruction of the source authoring structure. No Word desktop visual comparison was run.

```json
{
  "sections": 2,
  "editableTextFrames": 6
}
```

## compress-pdf
Inputs: [digital-input.pdf](digital-input.pdf) · Output: [compressed-output.pdf](compressed-output.pdf)

Options: {"level":"recommended"}
- PASS: PDF parses with expected page count
- PASS: Page dimensions preserved
- PASS: Raster output has no extracted source text
- PASS: Interactive source form is flattened
- Limit: This sample loses its original text layer and interactive form. Inspect the exported pages; a PDF opening successfully does not prove fidelity.
- Limit: File size changed by 1131.94%. Small vector inputs may grow after rasterization.

```json
{
  "pages": 2,
  "text": [
    "",
    ""
  ],
  "dimensions": [
    [
      420,
      560
    ],
    [
      420,
      560
    ]
  ],
  "formFields": 0,
  "inputBytes": 2298,
  "outputBytes": 28310,
  "sizeChangePercent": 1131.94
}
```

## redact-pdf
Inputs: [digital-input.pdf](digital-input.pdf) · Output: [redacted-output.pdf](redacted-output.pdf)

Options: {"redactions":[{"page":1,"x":0.1,"y":0.2,"width":0.8,"height":0.2}]}
- PASS: PDF parses with expected page count
- PASS: Page dimensions preserved
- PASS: Raster output has no extracted source text
- PASS: Interactive source form is flattened
- PASS: Selected mask interior renders dark
- Limit: This sample loses its original text layer and interactive form. Inspect the exported pages; a PDF opening successfully does not prove fidelity.
- Limit: Only one rectangle on page 1 was exercised, using the normalized coordinates recorded below. Multi-region UI behaviour was not evaluated. This is not an independent security certification.

```json
{
  "pages": 2,
  "text": [
    "",
    ""
  ],
  "dimensions": [
    [
      420,
      560
    ],
    [
      420,
      560
    ]
  ],
  "formFields": 0,
  "maskPixel": [
    17,
    17,
    17,
    255
  ]
}
```

## ocr-pdf
Inputs: [ocr-image-input.pdf](ocr-image-input.pdf) · Output: [ocr-output.pdf](ocr-output.pdf)

Options: {"ocrLanguage":"eng","searchablePdf":true}
- PASS: PDF parses with expected page count
- PASS: Page dimensions preserved
- PASS: Clear printed line is searchable
- Limit: Faint 8-pixel source line recognized exactly: false. The scan artwork still contains the line; use manual review. No handwriting or non-English accuracy claim is made.

```json
{
  "pages": 1,
  "text": [
    "SAMPLE OCR 2468 Printed synthetic document"
  ],
  "dimensions": [
    [
      420,
      560
    ]
  ],
  "formFields": 0,
  "smallPrintRecognized": false
}
```

## pdf-to-pdfa
Inputs: [digital-input.pdf](digital-input.pdf) · Output: [archive-output.pdf](archive-output.pdf)

Options: {}
- PASS: PDF parses with expected page count
- PASS: Page dimensions preserved
- PASS: Raster output has no extracted source text
- PASS: Interactive source form is flattened
- Limit: This sample loses its original text layer and interactive form. Inspect the exported pages; a PDF opening successfully does not prove fidelity.
- Limit: Independent veraPDF conformance validation was not run for this public output; this record is not a PDF/A conformance certificate.

```json
{
  "pages": 2,
  "text": [
    "",
    ""
  ],
  "dimensions": [
    [
      420,
      560
    ],
    [
      420,
      560
    ]
  ],
  "formFields": 0
}
```

## Negative case
invalid-input.pdf: Invalid PDF structure.

## Files and SHA-256
- digital-input.pdf: 2298 bytes; 1df2efb58eebc0b63d416f6dec6c0bc10caed358564d394ddc3677d50dd07e79
- merge-second-input.pdf: 861 bytes; 08f51fcde5ac46cfb870a5040771f30828518307eec2bb936880a30802767e6b
- ocr-image-input.pdf: 21697 bytes; 7a3594ded77a18985fe7f1ad23105eb093c347bd182037d38426c1d3e5d4cafd
- invalid-input.pdf: 42 bytes; aa5cb070600d543b7b9b804b767f4be37c51e4ded9270ba84e1061b8eac14412
- merged-output.pdf: 2124 bytes; 2b58e3330be064eeb5bd6364f69554e733ee25a332670c378e94e31e6077176c
- word-output.docx: 30609 bytes; 44b3fe20721b58cf2b5f8a277918247012cac569d1f7a47de550f7d68cb8f780
- compressed-output.pdf: 28310 bytes; d614c8fca313ef48c29c5aec52cb6b5c123ce8cf4d45cfc4c02991cbfb0191ba
- redacted-output.pdf: 40697 bytes; 8258d431372e217e8d531c815e4d3ea88288c0dff58ccc8eac44c9ab57a6d3b7
- ocr-output.pdf: 22281 bytes; cc5d8d3b32be446569ec4937d87b45fcc023c033324689504821b0680378b9d9
- archive-output.pdf: 103278 bytes; d892402205fb34eed194d1e8aa46c43499aa1762e747883fb86f49f7b85f648e

Processor source commit: 596618a92d1f3885a05e090aed02c799a1eba1fd
Processor source at sourceCommit; local changes only add evidence and editorial/schema surfaces. No processor edits in this run.
