Open, edit and save PDF files in PhotoCraft
How PhotoCraft v0.23.1 opens PDF files (each page as an artboard), turns PDF paths and text into editable layers with photocraft-cli, and saves multi-page PDFs with vector text and spot colour plates.
Since v0.22.0, PhotoCraft opens PDF files on the desktop (#11647). Use File › Open… (Ctrl+O, ⌘O) or drag the file onto the window. Each page becomes one artboard, side by side in a single document, rendered at 300 dpi by default so it keeps its printed size. Pages arrive as pixels: in the app, PDF text and vector shapes aren't editable. To get editable shape and text layers, convert the file with photocraft-cli convert --pdf-editable (#12275). To save, pick PDF in File › Save As… or Save a Copy…: a document with artboards becomes a multi-page PDF, one page per artboard. PhotoCraft is free, works offline and needs no account.
This page describes PhotoCraft v0.23.1 (12 November 2026). PDF saving has been there since v0.10.0 (#3441). Since v0.21.0 the top text and shape layers stay vectors (#10355), and since v0.23.0 spot channels leave as separate colour plates (#10384). Get the app from the download page. The online editor can't open PDFs.
Open a PDF
- Choose File › Open… and pick the
.pdf. You can also drop it on the tab strip, or anywhere in the window when no document is open. - Wait while the pages render. A large page at a high DPI takes a while, and the open can be cancelled.
- Read the notice if one appears. It says when pages were left out or the DPI was lowered (see below).
The result is one RGB, 8-bit document. Each page is a group named Page 1, Page 2 and so on, set up as an artboard and holding one pixel layer of the same name. The artboards sit in a row with an 80 px gap between them. The document's resolution is the DPI the pages were rendered at, so pixels ÷ resolution gives each page's real size. Transparent page areas are drawn over white, as PDF viewers show them.
Dropping a PDF on the canvas of a document that's already open places it into that document instead, as with any other file. Upstream has an open report that a multi-page PDF dropped this way arrives as one smart object rather than one artboard per page (#13136). Use File › Open… to get the artboards.
Resolution and pages: Preferences › File Handling
The open uses three settings in Edit › Preferences › File Handling…. The labels are generated from the setting names, so they read as below even in the Chinese interface:
| Setting | Default | What it does |
|---|---|---|
| Pdf dpi | 300 | The resolution pages render at. Higher means more pixels, not a bigger page. Values above 2400 are treated as 2400 |
| Pdf first page | 0 | The first page to open, counting from 1. 0 means from the first page |
| Pdf last page | 0 | The last page to open. 0 means to the last page |
These settings apply to every PDF you open until you change them back, so after opening pages 17 to 32 of a long file, set both page fields back to 0. A first page past the end of the file is an error: "PDF page range starts at 40, but the PDF has 12 pages".
For reference, an A4 page at 300 dpi is 2480 x 3508 px, and a US Letter page is 2550 x 3300 px.
Limits on the open
- 16 pages per open. A longer file opens its first 16 pages (or 16 pages from Pdf first page) with the notice "PDF has 40 pages; imported pages 1-16 (the page limit is 16)". Open the next pages by changing the page settings.
- Automatic DPI lowering. The renderer draws at most 8192 px on a side and 64 million pixels per page, and the whole document at most 200 million pixels. When the chosen DPI would go past that, PhotoCraft lowers it in steps of 10% until everything fits, keeping each page's printed size, and says so: "PDF was rendered at 243 dpi to fit the import limits". That's what happens to an A1 poster (594 x 841 mm) at the default 300 dpi, because it would be 9933 px tall.
- Memory. Before any page renders, PhotoCraft estimates the pixel memory the open needs. If it's over the limit (2 GB unless a smaller one is set), the open stops with "PDF import needs about N MB of pixel memory; the limit is 2048 MB (lower the import DPI)".
- Passwords. A password-protected (encrypted) PDF doesn't open. There's no password prompt yet.
- Forms and comments. Pages are drawn with the renderer's default settings, so annotations and filled-in form fields appear on the page as they look, and comments aren't hidden. They're part of the pixels, not fields you can fill in or comments you can edit.
- Damaged files and pictures. A file the reader can't parse gives an error instead of crashing the app. An image inside the PDF that can't be decoded is left out, with a notice naming the page.
What renders the pages
The pages are drawn by craft-pdf, a PDF reader and renderer written in Rust on top of Hayro, from upstream's shared craft-libs. It is part of the app on Windows, macOS, Linux and FreeBSD, with no PDF library or plug-in to install.
Illustrator .ai files
An Illustrator file saved with PDF compatibility is a PDF inside, and its bytes start with %PDF-. Since v0.22.0 such .ai files open the same way, one artboard per page. Older PostScript-only .ai files don't. The check goes by content, so a PDF with the wrong extension still opens as a PDF, while a real PNG or JPEG wrongly named .pdf opens as the image it is.
Not in the browser
The web build, including this site's online editor, refuses PDF files with "PDF import needs the desktop build". Use the desktop app, or photocraft-cli below.
Editable PDF import with photocraft-cli
photocraft-cli convert can turn a PDF's vector paths and text into layers you can edit (new in v0.22.0, #12275). Upstream calls it experimental. It is built only into photocraft-cli: the desktop app is compiled without it and always opens PDFs as pixels. An open request asks for it in the app's preferences (#12484). To find photocraft-cli on your system, see MCP and CLI.
Three flags of convert deal with PDF input:
| Flag | What it does |
|---|---|
--pdf-editable | Paths become shape layers and text becomes text layers, page by page |
--pdf-dpi <DPI> | Render resolution, default 300. It must be a positive number: 0, negative values and text are refused as a usage error |
--pdf-pages <N or N-M> | Pages to read, counting from 1: 3 or 2-7. The default is all pages, up to 16. 0 is refused |
They belong to convert only. run and info open a PDF with the default settings: 300 dpi, up to 16 pages, as raster pages. batch skips .pdf files, whether you list them or point it at a folder, because it only takes the image formats PhotoCraft's codecs read and its own document formats (batch.rs). To convert several PDFs, run convert once per file.
A layered PSD from the first three pages of a brochure:
photocraft-cli convert brochure.pdf brochure.psd --pdf-editable --pdf-pages 1-3
Without --pdf-editable, the same command writes a PSD with one pixel layer per page. Notices are printed to the standard error output.
What becomes editable
Each page is still one artboard group named Page N, but it holds layers instead of a picture:
- Shape layers from every filled or stroked path with a solid colour, keeping the fill rule, stroke width, dashes, caps and joins. A zero-width hairline becomes 1 px wide.
- Text layers from text set in a font embedded in the PDF that maps to Unicode and has a PostScript name. Each line, and each change of style within it, becomes one point-text layer, in the paint order of the page. The embedded font is registered under its own name. Text that a word processor made "bold" by drawing it filled and outlined in the same colour becomes faux bold.
Then a notice: "PDF text uses fonts embedded in the PDF; it may change font when edited or reopened". The document keeps the text but not the font file, so when you edit the text, or reopen the PSD on a machine without that font, another font can take its place.
When a page falls back to pixels
A page is never half editable. If anything on it can't become a layer, the whole page is rendered as pixels like a normal open, and a notice names the page and the reason, for example "PDF page 2: images; the page was rasterised". Reasons include:
- Photos and other images on the page, and annotations.
- Clipping paths, except a rectangle that covers the whole page, soft masks, transparency groups and blend modes other than Normal.
- Gradient and pattern fills, and strokes under a stretched or skewed transform.
- Text without an embedded font (including the 14 standard PDF fonts, which a PDF only names), Type 3 fonts, text without a Unicode mapping, skewed or mirrored text, outlined text other than faux bold, and text used as a clip.
- Very busy pages: more than 20,000 layers, a million path points or 100,000 glyphs, or more than 256 MB of layer caches.
So a page of charts, diagrams or laid-out text in embedded fonts usually becomes editable, while a page with a photo on it comes in as pixels. The page size, DPI limits and 16-page cap are the same as for a normal open.
Save as PDF
File › Save As… (Ctrl+Shift+S, ⌘⇧S) and File › Save a Copy… (Ctrl+Alt+S, ⌘⌥S) both offer PDF, and photocraft-cli convert design.psd design.pdf does the same. There's no options dialog. What you get:
- A flattened file. Layers aren't kept and transparency is composited over white (RGB and Grayscale) or over paper with no ink (CMYK). The notice says so. Each page is the size of the document's print size (pixels ÷ resolution), compressed without loss, at 8 bits per channel, with the document's colour profile embedded.
- One page per artboard. A document with artboards becomes a PDF with one page per artboard. Since v0.22.0 each page carries its artboard's name as its page label, and a hidden artboard still gets its page (#11647). A PDF you opened in PhotoCraft therefore saves back as a multi-page PDF.
- Vector text and shapes, on a single page only. Since v0.21.0, in a document without artboards the visible text and shape layers at the top of the stack are written as vector paths over the image, so they stay sharp and the text can be selected and searched (#10355). A layer counts while it has Normal blending, 100% opacity and fill, and no mask, clipping or layer effects. The first layer that doesn't stops the run. A document with an embedded colour profile, and text with more than 255 different characters, stay pixels. Full rules are in File formats. Artboard pages are always pixels: the notice reads "vector/text layers on artboards are rasterised".
- Colour modes. RGB, Grayscale and CMYK documents save. A Multichannel document saves as its spot plates alone. Lab, Indexed, Bitmap and other modes need converting first with Image › Mode.
- Memory. A multi-page save is limited to about 1 GB of page data. Past that it stops with "export them in smaller batches".
Spot colours as separation plates (v0.23.0)
Since v0.23.0 a document's spot channels go into the PDF as overprinting Separation colours, one 8-bit plate per channel, named after the channel (#10384). A RIP or a separating tool such as Ghostscript's tiffsep turns them into their own plates, for example a white underbase or a Pantone ink, instead of mixing them into CMYK. Each artboard page carries its own part of every plate. The ink colours and solidity are also recorded in the file's XMP metadata so they can be rebuilt as spot channels later.
Two things to know:
- In a viewer that ignores overprint, such as most browsers, the last plate shows as a solid area over the picture. Acrobat or Illustrator with Overprint Preview on, and a separating RIP, show the real result.
- The app has no switch for it: Save As always writes the plates, as Photoshop's PDF save keeps spot channels. Scripts and agents can leave them out with
"pdfSpotPlates": falseonfile.saveAsorfile.saveACopy.
File › Export › Artboards to PDF…
File › Export › Artboards to PDF… writes all the artboards into one PDF too, but differently from Save As. Each artboard is flattened over white and stored as an RGB JPEG at a quality from 0 to 12 (10 by default), sized to its print size, with no colour profile, vectors or spot plates. It makes smaller files for review or email. Save a Copy keeps exact pixels, CMYK and the plates. The command needs at least one artboard.
File › Print… › Save as PDF
The Print dialog has a Save as PDF section with a path field and, since v0.11.1, a Browse… button (#7586). With a path set, Print writes the page as the dialog lays it out instead of sending it to a printer: the paper size, position, scale, crop and registration marks, description and labels. Use it for a print-ready proof on a fixed paper size.
Common tasks
PDF to PSD
- As pictures, in the app: open the PDF with File › Open…, then File › Save As… and pick PSD. Each page comes out as an artboard holding a pixel layer.
- As layers:
photocraft-cli convert file.pdf file.psd --pdf-editable. Read the notices to see which pages fell back to pixels, and check the fonts before you edit text. - More than 16 pages: convert in runs, such as
--pdf-pages 1-16then--pdf-pages 17-32, into separate files.
Edit one page
- Set Pdf first page and Pdf last page to the page number in Edit › Preferences › File Handling…, or use
--pdf-pages 5withphotocraft-cli convert. - Open the PDF and make your changes. Raise Pdf dpi first if the page will be printed large.
- File › Save a Copy… as PDF writes that page as a new one-page PDF.
- Set the page fields back to 0.
PhotoCraft writes a new file. It doesn't replace a page inside the original PDF, so put the page back with a PDF tool.
Several designs into one PDF
Put each design on its own artboard (Layer › New › Artboard…, or Artboard from Layers…), then use File › Save a Copy… as PDF for a lossless file, or File › Export › Artboards to PDF… for a smaller JPEG-based one. Both give one page per artboard. Upstream doesn't yet have Photoshop's PDF Presentation command for combining separate files (#6637).
Compared with Photoshop
Photoshop opens a PDF through its Import PDF dialog, where you pick the pages, resolution and colour mode, and each page you pick opens as its own document. PhotoCraft opens the pages as artboards in one document and takes its settings from Preferences. A pull request for a Photoshop-style Import PDF dialog is open upstream (#11414). Photoshop PDF can also keep layers for editing in Photoshop later. PhotoCraft's PDF is always flattened, so keep a PSD or .pcraft copy of anything you'll edit again.
Limits and open issues
As of 12 November 2026, upstream has these open:
- Multi-page PDF dropped on a document arrives as one smart object (#13136).
- Editable import only in the CLI, with a request to put it in the app (#12484), and a request for a layer group per page with its objects separated (#9871).
- Transparency is flattened in PDF output (#11642).
- No quality or compression settings for Save As PDF, so photo-heavy PDFs are large (#9642). Artboards to PDF… is the smaller option.
- No password prompt, no multi-page PDF from separate files (#6637), and no PDF in the web build.
For other formats, see File formats. For scripting conversions in bulk, see MCP and CLI.