Compare
Short answer: There are four practical ways to batch a folder of Excel workbooks into PDFs, and they differ less in speed than in what they do to your layout. A VBA loop is free and scriptable but prints each sheet with Excel’s own pagination, split rows and all. A paid Excel add-in like Kutools batch-converts from inside Excel, also as-is. A command-line converter (LibreOffice headless or a paid CLI) suits servers and scheduled jobs, again rendering the page setup unchanged. A desktop app with a layout pass, such as CrazySmartPDF, is the only route that re-flows the pagination so rows stay whole and wide tables stay readable, and it self-checks each file. Pick by which matters more to you: free scripting, an existing toolbox, unattended CLI runs, or a layout that comes out right.
| Route | Layout | Unattended | Cost | Needs Excel |
|---|---|---|---|---|
| VBA loop | As-is (Excel pagination) | With Task Scheduler | Free | Yes |
| Paid add-in (Kutools) | As-is | No | Paid add-in | Yes |
| CLI converter | As-is (own or Office engine) | Yes | Free (LibreOffice) or paid | No (LibreOffice) |
| Layout-pass app (CrazySmartPDF) | Re-layout: rows whole, wide tables readable | No, you launch it | Free up to 5/run; $39 one-time beyond | Yes (native apps) |
Three of the four routes render your page setup as-is, which is why the same folder keeps producing the same broken pages no matter which of them you try. If that is your problem, the layout pass is the variable to change.
CrazySmartPDF is free to run on your own files, up to 5 files per run. See how it works.
Which batch method is free? A VBA loop and LibreOffice headless are free. CrazySmartPDF is free to run on your files up to 5 per run, with a one-time $39 for larger batches. Paid add-ins and paid CLIs cost from the start.
Which one actually fixes the layout? Only a route that re-computes the pagination. VBA, add-ins, and most CLIs render the page setup as-is, so split rows and clipped columns carry through. A layout-pass app re-flows the sheet and keeps rows whole.
What if I need unattended, scheduled runs? Use a CLI route or a scheduled VBA loop; those run without you present. A layout-pass desktop app is something you launch, so pair the two if you need both scheduling and a clean layout.