Back to Blog
Tutorial

Convert DOCX, PDF, JPG and PNG Files into Editable Templates

Import a Word document, a PDF, or even a screenshot of an existing form, and GJSDocs returns a fully editable template — layout, fonts, tables and images preserved, with placeholders converted into named variables ready to map to your data source.

May 2026·6 min read

Stop rebuilding documents from scratch

Almost every team has a stack of finished documents that already work. The proposal a senior salesperson polished over six months. The master service agreement that legal signed off on. The invoice your finance team standardised in 2019. They look right, they print right, the brand is correct.

The problem starts when you want to generate these documents at scale. Word files, PDFs, and image-based forms are flat — there's no concept of "client name" or "due date" baked into the file. To turn them into reusable templates, the traditional workflow is to open the source in another tool, manually rebuild the layout, retype every paragraph, add placeholder fields by hand, then hope the spacing didn't break. A single 5-page proposal can take half a day.

GJSDocs's import flow accepts the formats you already have and gives you back an editable template in seconds.

Supported file formats

  • DOCX — Microsoft Word documents. Headings, paragraphs, lists, tables, embedded images, and styled runs are preserved exactly. The cleanest input format because the structure is already explicit in the file.
  • PDF — both digital exports (e.g. produced by Word, Google Docs, InDesign) and scanned/image-based PDFs. Multi-page documents are supported with page breaks intact.
  • JPG and PNG — photos or screenshots of an existing document, brochure, paper form, or competitor template. Text is extracted via OCR; layout is reconstructed automatically.

In every case the output is a real GJSDocs template — the same kind you'd build by hand in the visual editor — which means every block, paragraph, table and variable is fully editable after import.

Step 1 — Upload your file

Open Templates in the GJSDocs sidebar and click Import. Drop in a DOCX, PDF, PNG or JPG (or pick the file from disk). You can also paste a public URL to a hosted file if the document lives on Drive, Dropbox, or your own CDN.

Multi-page PDFs are handled in one upload — you don't need to split them. Scanned PDFs and images don't need to be flattened, deskewed, or pre-processed; GJSDocs handles OCR end-to-end.

Step 2 — Format-specific handling

DOCX imports

GJSDocs reads the document structure directly from the .docx XML, so headings, lists, and table layouts come through exactly as authored. Inline images are extracted and re-embedded in the template. Styles map to the GJSDocs typography system, so you can keep the original look or apply your brand stylesheet on top.

PDF imports

For digital PDFs (the kind generated by exporting from Word, Pages, or any application), GJSDocs uses the embedded text and font metadata to rebuild the document with high fidelity. For scanned PDFs, an OCR pass extracts the text first; layout is reconstructed from the visual grid. Either way, page breaks, columns, tables and headers are detected automatically.

JPG and PNG imports

Image inputs run through the same OCR + layout pipeline as scanned PDFs. A photograph of a paper form, a screenshot of a competitor's invoice, or a designer's PNG mockup all become editable templates. Higher-resolution images give better OCR results — 300 DPI or above is ideal.

Step 3 — Review detected fields and variables

GJSDocs presents a side-by-side preview after import: the original file on one side, the parsed template on the other. Detected placeholders — the parts of the document that should be dynamic at generation time — are highlighted.

Common patterns picked up automatically:

  • Bracketed placeholders like [Client Name], <Date>, or {{amount}} are converted directly into named variables.
  • Underline gaps (e.g. "Name: ____________") are recognised as fields ready to be filled.
  • Repeating data — names, dates, addresses, monetary amounts, account numbers — is suggested as variables you can confirm or skip.
  • Form-style "Label: Value" pairs are paired up so the value side becomes editable while the label stays static.

You can rename variables to match your existing schema (e.g. rename {name_1} to {client.name}), confirm suggestions in bulk, or drop a detection that should stay as static text.

// Example: detected variables in a sample contract

{client.company} → "Acme Corp Ltd."

{client.signatory} → "Jane Doe, CFO"

{contract.start} → "2026-06-01"

{contract.term} → "24 months"

{contract.fee.total} → "$48,000"

Step 4 — Open in editor and connect data

Click Open in editor and the template lands in the GJSDocs visual editor with every block already in place. From there you can adjust styling, add or remove blocks, hook the variables to a data source (Airtable, Google Sheets, HubSpot, REST API), and start generating.

Where the import flow saves the most time

  • Migrating a legacy document library. Dozens of historical contracts, proposals, or invoices that already work — converted in an afternoon instead of rebuilt over weeks.
  • Scanned and paper-only documents. Tax forms, government templates, and signed legal documents that exist only as scans become first-class candidates for automation.
  • Vendor or partner templates. When a client sends a PDF and asks "can you generate this for each region?", drop their file into GJSDocs and start producing the variants the same day.
  • Designer mockups. A PNG of a layout from a designer becomes a working template; you skip the manual rebuild step entirely.
  • Word documents shared by other teams. Legal sends a DOCX, finance sends a DOCX, ops sends a DOCX — all importable, all editable, all ready to generate from.

Tips for cleaner imports

  • Prefer the original digital export when you have it. A PDF generated from Word converts more accurately than a print-and-scan version, even though both work.
  • Use a high-resolution source for images. 300 DPI or higher noticeably improves OCR text extraction compared to web-resolution screenshots.
  • Rename detected variables before saving. Auto-generated names ({field_1}, {field_2}) work, but using your team's naming convention upfront — {client.name}, {invoice.total} — saves mapping work later when you connect a data source.
  • Review tables manually. Complex tables with merged cells and irregular column widths sometimes need a small adjustment in the editor after import.
  • Keep the original file. The import is non-destructive — your uploaded file is preserved — but it's good practice to keep the source alongside the generated template for compliance and reference.

From import to live document pipeline

Importing the source file is step one. Once the template exists, every other GJSDocs feature is available to it: connect Airtable, Google Sheets, or HubSpot as the data source; trigger generation via the API or Zapier; bulk-generate hundreds of personalised PDFs in parallel; export to DOCX or HTML if a downstream tool needs an editable format.

The most common pattern after converting a first batch: connect the resulting templates to a CRM or spreadsheet, and move from "edit this document for each new client" to "press a button" — or, more often, no button at all because the workflow runs automatically on a webhook.

Convert your first file in under a minute

Upload a DOCX, PDF, or image and watch GJSDocs return a fully editable template with variables already wired up. Free trial — no credit card.

Try the importer