Microsoft Publisher Dies October 1, 2026

Tombstone Microsoft Publisher

$searchPaths = @(
    “$env:USERPROFILE\Documents”,
    “$env:USERPROFILE\Desktop”,
    “$env:USERPROFILE\OneDrive”,
    “$env:USERPROFILE\Downloads”
)
 
$found = foreach ($path in $searchPaths) {
    if (Test-Path $path) {
        Get-ChildItem -Path $path -Filter *.pub -Recurse -File -ErrorAction SilentlyContinue
    }
}
 
$found |
    Select-Object FullName,
                  @{Name=’SizeKB’; Expression={[math]::Round($_.Length / 1KB, 1)}},
                  LastWriteTime |
    Sort-Object LastWriteTime -Descending |
    Export-Csv -Path “$env:USERPROFILE\Desktop\pub-inventory.csv” -NoTypeInformation
 
Write-Host “Found $($found.Count) Publisher files. List saved to your Desktop as pub-inventory.csv”

$found = @(Get-ChildItem C:\ -Filter *.pub -Recurse -File -ErrorAction SilentlyContinue); $found | Select-Object FullName, @{N=’SizeKB’;E={[math]::Round($_.Length/1KB,1)}}, LastWriteTime | Sort-Object LastWriteTime -Descending | Export-Csv “$env:USERPROFILE\Desktop\pub-inventory.csv” -NoTypeInformation; Write-Host “Found $($found.Count) files.”

# Convert-PubToPdf.ps1
# Batch-converts Microsoft Publisher files to PDF using Publisher’s own export engine.
 
param(
    [string]$Source  = “$env:USERPROFILE\Documents”,
    [string]$LogPath = “$env:USERPROFILE\Desktop\pub-conversion-log.csv”
)
 
$files = @(Get-ChildItem -Path $Source -Filter *.pub -Recurse -File -ErrorAction SilentlyContinue)
 
if ($files.Count -eq 0) {
    Write-Host “No .pub files found under $Source” -ForegroundColor Yellow
    return
}
 
Write-Host “Found $($files.Count) files. Starting conversion…” -ForegroundColor Cyan
 
try {
    $pub = New-Object -ComObject Publisher.Application
}
catch {
    Write-Host “Could not start Publisher. Is it installed on this machine?” -ForegroundColor Red
    return
}
 
$log = New-Object System.Collections.Generic.List[object]
$i = 0
 
foreach ($file in $files) {
    $i++
    Write-Progress -Activity “Converting Publisher files” `
                   -Status “$i of $($files.Count): $($file.Name)” `
                   -PercentComplete (($i / $files.Count) * 100)
 
    $pdfPath = [System.IO.Path]::ChangeExtension($file.FullName, ‘.pdf’)
 
    if (Test-Path -LiteralPath $pdfPath) {
        $log.Add([pscustomobject]@{
            File = $file.FullName; Status = ‘Skipped’; Detail = ‘PDF already exists’
        })
        continue
    }
 
    try {
        # Open read-only so nothing prompts to save changes
        $doc = $pub.Open($file.FullName, $true, $false)
 
        # 2 = pbFixedFormatTypePDF
        $doc.ExportAsFixedFormat(2, $pdfPath)
 
        $doc.Close()
        [System.Runtime.InteropServices.Marshal]::ReleaseComObject($doc) | Out-Null
 
        $log.Add([pscustomobject]@{
            File = $file.FullName; Status = ‘Converted’; Detail = $pdfPath
        })
    }
    catch {
        $log.Add([pscustomobject]@{
            File = $file.FullName; Status = ‘FAILED’; Detail = $_.Exception.Message
        })
    }
}
 
$pub.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($pub) | Out-Null
[GC]::Collect()
 
$log | Export-Csv -Path $LogPath -NoTypeInformation
 
Write-Host “`nDone. Results:” -ForegroundColor Cyan
$log | Group-Object Status | Select-Object Name, Count | Format-Table -AutoSize
Write-Host “Full log: $LogPath”

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
& “$env:USERPROFILE\Desktop\Convert-PubToPdf.ps1” -Source “$env:USERPROFILE\Documents”

Windows Powershell showing number of Publisher files converter to PDFs.
Windows Powershell showing number of Publisher files converter to PDFs.

Test it on a folder of five files first.

Tool Cost Best For Watch Out For
WordAlready have itNewsletters, labels, envelopes, letterhead, mail mergeLayout fights you on anything design-heavy
PowerPointAlready have itFlyers, posters, banners, signsNot built for multi-page documents
CanvaFree; Pro free for eligible nonprofitsVolunteers, social graphics, quick print piecesBrowser-based; less precise for press work
AffinityFree (Canva account requiredReal page layout: directories, program books, bookletsSteeper learning curve
ScribusFree, Open SourcePress-ready CMYK work, no accountsDated interface, steep curve
Adobe InDesignSubscriptionSubscription
Professional design shops
Overkill for most small orgs
Libre Office DrawFreeEmergency .pub viewer after Publisher is goneImperfect import; not a real replacement

Affinity (by Canva)

A note on “PUB converter” websites:

Editor’s Note

This post is much longer and a bit more complicated than my usual posts. However, IF you have used Microsoft Publisher, time is running out. You can email me with questions. Also, because this post has so many parts, I’ve created a PDF version that you can download HERE.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.