A tiny macOS utility for document + image work. Drag files in, hit a button.
- Convert between PDF, Markdown, HTML, DOCX, RTF, ODT, EPUB, TXT, LaTeX, PNG, JPEG, WebP, HEIC, TIFF, GIF, BMP.
- Merge PDFs.
- Split PDFs — one file per page, or extract a range.
- PDF Tools — compress, number pages, crop margins.
- Editor — interactive PDF editor with a live preview. Click to place a signature, click to drop text, click on existing text to edit it (font-substituted).
- Remove background from images with Apple's on-device subject-isolation model (macOS 14+).
Native SwiftUI, no analytics, no accounts, no cloud round-trip. Everything runs locally.
Download the app
Grab the latest Format.zip from Releases, unzip, and move Format.app to your Applications folder.
First launch (Gatekeeper)
Because the app isn't signed with a paid Apple Developer certificate, macOS will refuse the very first launch with something like "cannot be opened because the developer cannot be verified." Fix once:
- Right-click (or Control-click)
Format.app→ Open → Open again on the confirmation dialog.
That whitelist entry sticks — from then on, double-click launches normally.
Optional tools
Format does the geometry-only work (PDF merge, PDF → PNG, images → PDF) on its own. The text conversions shell out to open-source CLIs. Install them once:
curl -fsSL https://raw.githubusercontent.com/olivernox05/formatc/main/setup.sh | bashOr if you'd rather do it by hand:
brew install pandoc # MD ↔ HTML, PDF ↔ DOCX
brew install --cask basictex # MD/HTML → PDF (needs sudo)
python3 -m pip install --user pymupdf4llm # PDF → MarkdownAfter installing, click Refresh in the status bar at the bottom of the Format window. Each tool's chip turns green as the app detects it.
Text formats (PDF, Markdown, HTML, DOCX, RTF, ODT, EPUB, TXT, LaTeX) convert any-to-any via pandoc, plus PDF → Markdown via pdf2md.py (better tables than pandoc's PDF reader). Anything → PDF that isn't already goes through xelatex.
Image formats (PNG, JPEG, WebP, HEIC, TIFF, GIF, BMP) convert any-to-any natively via Core Graphics / ImageIO — zero installs.
Cross-category:
- Any image → PDF (bundles into a single-page or multi-page PDF)
- PDF → PNG (rasterizes each page at 200 DPI)
- Any image → transparent PNG with background removed (Vision framework)
Plus PDF merge (drop-and-reorder), PDF split (per-page or range), Edit PDF (compress, number pages, crop margins), and background removal.
- macOS 14 (Sonoma) or later
- Apple Silicon or Intel — the app is a universal binary
If you'd rather build it yourself:
brew install xcodegen # one-time
git clone https://github.com/olivernox05/formatc.git
cd formatc/app
xcodegen generate
open FormatC.xcodeproj # Cmd-R in XcodeOr headless:
xcodebuild -project app/FormatC.xcodeproj \
-scheme FormatC -configuration Release \
-destination 'platform=macOS' buildTo produce a notarized zip that macOS accepts without the right-click → Open dance, do the one-time setup in docs/notarize.md and run ./scripts/release.sh. Without the setup, the script still builds a working local .app — just falls back to ad-hoc signing.
- SwiftUI + PDFKit for the native operations (
app/FormatC/Services/PDFOps.swift,ImagePDFOps.swift) - Bundles the
pdf2md.pyscript — a heuristic PDF → Markdown converter with table detection, page-furniture stripping, and dehyphenation. Usespymupdf4llmwhen available, falls back topdfplumber. - Shells out to
pandocfor everything Markdown/HTML/DOCX-shaped, withxelatexfor the PDF output path.
The app detects each tool at launch and greys out any conversion whose dependency is missing — you never see a scary error, just a chip that hasn't lit up yet.
MIT.