Skip to content

Exporting

Valerio edited this page Oct 10, 2026 · 1 revision

Exporting

Text

Open Text in Editor (… menu, Document section) extracts the text of every page into a new, untitled editor named after the PDF (document.txt), ready to copy, search or save. Each page starts with a line such as --- Page 3 --- (with the page label when the PDF defines one, e.g. --- Page iv (4) ---).

Scanned PDFs without a text layer have no text to extract: PDF Tools has no OCR.

Page images

  • Copy Page as Image puts the current page on the clipboard as a PNG.
  • Export Page as PNG… saves it to a file (document-p3.png by default).

Images are rendered at twice the page size (144 dpi, capped for very large pages), with the current form values and the view's rotation. Page colors (Match Theme Colors) are not applied.

Links to a page

Copy Link to This Page copies a link that opens the PDF at the current page in VS Code:

vscode://ryadel.pdf-tools/open?page=12&file=D%3A%5CDocs%5Cmanual.pdf

Paste it in your notes, a Markdown file or a chat; clicking it opens VS Code (if needed), then the PDF at that page. The link contains the file's path on your machine, so it works for you and for colleagues with the same path.

Form data (JSON and XFDF)

Export Form Data… and Import Form Data… (… menu, Form section) save and load all field values. The file format follows the extension you choose:

  • XFDF — the XML format of Adobe Acrobat and most PDF tools. Field names are nested by their dotted parts; unchecked checkboxes and unselected radio groups are Off.
  • JSON — PDF Tools' own, easy to read and edit:
{
  "format": "pdf-tools-form-data",
  "version": 1,
  "source": "application.pdf",
  "fields": {
    "Name": "Jane Doe",
    "Address.City": "Springfield",
    "Subscribe": true,
    "Plan": "Premium",
    "Options": ["A", "C"],
    "Contact": null
  }
}

Text fields are strings, checkboxes true/false, radio groups and drop-downs the selected value (null for none), multi-selection lists an array. A plain object of "name": value pairs is accepted as well.

On import, values are matched by full field name. Fields the form does not have are reported and ignored; read-only fields are left unchanged. The imported values are unsaved changes: save the PDF to keep them.

Clone this wiki locally