Practical guide

Create a synthetic PDF acceptance pack

Last materially reviewed 2026-10-01

Quick answerWrite expected outcomes before generating anything, then keep the cases unchanged.
What to know

Start with a normal case and deliberate edges

Use a fictional client, a short approved note and two distinct rows as the normal case. Add an empty list, missing required identifier, multiline note, unbroken long text and a table around the first page break. Each case needs an expected outcome: release, hold or a specific visible empty state. A screenshot alone is not an expected-answer specification.

What to know

Use the local generator as a starting point

The tool on this page produces synthetic JSON and manual checks only. It does not call a vendor, upload reports or validate a rendered PDF. Copy a case into an authorized evaluation environment if appropriate. Add your own non-sensitive cases for requirements the tool does not cover, and keep them clearly separated from client records.

What to know

Keep tuning and checking separate

Use a development set to adjust the layout. Keep some distinct cases untouched until the template is ready for review. If a held-out case fails and you tune to it, it is no longer an untouched check; preserve the failure and add a new suitable case. This small pack supports learning, not a statistical reliability claim.

What to know

Record findings that another person can reproduce

Save case ID, input version, template version, observed output and pass or hold reason. Include review time and changes needed. Never replace a failed result with a later successful one. Acceptance means the named cases met their declared criteria, not that all future reports or all regulated uses are safe.

What to know

Worked case record

Case missing-2 deliberately omits report_id but retains two fictional rows. Expected result: held before release, with the missing field named. The presence of a downloadable PDF would not change that expectation. Record the actual outcome without modifying the fixture to make it pass. The tool generates the input, but your own authorized process must enforce the hold; this publication is not connected to that process.

Continue when useful

Next: Version the template

Make every released report traceable to the template and data shape used.

Open Version the template →

Sources used for this page

These records support the facts and comparisons above. Merchant-controlled records are labelled so you can separate product claims from independent evidence.

  1. CraftMyPDF: documented template workflow — Merchant documentation · craftmypdf.com · Merchant-controlled · checked 2026-09-30
01 / LOCAL CASE MAKER

Give the template something awkward.

Generate fictional JSON and expected manual checks. No upload, vendor connection or PDF rendering.

Rows are capped at 60. A boundary depends on your actual template; this is not a load test.

Choose a case. No real client details are needed.

Your fictional case will appear here.