Getting Started
Basic Usage
File Management
PDF Customization
Advanced Features
Platform-Specific Features
Troubleshooting
Technical Details
Privacy & Security
Markdown to PDF is a native iOS, iPadOS, and macOS application that converts Markdown files into high-quality PDF documents. It provides a clean interface for selecting markdown files, previewing them, and generating professional-looking PDFs with customizable formatting options.
iOS: 15.6 and later
iPadOS: 15.6 and later
macOS: 15.5 and later (via Mac Catalyst)
Launch the app
Tap “Select Markdown File” to choose a .md
or .markdown
file
The app will automatically generate a PDF preview
Use the “Share PDF” button to save or share your document
.md
(Markdown)
.markdown
(Markdown)
General text files with markdown content
Tap the “Select Markdown File” button on the main screen. This opens your system’s file picker where you can browse and select markdown files from:
Files app
iCloud Drive
Other connected cloud storage services
Local device storage
After selecting a markdown file, the app automatically generates a PDF preview. This shows exactly how your final PDF will look, including:
Page breaks
Formatting
Font styling
List indentation
Heading colors
In the PDF preview, tap the “Share PDF” button
On iOS/iPadOS: Use the standard share sheet to save to Files, email, or share with other apps
On macOS: Use the file save dialog to choose your destination
The app maintains a list of recently opened markdown files for quick access. These appear on the main screen below the file selection button.
Tap the “Clear” button next to “Recent Files” on the main screen.
Due to iOS/macOS sandboxing, the app needs permission to access files outside its container. Recent files use security-scoped bookmarks to maintain access. If you encounter permissions issues:
Try selecting the file again from the file picker
Ensure the file hasn’t been moved or deleted
Check that you have read permissions for the file
Yes! The app monitors your selected file for changes and automatically regenerates the PDF preview when:
The file content changes
You save edits in your markdown editor
File modification time updates
The monitoring checks every 2 seconds for changes.
Tap the gear icon (⚙️) in the PDF preview screen to open comprehensive formatting options.
Letter: 8.5” × 11” (612 × 792 points)
A4: 210mm Ă— 297mm (595.28 Ă— 841.89 points)
Legal: 8.5” × 14” (612 × 1008 points)
Yes, choose between:
Portrait (default)
Landscape
The app offers three font categories:
Content Font: For body text and paragraphs
Heading Font: For all heading levels (H1-H6)
Code Block Font: For code blocks and inline code
Available font families include system fonts and monospaced options.
Yes! The app provides:
Predefined colors: Black, Dark Blue, Dark Green, Purple, Red, Orange, Dark Gray
Custom color picker: Choose any color with full RGB control
Default: Black headings
Use the margin controls in settings to adjust:
Top margin
Bottom margin
Left margin
Right margin
Margins are adjustable from 0.5” to 2” in 0.25” increments.
Yes:
Font Size: 8pt to 20pt in 1pt increments
Line Spacing: 1.0x to 2.0x in 0.1x increments
Page numbers are optional and can be toggled in settings. When enabled, they appear centered at the bottom of each page.
The app provides sophisticated list formatting:
Proper indentation: Nested lists indent appropriately
Mixed nesting: Supports ordered lists inside unordered lists and vice versa
Text alignment: Subsequent lines align with the start of the first line’s text
Consistent spacing: Maintains proper spacing between list items
Headings: H1 through H6 with customizable colors
Paragraphs: With proper spacing and line height
Lists: Ordered, unordered, and nested combinations
Code blocks: With syntax highlighting background
Inline code: Monospaced font with background
Bold text: Strong emphasis
Italic text: Emphasis styling
Links: Clickable links in PDF output
Block quotes: Indented and styled appropriately
The app uses intelligent page breaking:
Avoids breaking text mid-word
Finds natural break points (spaces, punctuation)
Uses binary search algorithms for optimal text fitting
Maintains proper text flow across pages
Yes, the app includes:
English interface and sample files
Spanish interface and sample files (muestra.md
)
Locale-aware sample file selection
Share Sheet: Native iOS sharing interface
Touch-optimized: Designed for finger navigation
Files app integration: Seamless file access
Universal app: Works on both iPhone and iPad
File Save Dialog: Native macOS file management
Keyboard shortcuts: Standard macOS navigation
Window management: Resizable windows
Menu bar integration: Standard macOS app behavior
SheeKit is used for enhanced modal presentations, providing:
Adaptive sizing: Medium and large detent options
Smooth animations: Fluid sheet transitions
Better UX: More polished presentation than standard sheets
Check that the file hasn’t been moved or renamed
Ensure you have write permissions to the file location
Try closing and reopening the file
Verify the file contains valid markdown syntax
This is due to iOS security restrictions. To resolve:
Re-select the file using the file picker
The app will regain access and add it to recent files
Future access should work automatically
This is normal - different applications render markdown differently. Our app:
Uses Apple’s official swift-markdown parser
Follows CommonMark standards
Optimizes for print layout rather than screen display
Ensure your markdown uses proper list syntax:
- First level item
- Second level item
- Third level item
1. Ordered item
- Mixed nesting works too
This typically happens with complex line breaks. The app:
Normalizes whitespace automatically
Handles soft breaks and line breaks properly
May differ slightly from your source editor’s display
Restart the app
Check available device storage
Try with a smaller markdown file
Ensure your iOS/macOS version is supported
The app is built with:
swift-markdown: Apple’s official markdown parser
SheeKit: Enhanced sheet presentations
cmark-gfm: CommonMark parsing engine
All open source licenses are viewable in the app via the ellipsis menu (⋯).
DirectPDFGenerator: Custom PDF creation using Core Graphics
NSAttributedString: Rich text formatting
Binary search algorithms: Optimal text fitting
Security-scoped bookmarks: Persistent file access
Timer-based polling: Checks every 2 seconds
File modification tracking: Compares modification dates
Content validation: Only regenerates when content actually changes
Automatic cleanup: Stops monitoring when view disappears
Lazy loading: Only loads content when needed
Efficient text rendering: Uses Core Graphics optimization
Smart caching: Minimal memory footprint
Background processing: PDF generation on background queue
The app does not collect, store, or transmit any personal data. All processing happens locally on your device.
Original files: Remain in their original locations
Recent file references: Stored as security-scoped bookmarks locally
Generated PDFs: Saved to your chosen location (Files app, etc.)
Yes:
Local processing: All markdown parsing and PDF generation happens on-device
Sandbox security: Follows Apple’s app sandboxing guidelines
Permission-based access: Only accesses files you explicitly select
Absolutely! The app works completely offline and doesn’t require any internet connection.
Still stuck? Need a new feature? Contact me at markdown-to-pdf@brandonthomson.com.
Need a custom iOS or Mac app? I can build your app and publish it in the App Store.