Desktop App Overview & Installation
PDFModule Desktop is a powerful native application for PDF preflight checking and fixing. It provides a visual interface for validating PDFs against print production standards, applying automatic corrections, and automating workflows with hot folders.
Preflight Checking
Validate PDFs against industry standards for fonts, colors, images, transparency, bleed, and more.
Automatic Fixes
One-click corrections for common issues: add bleed, embed fonts, convert to CMYK, flatten transparency.
Hot Folder Automation
Monitor directories and automatically process new PDFs as they arrive - perfect for production workflows.
Batch Processing
Process multiple PDFs simultaneously with comprehensive reporting and job history.
System Requirements
| Platform | Requirements |
|---|---|
| macOS | macOS 10.13 (High Sierra) or later. Supports both Apple Silicon (M1/M2/M3) and Intel processors. |
| Windows | Windows 10 or later. Supports both x64 and ARM64 architectures. |
Download & Installation
Download the latest version from pdfmodule.com/download
macOS Installation
- Download the
.dmgfile for your processor (Apple Silicon or Intel) - Open the downloaded DMG file
- Drag PDFModule to your Applications folder
- On first launch, right-click the app and select "Open" to bypass Gatekeeper
- If you see a security warning, go to System Preferences > Security & Privacy and click "Open Anyway"
Alternatively, run this command in Terminal to remove the quarantine flag:
xattr -cr /Applications/PDFModule.app
Windows Installation
- Download the
.exeinstaller - Run the installer (you may need to click "More info" then "Run anyway" if SmartScreen appears)
- Follow the installation wizard
- Launch PDFModule from the Start menu or desktop shortcut
First-Time Setup
- Launch PDFModule Desktop
- You'll see the onboarding wizard - choose Sign Up or Log In
- If signing up, enter your email, password, and company name
- If logging in, enter your existing PDFModule credentials
- The app will connect to PDFModule cloud and load your preflight profiles
- You're ready to start processing PDFs!
Application Interface
PDFModule Desktop has a clean, intuitive interface organized into five main sections accessible from the sidebar.
Sidebar Navigation
| Section | Purpose |
|---|---|
| Dashboard | Overview of activity - active jobs, completed today, hot folders, and recent jobs |
| Process Files | Upload and preflight individual PDF files manually |
| Hot Folders | Configure automated folder watching for production workflows |
| History | View all processed jobs with filtering and retry options |
| Settings | Account management, connection testing, and preferences |
Dashboard
The Dashboard provides at-a-glance metrics:
- Active Jobs - PDFs currently being uploaded or processed
- Jobs Completed Today - Successfully processed PDFs in the last 24 hours
- Active Hot Folders - Number of folders currently being monitored
- Failed Jobs - Jobs that encountered errors (click to view and retry)
Below the stats, you'll see your 5 most recent jobs with quick access to view results or open the output file.
Connection Status
The sidebar shows your connection status:
- Connected - Successfully connected to PDFModule cloud
- Offline - No connection (check your internet or credentials)
Processing Files
The Process Files page is where you upload and validate PDFs. You can process single files or entire batches.
Uploading PDFs
There are three ways to add files for processing:
- Drag and Drop - Drag PDF files directly onto the drop zone
- Click to Browse - Click the drop zone to open a file picker
- Multiple Selection - Select multiple PDFs at once for batch processing
Selecting a Profile
Before processing, select a preflight profile from the dropdown. Profiles define which checks to run and what thresholds to apply. Available profiles include:
- print_standard - Standard commercial print requirements (3mm bleed, 250 DPI min, CMYK preferred)
- print_strict - Strict specifications for high-quality print (5mm bleed, 300 DPI min, CMYK only)
- web - Web-optimized validation (no bleed required, 72 DPI min, RGB preferred)
- archive - PDF/A compliance for long-term archival
- Custom profiles - Your own profiles created via the web dashboard (Scale plan)
Processing Modes
| Mode | Description | When to Use |
|---|---|---|
| Preflight Only | Validates the PDF and reports all issues without making any changes | Initial quality check, reviewing files before deciding on fixes |
| Preflight and Fix | Validates and automatically applies fixes to create a corrected PDF | Production workflows, automated processing, quick corrections |
Processing Workflow
- Select your preflight profile from the dropdown
- Choose processing mode (Preflight Only or Preflight and Fix)
- Drop or select your PDF files
- Processing begins automatically - watch the progress in "Active Processing"
- When complete, results appear in "Recent Results"
- Click any result to view detailed findings
Job Status Indicators
| Status | Description |
|---|---|
| Pending | Job is queued and waiting to start |
| Uploading | PDF is being uploaded to the cloud |
| Processing | Preflight checks are running |
| Passed | All checks passed with no issues |
| Warnings | Passed with non-critical warnings |
| Failed | Critical issues found that need attention |
| Exporting | Fixed PDF is being generated |
| Complete | Processing finished, results available |
Understanding Results
When processing completes, click a job to view detailed preflight results. The results page provides comprehensive information about your PDF's compliance.
Overall Grade
Each PDF receives a letter grade based on the number and severity of issues found:
| Grade | Criteria | Meaning |
|---|---|---|
| A | No failures, no warnings | Excellent - Ready for production |
| B | No failures, 1-3 warnings | Good - Minor issues, likely acceptable |
| C | 1-2 failures | Fair - Issues should be reviewed |
| D | 3-5 failures | Poor - Multiple issues need fixing |
| F | More than 5 failures | Fail - Significant problems, requires attention |
Issue Summary
The summary bar shows counts for each severity level:
- Passed - Checks that met all requirements
- Info - Informational notes (not problems)
- Warnings - Potential issues that may affect quality
- Failures - Critical issues that must be fixed
Issue Categories
Issues are organized by category. Click a category to expand and see individual issues:
Geometry Issues
- Missing or insufficient bleed margins
- Incorrect page dimensions
- Missing or incorrect trim box
- Content extending beyond safe area
Font Issues
- Fonts not embedded (will cause substitution)
- Subset fonts missing characters
- Corrupted font data
- Non-standard font encoding
Color Issues
- RGB content in CMYK document
- Undefined spot colors
- Excessive ink coverage (TAC > 300%)
- Missing color profiles
Image Issues
- Low resolution images (below required DPI)
- Upscaled images
- RGB images in CMYK document
- Excessive compression artifacts
Transparency Issues
- Live transparency present
- Complex blend modes
- Transparency over spot colors
Issue Details
Click any issue to expand and see:
- Severity - FAIL, WARN, INFO, or PASS
- Description - What was found
- Page(s) - Which pages are affected
- Details - Technical specifics (dimensions, values, etc.)
- Fixable - Whether the issue can be auto-corrected
Document Information
The results page also displays PDF metadata:
- Page count
- Page dimensions (width x height in mm)
- PDF version
- File size
- Color spaces used
Applying Fixes
PDFModule can automatically fix many common PDF issues. From the results page, you have two options for applying fixes.
Fix All Issues
Click the "Fix All Issues" button to automatically apply all available fixes for detected problems. This is the quickest way to correct a PDF.
- The app identifies all fixable issues
- Appropriate fixes are applied in the correct order
- A new, corrected PDF is generated
- You're prompted to save the fixed file
Custom Fixes
Click "Custom Fixes" to manually select which corrections to apply. This is useful when you want to:
- Apply only specific fixes
- Apply fixes preventatively (before issues are detected)
- Standardize PDFs with specific requirements
Available Fixes
| Category | Fix | Description |
|---|---|---|
| Geometry | add_bleed |
Adds 3mm bleed by extending/mirroring edge content |
smart_bleed |
Intelligently adds bleed by analyzing content at edges | |
set_boxes |
Sets correct MediaBox, TrimBox, and BleedBox values | |
| Fonts | embed_fonts |
Embeds all non-embedded fonts |
subset_fonts |
Subsets embedded fonts to reduce file size | |
| Colors | convert_cmyk |
Converts all RGB content to CMYK |
convert_rgb |
Converts all CMYK content to RGB | |
convert_gray |
Converts all content to grayscale | |
spot_to_process |
Converts spot colors to CMYK process colors | |
| Images | downsample |
Reduces resolution of high-DPI images |
| Transparency | flatten |
Flattens all transparency to create opaque objects |
| Output | crop_marks |
Adds crop marks and registration marks |
optimize |
Optimizes file size through compression |
Saving Fixed PDFs
After fixes are applied:
- Click "Save Fixed PDF"
- Choose a location and filename
- The corrected PDF is saved to your computer
- Original file is never modified
Hot Folders Automation
Hot folders enable fully automated PDF processing. Configure watched directories, and PDFModule will automatically process any new PDF files that appear.
What Are Hot Folders?
A hot folder is a directory that PDFModule continuously monitors. When a new PDF is added:
- The file is detected within seconds
- PDFModule waits for the file to finish writing (2-second stability check)
- The PDF is automatically uploaded and processed
- Results are saved and the file is moved to the output folder
Use Cases for Hot Folders
- Prepress workflows - Automatically validate incoming customer files
- Design to print - Export from InDesign/Illustrator directly to a watched folder
- Network production - Central preflight station for multiple designers
- Overnight processing - Queue files for processing during off-hours
- Integration with other tools - Chain with other automation software
Creating a Hot Folder
- Navigate to Hot Folders in the sidebar
- Click "Add Hot Folder"
- Configure the settings (see below)
- Click "Create"
- The folder immediately starts monitoring
Hot Folder Configuration
| Setting | Required | Description |
|---|---|---|
| Watch Path | Yes | The folder to monitor for incoming PDFs. Click "Browse" to select. |
| Output Path | Yes | Where processed/fixed PDFs are saved after successful processing. |
| Error Path | No | Where PDFs that fail processing are moved. If not set, failed files stay in watch folder. |
| Profile | Yes | Which preflight profile to validate against. |
| Mode | Yes | Preflight Only (validate and report) or Preflight & Fix (validate and correct). |
Hot Folder Workflow
Input Folder Processing Output/Error Folders
| | |
v v v
[new.pdf] -----> [Upload & Preflight] -----> [output/new.pdf] (passed)
| |
+----> [Apply Fixes] -------+
|
+----> [output_error/new.pdf] (failed)
Managing Hot Folders
Start/Pause Monitoring
Each hot folder has an enable toggle:
- Active - Folder is being monitored, new PDFs will be processed
- Paused - Monitoring stopped, files are ignored until resumed
Edit Configuration
Click the edit button to change a hot folder's profile, mode, or paths.
Remove Hot Folder
Click "Remove" to delete the hot folder configuration. This stops monitoring but doesn't delete any files.
Best Practices
- Use separate folders per workflow - Different profiles for different projects or clients
- Always set an error path - Makes it easy to identify and review failed files
- Don't use cloud-synced folders - Dropbox/OneDrive can cause duplicate processing
- Use local SSD storage - Faster detection and processing than network drives
- Test with sample files first - Verify configuration before production use
- Monitor the Dashboard - Check regularly for failed jobs
Job History & Management
The History page provides a complete record of all PDFs processed by the desktop app, with powerful filtering and management capabilities.
Viewing History
All processed jobs are displayed chronologically with:
- File name and source path
- Processing date and time
- Profile used
- Status (Passed, Warnings, Failed)
- Grade (A-F)
- Issue counts
Filtering Jobs
Use the filter tabs to show specific job types:
- All - Every job regardless of status
- Passed - Jobs with no failures
- Warnings - Jobs with warnings but no failures
- Failed - Jobs with critical failures
- Errors - Jobs that encountered processing errors
Job Actions
| Action | Description |
|---|---|
| View Results | Open the full preflight report for this job |
| Show in Folder | Open the containing folder in Finder/Explorer |
| Retry | Reprocess the file (for failed jobs only) |
| Clear | Remove from history (doesn't delete files) |
Data Persistence
Job history is stored locally in a SQLite database:
- macOS:
~/Library/Application Support/PDFModule/pdfmodule.db - Windows:
%APPDATA%\PDFModule\pdfmodule.db
This means your history persists across app restarts and you can review results offline.
Settings & Account
The Settings page allows you to manage your connection, account, and preferences.
Account
- Connection Status - Shows whether you're connected to PDFModule cloud
- Email - Your registered email address
- Plan - Your current subscription plan
- Test Connection - Verify API connectivity
- Log Out - Sign out (removes stored credentials)
Telemetry
PDFModule can collect anonymous usage data to help improve the product:
- Toggle telemetry on/off
- View sample data to see what would be collected
- Only app usage patterns are collected, never file contents
About
- App version number
- Links to website and support
Troubleshooting
Connection Issues
Problem: "Connection failed" or "Offline" status
- Check your internet connection
- Go to Settings and click "Test Connection"
- Try logging out and back in
- Check if a firewall is blocking the app
- Verify PDFModule services are online at status page
Upload Failures
Problem: Files stuck in "Uploading" status
- Check the PDF isn't corrupted (try opening in a PDF viewer)
- Verify stable internet connection
- Try a smaller file to test
- Restart the app and retry the job
Processing Errors
Problem: Jobs show "Error" status
- Click the job to see the error message
- Common causes: corrupted PDF, encrypted/password-protected file, extremely large file
- Try the "Retry" button for temporary errors
Hot Folder Not Processing
Problem: PDFs in hot folder aren't being processed
- Verify the hot folder is enabled (shows "Active" badge)
- Check that the watch path still exists
- Ensure the app is running (hot folders don't work if app is closed)
- Try disabling and re-enabling the hot folder
- Check if the file is still being written (wait for completion)
macOS Gatekeeper
Problem: "App cannot be opened because the developer cannot be verified"
xattr -cr /Applications/PDFModule.app
Or: Right-click the app, select "Open", then click "Open" in the dialog.
Windows SmartScreen
Problem: "Windows protected your PC" warning
- Click "More info"
- Click "Run anyway"
What is PDF Preflight?
PDF Preflight is a quality assurance process that analyzes PDF files before printing or publishing to identify potential problems that could affect the final output. The term comes from aviation, where pilots perform a "preflight check" before takeoff.
In the print industry, preflight checking ensures that PDFs meet the technical specifications required for successful reproduction. This includes verifying fonts, images, colors, page geometry, and other critical elements.
The Preflight Process
- Upload - Submit a PDF for analysis (via API, desktop app, or hot folder)
- Analyze - The PDF is examined against a set of rules defined by a profile
- Report - Issues are categorized by severity (Pass, Info, Warning, Fail)
- Fix - Optionally apply automatic corrections to resolve issues
- Export - Download the validated or corrected PDF
Why Preflight Matters
Common Problems Preflight Catches
Missing Fonts
Non-embedded fonts get substituted, changing the appearance of your document.
Low Resolution Images
Images below 300 DPI appear pixelated and blurry when printed.
Wrong Color Space
RGB colors in a CMYK workflow cause unexpected color shifts.
Missing Bleed
Without bleed, white edges appear when the paper is trimmed.
Benefits of Preflight Checking
- Catch errors early - Find problems before expensive print runs
- Reduce reprints - Avoid costly mistakes and wasted materials
- Consistent quality - Ensure every PDF meets your standards
- Faster turnaround - Automated checking is faster than manual review
- Client confidence - Provide quality assurance reports to customers
- Streamlined workflows - Automate validation with hot folders and API
When to Use Preflight
- Before sending to print - Always validate files before production
- Receiving customer files - Check incoming files meet your specifications
- After design export - Verify exported PDFs are correct
- Archiving documents - Ensure PDF/A compliance for long-term storage
- Quality control - Random sampling of production files
Preflight Check Categories
PDFModule performs comprehensive checks across six categories. Each check returns a severity level: Pass, Info, Warning, or Fail.
Geometry Checks
Validates page structure and dimensions.
| Check | What It Validates | Common Issues |
|---|---|---|
| Page Dimensions | Width and height match expected size | Wrong page size, incorrect orientation |
| Bleed Area | Content extends beyond trim by required amount | Missing bleed, insufficient bleed margin |
| Trim Box | Trim box is defined and correct size | Missing trim box, wrong dimensions |
| Media Box | Media box contains all content including bleed | Content outside media box |
| Safe Zone | Critical content is within safety margins | Text/logos too close to trim edge |
Font Checks
Ensures fonts will render correctly.
| Check | What It Validates | Common Issues |
|---|---|---|
| Font Embedding | All fonts are embedded in the PDF | Missing fonts, referenced-only fonts |
| Font Subsetting | Embedded fonts contain required characters | Missing glyphs in subset fonts |
| Font Type | Font format is compatible (TrueType, OpenType, Type 1) | Unsupported font formats |
| Font Size | Text meets minimum size requirements | Text too small to read or reproduce |
Color Checks
Validates color spaces and profiles.
| Check | What It Validates | Common Issues |
|---|---|---|
| Color Space | Objects use expected color mode (CMYK/RGB) | RGB in CMYK document, mixed color spaces |
| Spot Colors | Spot colors are defined and named | Undefined spot colors, duplicate names |
| Ink Coverage (TAC) | Total Area Coverage below maximum | Ink exceeds 300-340% causing drying issues |
| Color Profile | ICC profiles are embedded for color accuracy | Missing profiles, wrong profile |
| Black | Rich black vs pure black usage | Incorrect black for text vs large areas |
Image Checks
Validates image quality and properties.
| Check | What It Validates | Common Issues |
|---|---|---|
| Resolution | Effective DPI meets minimum (typically 300) | Low-res images, upscaled images |
| Color Mode | Image color space matches document | RGB images in CMYK document |
| Compression | Compression quality is acceptable | Excessive JPEG compression artifacts |
| OPI Links | All linked images are embedded | External image references |
Transparency Checks
Identifies transparency that may cause output issues.
| Check | What It Validates | Common Issues |
|---|---|---|
| Live Transparency | Detects unflattened transparency | Transparency in non-compatible workflows |
| Blend Modes | Identifies complex blending effects | Multiply, screen, overlay effects |
| Soft Masks | Detects soft mask usage | Feathered edges, gradients |
| Transparency over Spot | Transparency interacting with spot colors | Unpredictable color output |
Cutting/Die Line Checks
Validates cutting paths for special finishing.
| Check | What It Validates | Common Issues |
|---|---|---|
| Die Line Layer | Die/cut lines on separate layer | Die lines mixed with content |
| Cut Contours | Contour paths are valid and closed | Open paths, overlapping cuts |
| Registration | Registration marks present and correct | Missing or incorrect marks |
Running Preflight via API
Use the PDFModule API to integrate preflight checking into your applications and workflows.
Basic Preflight Check
curl -X POST https://pdfmodule.com/api/v1/preflight \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@document.pdf" \
-F "profile=print_standard"
Preflight from URL
curl -X POST https://pdfmodule.com/api/v1/preflight \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/document.pdf",
"profile": "print_strict"
}'
Response Structure
{
"success": true,
"status": "warning",
"grade": "B",
"profile": "print_standard",
"file_id": "pf_abc123",
"summary": {
"total_checks": 42,
"passed": 38,
"info": 1,
"warnings": 2,
"failures": 1
},
"issues": [
{
"category": "color",
"severity": "FAIL",
"code": "rgb_in_cmyk",
"message": "RGB color space detected",
"pages": [1, 3],
"details": "Found 5 RGB objects",
"fixable": true,
"suggested_fix": "convert_cmyk"
},
{
"category": "geometry",
"severity": "WARN",
"code": "insufficient_bleed",
"message": "Bleed is 2mm, required 3mm",
"pages": [1, 2, 3, 4],
"fixable": true,
"suggested_fix": "add_bleed"
}
],
"document": {
"page_count": 4,
"page_size": "210x297mm",
"pdf_version": "1.6",
"file_size": 2456789
},
"recommended_fixes": ["convert_cmyk", "add_bleed"]
}
Available Profiles
curl https://pdfmodule.com/api/v1/preflight/profiles \
-H "X-API-Key: YOUR_API_KEY"
Check Service Health
curl https://pdfmodule.com/api/v1/preflight/health \
-H "X-API-Key: YOUR_API_KEY"
Preflight Profiles
Profiles define the rules and thresholds for preflight checking. PDFModule includes four system profiles and supports custom profiles.
System Profiles
print_standard
Standard commercial print requirements. Suitable for most offset and digital printing.
| Setting | Value |
|---|---|
| Minimum bleed | 3mm |
| Minimum resolution | 250 DPI |
| Color mode | CMYK preferred (RGB warns) |
| Font embedding | Required |
| Transparency | Allowed with warning |
| Max ink coverage | 300% |
print_strict
Strict specifications for high-quality commercial printing.
| Setting | Value |
|---|---|
| Minimum bleed | 5mm |
| Minimum resolution | 300 DPI |
| Color mode | CMYK only (RGB fails) |
| Font embedding | Required, subset OK |
| Transparency | Must be flattened |
| Max ink coverage | 280% |
| Spot colors | Must be defined |
web
Optimized for web viewing and digital distribution.
| Setting | Value |
|---|---|
| Bleed | Not required |
| Minimum resolution | 72 DPI |
| Color mode | RGB preferred |
| Font embedding | Recommended |
| Transparency | Allowed |
| File size | Warn if > 10MB |
archive
PDF/A compliance for long-term archival and preservation.
| Setting | Value |
|---|---|
| Standard | PDF/A-1b or PDF/A-2b |
| Font embedding | All fonts must be embedded |
| Color profiles | Must be embedded |
| Encryption | Not allowed |
| JavaScript | Not allowed |
| External references | Not allowed |
Custom Profiles
Scale plan subscribers can create up to 20 custom preflight profiles with their own specifications.
Creating a Custom Profile via API
curl -X POST https://pdfmodule.com/api/v1/preflight/profiles \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Magazine Print",
"description": "Custom profile for monthly magazine production",
"settings": {
"geometry": {
"min_bleed_mm": 3,
"check_trim_box": true,
"check_safe_zone": true,
"safe_zone_mm": 5
},
"fonts": {
"require_embedding": true,
"allow_subsetting": true,
"min_size_pt": 6
},
"colors": {
"required_mode": "cmyk_preferred",
"allow_spot": true,
"max_ink_coverage": 300,
"require_profiles": false
},
"images": {
"min_resolution": 300,
"max_resolution": 600,
"check_compression": true
},
"transparency": {
"allow": true,
"warn_if_present": true
}
},
"is_default": false
}'
Profile Configuration Options
| Category | Setting | Description |
|---|---|---|
| Geometry | min_bleed_mm | Minimum required bleed in millimeters (0-10) |
| check_trim_box | Verify trim box is defined | |
| check_safe_zone | Verify content within safety margins | |
| safe_zone_mm | Safety margin distance from trim | |
| Fonts | require_embedding | All fonts must be embedded |
| allow_subsetting | Subset fonts are acceptable | |
| min_size_pt | Minimum font size in points | |
| Colors | required_mode | cmyk_only, cmyk_preferred, rgb_only, rgb_preferred, any |
| allow_spot | Spot colors are acceptable | |
| max_ink_coverage | Maximum TAC percentage | |
| require_profiles | ICC profiles must be embedded | |
| Images | min_resolution | Minimum DPI for images |
| max_resolution | Maximum DPI (warn if exceeded) | |
| check_compression | Warn about excessive compression | |
| Transparency | allow | Transparency is acceptable |
| warn_if_present | Warn when transparency detected |
Managing Profiles
# List all profiles
curl https://pdfmodule.com/api/v1/preflight/profiles \
-H "X-API-Key: YOUR_API_KEY"
# Get specific profile
curl https://pdfmodule.com/api/v1/preflight/profiles/magazine-print \
-H "X-API-Key: YOUR_API_KEY"
# Update profile
curl -X PUT https://pdfmodule.com/api/v1/preflight/profiles/magazine-print \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"settings": {"images": {"min_resolution": 250}}}'
# Delete profile
curl -X DELETE https://pdfmodule.com/api/v1/preflight/profiles/magazine-print \
-H "X-API-Key: YOUR_API_KEY"
Fixing PDF Issues
PDFModule can automatically fix many common preflight issues. Apply fixes via the API or desktop app.
Applying Fixes via API
curl -X POST https://pdfmodule.com/api/v1/preflight/fix \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@document.pdf" \
-F "fixes[]=convert_cmyk" \
-F "fixes[]=embed_fonts" \
-F "fixes[]=add_bleed" \
-F "bleed_mm=3"
Available Fixes
| Fix Code | Description | Parameters |
|---|---|---|
smart_bleed |
Intelligently adds bleed by analyzing and extending edge content | bleed_mm (default: 3) |
add_bleed |
Adds bleed by mirroring edge content | bleed_mm (default: 3) |
set_boxes |
Sets correct MediaBox, TrimBox, and BleedBox | - |
crop_marks |
Adds crop marks and registration marks | offset_mm, length_mm |
resize |
Resizes to standard page size | target_size (A4, Letter, etc.) |
convert_cmyk |
Converts all RGB to CMYK | profile (optional ICC profile) |
convert_rgb |
Converts all CMYK to RGB | profile (optional ICC profile) |
convert_gray |
Converts all content to grayscale | - |
spot_to_process |
Converts spot colors to CMYK | - |
embed_fonts |
Embeds all non-embedded fonts | - |
flatten |
Flattens transparency | resolution (default: 300) |
optimize |
Optimizes file size | preset (screen, ebook, print) |
Fix Response
{
"success": true,
"original_file_id": "pf_abc123",
"fixed_file_id": "pf_def456",
"fixes_applied": ["convert_cmyk", "embed_fonts", "add_bleed"],
"download_url": "https://pdfmodule.com/api/v1/preflight/download/pf_def456",
"expires_at": "2025-12-26T10:30:00Z"
}
Fix Quotas
Fix operations consume your monthly quota:
| Plan | Monthly Fixes |
|---|---|
| Free | 5 fixes |
| Production | 500 fixes |
| Scale | 20,000 fixes |
| Enterprise | Unlimited |
Understanding Preflight Results
Severity Levels
| Severity | Meaning | Action |
|---|---|---|
| FAIL | Critical issue that will cause problems | Must fix before production |
| WARN | Potential issue that may affect quality | Review and fix if needed |
| INFO | Informational note, not a problem | For awareness only |
| PASS | Check passed successfully | No action needed |
Overall Status
- passed - All checks passed with no warnings or failures
- warning - No failures, but has warnings
- failed - Has one or more failures
Best Practices
- Always fix FAIL issues before printing
- Review WARN issues with your print provider
- Run preflight again after applying fixes
- Keep original files - never overwrite source documents
- Document your profile settings for consistency
Production Workflows
Automated Print Workflow
# Example: Automated preflight and fix workflow
1. Customer uploads PDF to portal
2. Webhook triggers your backend
3. Your backend calls preflight API:
POST /api/v1/preflight
4. If issues found, apply fixes:
POST /api/v1/preflight/fix
5. Generate preflight report for customer
6. If passed, route to production queue
7. If failed, notify customer with report
Hot Folder Workflow
# Desktop App Hot Folder Setup
Watch Folder: /Volumes/Server/Incoming
Output Folder: /Volumes/Server/Approved
Error Folder: /Volumes/Server/NeedsReview
Profile: print_standard
Mode: Preflight and Fix
Result:
- Valid PDFs automatically fixed and moved to Approved
- Problem PDFs moved to NeedsReview for manual check
Integration Example (Node.js)
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
async function preflightPDF(filePath) {
const form = new FormData();
form.append('file', fs.createReadStream(filePath));
form.append('profile', 'print_standard');
const response = await axios.post(
'https://pdfmodule.com/api/v1/preflight',
form,
{
headers: {
'X-API-Key': process.env.PDFMODULE_API_KEY,
...form.getHeaders()
}
}
);
const result = response.data;
if (result.summary.failures > 0) {
// Apply recommended fixes
const fixResponse = await axios.post(
'https://pdfmodule.com/api/v1/preflight/fix',
{
file_id: result.file_id,
fixes: result.recommended_fixes
},
{
headers: { 'X-API-Key': process.env.PDFMODULE_API_KEY }
}
);
return fixResponse.data;
}
return result;
}
Account Setup
Create your PDFModule account at pdfmodule.com/register. You'll need:
- Email address
- Password (minimum 8 characters)
- Company name (optional)
Plans
| Plan | Price | PDFs/month | Fixes/month | Storage |
|---|---|---|---|---|
| Free | $0 | 100 | 5 | 7 days |
| Production | $49 | 5,000 | 500 | 30 days |
| Scale | $199 | 50,000 | 20,000 | 365 days |
| Enterprise | Custom | Unlimited | Unlimited | 365 days |
Dashboard Overview
Your dashboard shows key metrics and quick access to common actions:
- API Calls - Requests this month
- Templates - Your template count
- PDFs Generated - Total documents created
- Quota - Usage vs limit
- Recent Documents - Last 5 generated PDFs
- API Activity - Recent API calls
Your First Template
Templates are HTML documents with variables that get replaced with your data.
Creating a Template
- Go to Templates > Create Template
- Enter a name (e.g., "Invoice")
- Select document type and page settings
- Write your HTML with variables
- Click Save
Example Template
<h1>Invoice #{{invoice_number}}</h1>
<p>Customer: {{customer_name}}</p>
<table>
{{#each items}}
<tr>
<td>{{description}}</td>
<td>{{quantity}}</td>
<td>${{price}}</td>
</tr>
{{/each}}
</table>
<p><strong>Total: ${{total}}</strong></p>
Your First API Call
Get an API Key
- Go to API Keys
- Enter a name and select environment (test/live)
- Click Create
- Copy the key immediately (shown only once)
Render a PDF
curl -X POST https://pdfmodule.com/api/v1/render \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "invoice",
"data": {
"invoice_number": "INV-001",
"customer_name": "Acme Corp",
"items": [
{"description": "Widget", "quantity": 10, "price": "99.00"}
],
"total": "990.00"
}
}'
Understanding Templates
Templates consist of:
- Body HTML - Main content (required)
- Header HTML - Top of each page (optional)
- Footer HTML - Bottom of each page (optional)
- CSS Styles - Styling rules (optional)
Creating Templates
Settings
- Name & Slug - Identifier for API calls
- Document Type - invoice, report, certificate, contract, custom
- Page Size - A4, Letter, Legal
- Orientation - Portrait, Landscape
- Margins - Top, Right, Bottom, Left (mm)
Variables & Helpers
Variables
{{variable}}
{{object.property}}
{{#each items}}...{{/each}}
{{#if condition}}...{{else}}...{{/if}}
Helpers
{{formatCurrency amount "USD"}}
{{formatDate date "M j, Y"}}
{{formatNumber value 2}}
{{uppercase text}}
{{page}} / {{pages}}
Template Versioning
Every save creates a new version. Use specific versions in API calls:
{
"template": "invoice",
"version": 2,
"data": {...}
}
API Keys
- Test Keys (
pm_test_) - For development, limited requests - Live Keys (
pm_live_) - For production, counts against quota
Security
- Never commit keys to repositories
- Use environment variables
- Rotate keys periodically
- Revoke unused keys
Documents
Each rendered PDF creates a document with:
- Unique UUID
- Page count and file size
- Render metadata
- Expiration based on plan
Retention
| Plan | Storage |
|---|---|
| Free | 7 days |
| Production | 30 days |
| Scale/Enterprise | 365 days |
Team Management
Available on Production, Scale, and Enterprise plans.
Pricing
- $19/month per team member
- +1,000 PDFs added to monthly quota
Roles
- Owner - Full access, manages billing
- Admin - Most permissions, can invite members
- Member - Configurable permissions
Permissions
- Templates: view/edit team templates
- Documents: view/download team documents
- API Keys: view team keys
- Team: view members, invite
- Billing: view billing info
Billing & Plans
Upgrading
- Go to Settings > Plan & Billing
- Click Upgrade on desired plan
- Complete Stripe checkout
- Plan activates immediately
Managing Subscription
Click Manage Billing to access Stripe portal for:
- Update payment method
- Download invoices
- Cancel subscription
Auto-Upgrade
If you exceed limits with a payment method on file, you'll be automatically upgraded to the next plan tier.