Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>PDF CanvasNew to Visual Studio Code? Get it now.
PDF Canvas

PDF Canvas

Preview

crystallee-ai

|
3 installs
| (1) | Free
Infinite canvas with PDF annotations and Markdown notes
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

PDF Canvas

简体中文

Visual Studio Marketplace version License

PDF Canvas is a VS Code extension for reading, annotating, and connecting ideas across PDFs on an infinite canvas. It opens the human-readable .pcanvas format as a custom editor and keeps the whole research workflow inside your workspace.

PDF Canvas is currently a preview. Back up important canvases before upgrading.

What you can do

  • Arrange multiple PDFs and Markdown notes freely on an infinite canvas.
  • Select and copy PDF text, create text highlights, and mark rectangular regions.
  • Draw connectors from annotations to existing notes, or drop a connector on empty space to create a linked note.
  • Write Markdown with inline and display KaTeX equations.
  • Copy a note and its linked PDF quotations as a ready-to-share PNG card.
  • Pan, zoom, multi-select, move, resize, collapse, delete, undo, and redo.
  • Export annotations and linked notes to Markdown in PDF and page order.
  • Save stable, human-readable JSON that produces useful Git diffs.
  • Synchronize canvas JSON through WebDAV, including built-in Jianguoyun support.
  • Use the canvas UI in English, Simplified Chinese, Traditional Chinese, or Japanese.

Install

Install PDF Canvas from the Visual Studio Marketplace, or download a VSIX from GitHub Releases and run Extensions: Install from VSIX... in VS Code.

PDF Canvas requires VS Code 1.84 or newer. Node.js is needed only when building the extension from source.

Quick start

  1. Right-click a folder in the Explorer and choose New PDF Canvas.
  2. Drag a PDF onto the canvas, or choose + PDF from the toolbar.
  3. Press T to select text, H to highlight text, or R to mark a region.
  4. Drag the circular handle on an annotation to a note. Drop it on empty canvas space to create a linked note immediately.
  5. Double-click a note to edit it. Use $E=mc^2$ for inline math or $$ ... $$ on its own line for display math.
  6. Select the copy button in a note header to place a PNG card containing the note and its linked sources on the clipboard.
  7. Press Cmd/Ctrl+S to save.

PDFs selected from the VS Code Explorer or file picker are stored as relative references. PDFs dragged from Finder or another external application are copied to an assets/ folder when pdfCanvas.copyPdfIntoWorkspace is enabled. External files larger than 32 MB must be added with + PDF.

Controls

Action Control
Pan Space + drag, middle/right-button drag, trackpad gesture, or drag a PDF page
Zoom Ctrl/Cmd + wheel or trackpad pinch
Fit all content Shift+1
Reset zoom Cmd/Ctrl+0
Switch tools V Select, T Text, H Highlight, R Region, N Note
Create a note Double-click empty space, or press N and click
Edit a note Double-click it, or select it and press Enter
Multi-select Drag on empty space, or Shift + click
Delete Delete / Backspace
Undo / redo Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z

Connectors do not use a separate tool. Annotation handles are always available.

Remote sync

Remote sync uploads only the .pcanvas JSON. Referenced PDFs and the assets/ folder are never uploaded automatically.

For Jianguoyun:

  1. Create an app password under Account Information → Security Options → Third-party App Management. Do not use your account password.
  2. Run PDF Canvas: Configure Remote Sync. Keep the default WebDAV URL, enter your login email and app password, and choose a shared remote folder name.
  3. Use the cloud buttons in the editor title bar to upload or pull a canvas.
  4. On another device, run PDF Canvas: Browse Jianguoyun Remote Canvases to download a canvas into the current workspace.

Credentials are stored in VS Code SecretStorage. Sync is disabled in untrusted workspaces, and HTTPS is required except for loopback development servers.

Commands

Command Purpose
PDF Canvas: New PDF Canvas Create a .pcanvas file
PDF Canvas: Add PDF Add one or more PDF references
PDF Canvas: Fit View Fit all canvas content in the viewport
PDF Canvas: Export as Markdown Export annotations and notes to a sibling .md file
PDF Canvas: Configure Remote Sync Configure WebDAV and credentials
PDF Canvas: Browse Jianguoyun Remote Canvases Find and download remote canvases
PDF Canvas: Upload to Remote Upload the current canvas with conflict checks
PDF Canvas: Pull from Remote Pull while protecting unsynchronized local changes

Settings

Setting Default Purpose
pdfCanvas.language zh-CN Canvas interface language
pdfCanvas.defaultHighlightColor yellow Color for new annotations
pdfCanvas.copyPdfIntoWorkspace true Copy externally dropped PDFs into assets/
pdfCanvas.maxRenderScale 2.5 Maximum PDF bitmap render scale
pdfCanvas.noteDefaultWidth 320 Default note width
pdfCanvas.sync.serverUrl Jianguoyun WebDAV WebDAV server URL
pdfCanvas.sync.authType webdav webdav or bearer-token authentication
pdfCanvas.sync.username Empty WebDAV username or Jianguoyun email
pdfCanvas.sync.namespace PDF Canvas Remote folder shared by devices

File format and privacy

.pcanvas is stable, human-readable JSON. Annotation coordinates are normalized to PDF pages, and viewport state is stored in VS Code workspace state so that navigation does not dirty the document. Invalid files open in a protected read-only state instead of being overwritten.

PDF Canvas has no telemetry or advertising. It renders PDFs and Markdown locally and contacts a WebDAV service only when you explicitly use a sync command. Raw HTML is disabled in Markdown, and external note links are limited to HTTP(S).

See SECURITY.md for vulnerability reporting and SUPPORT.md for help.

Development

npm ci
npm run check
npm run package

Open the repository in VS Code and press F5 to launch an Extension Development Host. npm run watch rebuilds both bundles during development. For webview and PDF rendering checks, run npm run smoke and open the reported local URL.

Please read CONTRIBUTING.md before submitting a change.

Known limitations

  • Connectors currently run from PDF annotations to notes, not note to note.
  • Local relative-path images in notes are not converted to webview resources.
  • Region annotations do not embed cropped images in notes.
  • PDF files are not included in remote synchronization.
  • Frames, PNG canvas export, cross-page merged selections, and Obsidian .canvas conversion are not yet supported.

License

PDF Canvas is released under the MIT License. Bundled third-party components retain their original licenses; see THIRD_PARTY_NOTICES.md.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft