How the Mail Merge to Separate PDFs works
Save the finished merge from Word as one PDF, then give this page that PDF and your list of names. It cuts the PDF into one file per person, names each file from your list, and checks the first page of every file for the name it was given.
How this works
What you do in Word first
This tool starts from one PDF that holds every letter. Microsoft's page on letters lists Edit Individual Documents among the ways to finish a merge, on Windows and on Mac. Its page on directories says what that command gives: a new document, which you then save like any regular document. Its page on PDF gives the steps for saving a Word document as a PDF: on Windows, File, Save As or Save a Copy, and choose PDF in the list; on a Mac, File, Save As or Save a copy, File Format, PDF. No single Microsoft page joins these steps for letters, and we have not run them in Word ourselves, so check that the PDF you get holds all the letters, one after another.
That PDF option list in Word for Windows also offers to encrypt the PDF with a password. Leave that off: an encrypted PDF is refused here, because its pages cannot be copied.
Two ways to cut
Every letter has the same number of pages. You give the number, N.
file k = pages (k − 1) × N + 1 to k × N
its name = row k of the list
letters = pages in the PDF ÷ N
must be whole, and equal to
the number of namesIf the pages do not divide by N, or the count of letters and the count of names differ, the result is red and nothing can be downloaded. Counting cannot see three things.
- One letter that runs a page long while another runs a page short. The name check usually shows it, because the files after the long letter no longer have their name on their first page.
- A letter whose last page prints the next person's name, such as a "cc" line. If that page is cut into the next file, the next person's name is on that file's first page, so "found" alone would be wrong. It is reported in amber when the name is then on two pages of the file, which it is if the letter's own first page also prints the name as the list has it. If the letter itself prints the name another way ("CHAN, Bo" for "Bo Chan"), nothing shows it, and the files can be green with the wrong page in them.
- A list that names fewer people than the PDF holds, for example every second person. If the pages happen to divide, each file holds two people's letters with the listed name on its first page, and nothing in this tool can show that. Compare the number of letters with the number of names yourself.
Letters differ in length. The tool looks for the names themselves, going down your list.
file 1 starts at the first page with name 1
file k starts at the first page with name k
that comes after the start of file k − 1
a file ends on the page before the next starts
the last file ends with the PDFThis needs each name to be printed on the first page of its letter and not on the page before it, and the list to be in the order of the PDF. A name that is not found after the one before it, or pages that come before the first name, make the result red. A cut can still land in the wrong place in three ways, and the tool can say a different amount about each.
- A name that is also printed in other people's letters (the person who signs every letter, or a name that is in the list twice) can pull a cut early. Such names are listed as "also in other files", in amber.
- A name printed on the last page of the letter before it, such as a "cc" line, pulls the cut one page early, and that page goes into the wrong file. The tool cannot tell this from a letter that prints the name on every page, so both are reported the same way, in amber: "also on page 2 of this file". A letter with the name in a running head is therefore always amber. This too depends on the letter's own first page printing the name as the list has it; where it does not, the early cut is not seen.
- A letter for someone who is missing from your list stays inside the file before it, with nothing in the text to show it. So when the files are not all the same length, the ones that are longer or shorter than most are listed for you to open.
Cut by name, the result is green only when every file has the same number of pages, and each name is on one page of its own file and in no other file. One name gives one file holding the whole PDF, which is amber.
How a name is compared with the page
Both the name from your list and the text of the page are reduced to plain words before they are compared.
words of a text =
lower case
→ compatibility forms unified (Unicode NFKD)
→ accents U+0300 to U+036F removed
→ put back together (Unicode NFC)
→ soft hyphens, zero-width characters removed
→ cut at every character that is not
a letter or a digit
"José NÚÑEZ-Smith" → jose nunez smith
a name is on a page when its words are there
side by side, in the same orderSo capitals, extra spaces, accents, punctuation and line breaks make no difference: "O'Brien, Bram" in the list matches "Mr O’Brien, Bram" on the page, and a name that wraps onto a second line is still found. Whole words are compared, so "Ann" is not found in "Anna". Chinese, Japanese, Korean and Thai characters are each treated as a word of their own, because those scripts are written without spaces. Two things that are not treated as the same: "ß" and "ss", and a word hyphenated across a line break and the same word unbroken.
The text of each page is taken from the PDF by Mozilla's pdf.js. Text that is only a picture of text, as in a scan, cannot be read. Text in a font that relies on the predefined character maps, which pdf.js keeps in separate files, may not be readable either: this tool does not load those files, so that it never has to fetch anything after it has opened. Where no text can be read, the tool says that there is no readable text. Cutting every N pages still works then, with the check marked as not possible; cutting by name does not.
A name that is on the page can still be reported as not found, when it is printed in a way this comparison cannot read: spaced out letter by letter, split by a hyphen at the end of a line, written surname first when the list has the first name first, or in a font whose text the tool cannot read.
What the check says for each file
- Found: the name is on the first page of the file. If it is also on another page of the file, or in another file, the line says so and the tag is amber.
- Not found: the name is not on the first page. The line says whether it is on a later page of the file, printed in a different file, or nowhere.
- No text or Not checked: the file has no readable text, or the name has no letters or digits to look for.
- No pages or No name: the list and the PDF do not fit.
Green means this and no more. The first page of each file shows the name the file is called by, and that name is on no other page of the file and in no other file. That is all that was checked: it does not show that each file holds a whole letter and only that letter.
Amber means the files can be made but something could not be confirmed; you tick a box to say you have checked before the download works, and the tick is withdrawn whenever the PDF, the list or any answer on the page changes. If you name the files by something that is not printed in the letters, such as a reference number, the files are "not found" and the result is amber: nothing on the page can confirm the order then. When a name that is missing from its own file is printed in a different file, the tool says so and names the files. That is evidence, not a finding: it happens when the list is in a different order from the PDF, when the cut is in the wrong place (letters that are not all the same length, cut every N pages), and when the name just happens to be printed in someone else's letter as well. The tool cannot tell which, so it stays amber and you check. When every one of the missing names is printed in a different file, the headline says so. After an amber download the tool says how many files do not show the name they were given.
Red means the list and the PDF cannot be matched: the counts differ, the pages do not divide, a list row is blank, or, cutting by name, a name cannot be placed, pages come before the first name, or the PDF has no readable text. There is no download. The result is also red when pages that go into different files share one picture list (see What a file can carry below).
When you download, each finished file is opened again and compared with the plan: the number of pages, the number of page objects inside the file (which must be the same), the words on each page against the same page of the merged PDF, and the name check, this time worked from the file's own text by a second routine. If any file differs, no zip is made and the tool says which file.
What a file can carry
Each new file holds its own pages, with what is printed on them (text, pictures, page size and rotation), and everything those pages list or point to: fonts, pictures, and whatever those bring with them, whether or not the page shows it. What belongs to the document as a whole is not carried over: bookmarks, attachments, links from one page to another, document properties such as the title, and the accessibility tags and document language that a tagged PDF has.
Things attached to a page rather than printed on it (web links, comments, highlights, text boxes) are copied as they are, with one exception: a link that jumps to another place inside the document. Such a link points at a page of the merged PDF. Copied, it would put a hidden copy of that page into the new file, where no viewer shows it but a PDF tool can read it, or it would lead nowhere. These links are left out, and nothing else is. The words of such a link stay on the page; only the jump is left out. Before you download, the tool says how many will be left out, and how many of them jump to a page outside their own new file, where they could not have worked. If there are none, it says nothing.
Three kinds of PDF are refused as soon as they are chosen, with the reason under the file box.
- A PDF in which something else on a page points at a page of the document (a comment that records which page it is on is one example). Copying it would hide a copy of that page in the new file, and leaving it out could change what the page shows. The tool does neither, and names the page where this was found.
- A PDF with fill-in fields. One field can hold the values of every letter, and this tool cannot give each person only their own.
- A PDF whose list of pages names the same page more than once.
For the first two, what you can try is to make the PDF again without the comments or the fill-in fields, or to print the letters to PDF instead of saving them as PDF. We have not tried either in Word.
One refusal depends on where the PDF is cut, so it comes as a red result once the list and the cut are given: pages that go into different files share one picture list. Every file would then carry every picture in that list. That one case is looked for. Nothing else about pictures is.
So a file can hold more than its pages show: it holds everything its pages list or point to, and whatever those bring with them. In the 15 PDFs made from ordinary Word documents that we looked inside on 2026-10-11, none of them a mail merge, no page listed a picture it did not show. A PDF can be written with pages that do, and a file cut from such a PDF would hold those pictures unseen. Two more things from the same 15 files, which show how such files were built and no more:
- A font that several pages use is one object in the PDF, so every new file gets the whole font. Where the font carries a list of the characters it is used for, that list is copied whole, so it covers characters used on other people's pages: single characters, not their text.
- One of the 15 had been printed to PDF from Word on a Mac. Its pages listed fonts that they do not use, and those fonts were copied into the new files too. This tool does not detect that.
File names
The name is the text before, the name from your list and the text after, as typed. Then, following Microsoft's rules for Windows and Apple's for the Mac: the characters < > : " / \ | ? * and control characters become hyphens; dots and spaces at the start and dots and spaces at the end are removed; a name Windows reserves, such as CON or NUL, gets an underscore in front; ".pdf" is added once. By our own choice, the common characters that cannot be seen or that reverse the direction of the text are removed (soft hyphens, zero-width characters, direction marks and overrides). Other blank-looking characters exist and are kept. Names are cut at 100 characters or 180 bytes, whichever comes first (our own limit, to stay well inside the 260 characters Windows allows for a whole path by default). Names that are the same when capitals are ignored are numbered "(2)", "(3)", so no file can overwrite another. A name with nothing usable in it is called by its row in the list. The text before and after can be up to 60 characters each.
How the list is read
- Pasted: one row per line; tabs separate columns. A cell that is wholly inside double quotes may hold a line break; quotes typed as part of a name are kept.
- .csv: commas, semicolons or tabs: the one that gives the first five lines the same number of columns, or failing that the one the first line has most of. The tool says which it used. A one-column list of "Lee, Ann" without quotes is therefore read as two columns: look at what the tool says it read. Quoted fields as in RFC 4180. Read as UTF-8 or UTF-16 when the file says so or is valid UTF-8, otherwise as Windows-1252; if the text then holds characters that are not text, the tool says the encoding may be wrong.
- .xlsx: the first sheet only, and the tool says so if that sheet is hidden. Cells are read as stored, not as displayed: a cell formatted as a date or as money can come out as a plain number. Empty rows past row 5,000 are ignored; a row with something in it there is refused. The tool shows the names it read, so look at them.
A blank row in the middle of the list is an error, not a letter without a name. Blank rows at the end are ignored. You say whether the first row is a heading; the tool does not guess.
Limits, and what has not been tested
Up to 2,000 pages and 50 MB of PDF, and a list of up to 5,000 rows, 50 columns and 5 MB. These are our own limits, set from timing the tool in one browser (Chromium, on a desktop computer) with PDFs made for the purpose: 2,000 pages were read in 2.4 seconds, and a 45 MB PDF of ten letters was read and cut in half a second. Every file gets its own copy of whatever its pages use, such as fonts and a letterhead picture, so the files together are larger than the PDF they came from: in the same test 500 two-page letters sharing one quarter-megabyte picture, 0.7 MB as one PDF, came to 121 MB as separate files. If the files of one download would pass 250 MB together, the tool stops and says so instead of making the zip. This free page downloads jobs of up to 10 letters.
The worked examples below, and the PDFs and spreadsheets the tool is tested on, are made by our own test programs. The cutting has also been run on the 15 Word-made PDFs described above, which are ordinary documents. It has not yet been tried on the PDF of an actual mail merge or on a spreadsheet saved by Excel. If the check reports a name as not found in a file where you can see it, please tell us.
Built with
pdf.js by Mozilla (Apache License 2.0) reads the text, and its build includes core-js (MIT License); pdf-lib by Andrew Dillon (MIT License) copies the pages; fflate by Arjun Barrett (MIT License) makes the zip and opens .xlsx files. All three run inside this tool.
Licence notices for the code built into this tool
pdf-lib 1.17.1
MIT License Copyright (c) 2019 Andrew Dillon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@pdf-lib/standard-fonts (part of pdf-lib)
MIT License Copyright (c) 2018 Andrew Dillon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@pdf-lib/upng (part of pdf-lib)
MIT License Copyright (c) 2017 Photopea Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
pako (used by pdf-lib)
(The MIT License) Copyright (C) 2014-2017 by Vitaly Puzrin and Andrei Tuputcyn Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
tslib (used by pdf-lib)
Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fflate 0.8.3
MIT License Copyright (c) 2026 Arjun Barrett Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
pdf.js (pdfjs-dist 6.4.299) Copyright Mozilla Foundation. Licensed under the Apache License, Version 2.0, which follows in full.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONScore-js (inside the pdf.js legacy build)
MIT License (https://github.com/zloirock/core-js/blob/v3.50.0/LICENSE) © 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
What this tool is tested against
This tool cannot be published unless it reproduces every example below. 43 were worked by hand from the cited rule.
| Example | Expected | Basis |
|---|---|---|
| The example in this tool: 6 pages, 3 names, cut every 2 pages | 3 files of 2 pages; each name is on its file’s first page and nowhere else: green | By hand Worked by hand from the cutting and checking rules in this tool |
| One page per letter: 3 pages, 3 names, cut every 1 page | 3 files of 1 page, all found: green | By hand Worked by hand from the cutting and checking rules in this tool |
| More names than letters: 4 pages every 2, but 3 names | Red, no download: Cy Diaz has no pages | By hand Worked by hand from the cutting and checking rules in this tool |
| Fewer names than letters: 6 pages every 2, but 2 names | Red, no download: pages 5 to 6 have no name | By hand Worked by hand from the cutting and checking rules in this tool |
| Pages left over: 5 pages every 2, 3 names | Red, no download: the last file would have 1 page instead of 2 | By hand Worked by hand from the cutting and checking rules in this tool |
| One letter a page longer than the rest (2, 3, 2, 2 pages), cut every 2 | Red: 9 pages do not divide by 2, and the two files after the long letter are reported as not found on their first page | By hand Worked by hand from the cutting and checking rules in this tool |
| One letter longer and one shorter (2, 3, 2, 1 pages), so the count still fits, cut every 2 | Amber: 8 pages and 4 names fit, but 2 of 4 names are not on the first page of their file | By hand Worked by hand from the cutting and checking rules in this tool |
| The same letters (2, 3, 2, 1 pages) cut where each name appears | Files of 2, 3, 2 and 1 pages, all names found. Amber: the lengths differ, so the files that are longer or shorter than most are listed to be opened | By hand Worked by hand from the cutting and checking rules in this tool |
| Cut where each name appears, every letter 2 pages | 3 files of 2 pages: green, because the cut by name and an even cut agree | By hand Worked by hand from the cutting and checking rules in this tool |
| Cut where each name appears, but the list is in a different order from the PDF | Red, no download: Bo Chan is not found after Cy Diaz | By hand Worked by hand from the cutting and checking rules in this tool |
| “Ann” is not “Anna”: pages say Anna then Ann, list says Ann then Anna, cut every 1 page | Amber: neither name is found in its own file, because whole words are compared and “Ann” does not match inside “Anna”. The tool adds that each is printed in the other file | By hand Worked by hand from the cutting and checking rules in this tool |
| The same name twice in the list (two letters to Ann Lee) | Second file numbered “Ann Lee (2).pdf”. Amber: the check cannot tell the two Ann Lee files apart | By hand Worked by hand from the cutting and checking rules in this tool |
| Two names that differ only in capitals | Treated as the same name: the second file is numbered so the two cannot overwrite each other. Amber | By hand Worked by hand from the cutting and checking rules in this tool |
| A sender who signs every letter and is also in the list, cut every 2 pages | Amber: Di Evans is found on her first page, but her name is on page 2 of her file and in 3 other files too, so that proves little | By hand Worked by hand from the cutting and checking rules in this tool |
| The same sender, cut where each name appears | The cut for Di Evans lands on her signature under Bo Chan’s letter (page 4), which is wrong. Amber: her name is flagged as being on two pages of her file and in other files, and the files of 1 and 3 pages are listed | By hand Worked by hand from the cutting and checking rules in this tool |
| Case, spacing, accents and punctuation differ between the list and the page | All 3 found: capitals, extra spaces, accents and punctuation are ignored when comparing | By hand Worked by hand from the cutting and checking rules in this tool |
| A name split across two lines of the page | Both found: a line break counts as a space | By hand Worked by hand from the cutting and checking rules in this tool |
| A blank row in the middle of the list | Red, no download: list row 2 has no name, so pages 3 to 4 would have no file | By hand Worked by hand from the cutting and checking rules in this tool |
| A list with a heading row, marked as a heading | The heading is left out: 3 names, 3 files, green | By hand Worked by hand from the cutting and checking rules in this tool |
| The same list with the heading row not marked | Red, no download: 4 names for 3 letters, and Ann Lee and Bo Chan are each found in the file before their own | By hand Worked by hand from the cutting and checking rules in this tool |
| A CSV file with two columns, files named by a reference that is not printed in the letters | Files C-1001.pdf and C-1002.pdf. Amber: the references are not in the letters, so nothing confirms the order | By hand Worked by hand from the cutting and checking rules in this tool |
| A PDF with no readable text (a scan), cut every 2 pages | Amber: 2 files by page count alone; the check is not possible | By hand Worked by hand from the cutting and checking rules in this tool |
| The same scan, cut where each name appears | Red, no download: there is no text to find the names in | By hand Worked by hand from the cutting and checking rules in this tool |
| File names: a slash, quotes, a reserved name, a trailing dot, Chinese, an emoji, with a prefix and a suffix | Slash and quotes become hyphens, CON gets an underscore, the trailing dot goes, Chinese and the emoji are kept | By hand Worked by hand from the cutting and checking rules in this tool |
| The last page of a 3-page letter says “cc: Bo Chan”; Bo Chan’s own letter is 1 page. Cut where each name appears | The cut lands on the “cc” page, so Ann Lee’s page 3 is in Bo Chan’s file. Amber: Bo Chan is on two pages of his file, and the tool says to check where it starts | By hand Worked by hand from the cutting and checking rules in this tool |
| The same two letters, cut every 2 pages | 4 pages and 2 names divide evenly, but the letters are 3 pages and 1. Amber, for the same reason | By hand Worked by hand from the cutting and checking rules in this tool |
| Four letters of 3, 2, 2 and 1 pages, each last page naming the next person. Cut where each name appears | Three files start with the last page of the letter before. Amber: 3 names are on two pages of their file | By hand Worked by hand from the cutting and checking rules in this tool |
| The same four letters, cut every 2 pages | Amber, for the same reason | By hand Worked by hand from the cutting and checking rules in this tool |
| Three 2-page letters; page 2 of the first says “cc: Bo Chan”. Cut where each name appears | Ann Lee’s file has lost its page 2 to Bo Chan’s. Amber: Bo Chan is on two pages of his file, and the files of 3 and 2 pages are listed against the 1-page file | By hand Worked by hand from the cutting and checking rules in this tool |
| The same three letters, cut every 2 pages | The cut is right here. Amber all the same: Bo Chan’s name is also in Ann Lee’s file | By hand Worked by hand from the cutting and checking rules in this tool |
| Letters that print the name at the top of every page (a running head), cut every 2 pages | The cut is right, and it is amber: a name on two pages of its file cannot be told from a file that starts a page early | By hand Worked by hand from the cutting and checking rules in this tool |
| The list in the reverse order of the PDF (4 letters of 2 pages), cut every 2 pages | Amber, no download without the tick: 4 of 4 files do not show their name, and the tool says all 4 names are printed in a different file | By hand Worked by hand from the cutting and checking rules in this tool |
| The list moved round by one (the last person first) | Amber, no download without the tick: each name is printed in the file before or after its own, and the tool says so | By hand Worked by hand from the cutting and checking rules in this tool |
| Two neighbours swapped in the list | Amber, no download without the tick: Cy Diaz and Bo Chan are each printed in the other’s file, and the tool says so | By hand Worked by hand from the cutting and checking rules in this tool |
| The list in the right order, letters of 1, 2 and 3 pages, cut every 2 pages | Amber: the cut is wrong, not the list. The tool says 2 names are printed in a different file and that the list, the cut or a stray mention may be the cause | By hand Worked by hand from the cutting and checking rules in this tool |
| Files named by row number 1 to 5, one page each; the second letter has the address “5 High Street” | Amber, and it downloads with the tick: the cut and the order are right, and a stray “5” in another letter does not block the job | By hand Worked by hand from the cutting and checking rules in this tool |
| One name, cut where it appears, in a PDF of three letters | One file holding all 6 pages. Amber: nothing shows whether that is one letter | By hand Worked by hand from the cutting and checking rules in this tool |
| Three 2-page letters; page 1 has a link that jumps to page 5, and page 3 a link that jumps to page 4 | Green. Before the download the tool says that 2 links that jump inside the PDF will be left out: 1 to a page of another file, 1 to a page of its own file. Nothing else is left out | By hand Worked by hand from the cutting and checking rules in this tool |
| The same letters; page 4 has a comment that records which page it is on | Refused, no download: copying the comment would hide a copy of a page in the file, and the tool does not remove it. Page 4 is named | By hand Worked by hand from the cutting and checking rules in this tool |
| The same letters; page 2 has a fill-in field | Refused, no download: one field can hold the values of every letter. The tool says what can be tried, and that it has not been tried in Word | By hand Worked by hand from the cutting and checking rules in this tool |
| The same letters, with all six pages drawing from one shared list of 3 pictures | Red, no download: each file would carry all 3 pictures. Pages 1 and 3 are named as the first two that share the list | By hand Worked by hand from the cutting and checking rules in this tool |
| A job of 10 letters | Download allowed | By hand Worked by hand from the cutting and checking rules in this tool |
| A job of 11 letters | Plan and check shown for all 11; no download on this free page | By hand Worked by hand from the cutting and checking rules in this tool |
Sources
- Microsoft Support: Use mail merge to personalize lettersLists Edit Individual Documents among the ways to finish a letter merge, with steps for Windows and for Mac. It says nothing about PDF or about separate files.
- Microsoft Support: Create a directory of names, addresses, and other informationSays, for a directory merge on Windows and on Mac, that Finish & Merge, Edit Individual Documents gives a new document, which is then saved or printed like any regular document. This is the page that says what that command produces.
- Microsoft Support: Save or convert to PDF or XPS in Office Desktop appsThe steps for saving a Word document as a PDF: on Windows, Save As or Save a Copy and choose PDF in the list; on Mac, Save As or Save a copy, File Format, PDF. Also describes the Windows option to encrypt the PDF with a password.
- Microsoft Learn: Naming Files, Paths, and NamespacesThe characters Windows does not allow in a file name, the reserved names such as CON and NUL, the rule against ending a name with a space or a period, and the advice not to assume names differ by case.
- Apple Support: Rename files, folders, and disks on MacA name on a Mac cannot include a colon or start with a period, and some apps do not allow a slash.
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) FilesSection 2: fields in double quotes may hold commas and line breaks, and a quote inside one is written twice.
- Microsoft Learn: Structure of a SpreadsheetML documentHow an .xlsx workbook names its sheets and where each sheet is stored. Read together with “Working with the shared string table” and the CellValues reference on the same site for how text is held in cells.