As a temporary workaround, I'm doing as I suggested above.
I'm getting all text on the page, eliminating the duplicates, and doing a FindText for each "word" found. However I'm running into some errors with FindText.
Just doing a quick test, I found errors with 2 "words" (athough one is just a symbol)
"+" and "filter"
Filter throws
VER: 01/17/2018 15:00:18: Getting collection for: 'filter'
ERR: 01/17/2018 15:00:18: error message in getPageCoordinatesData: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
ERR: 01/17/2018 15:00:18: stack trace in getPageCoordinatesData: at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at Spire.Pdf.PdfPageBase.ᜀ(PdfTextFindCollection A_0, String A_1)
at Spire.Pdf.PdfPageBase.ᜀ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜁ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String[] A_0, PdfPageResources A_1, sprᤩ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜁ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String[] A_0, PdfPageResources A_1, sprᤩ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜁ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ExecuteCommandFindText(String searchPatternText)
at Spire.Pdf.PdfPageBase.FindText(String searchPatternText)
And "+" throws
VER: 1/17/2018 2:59:37 PM: Getting collection for: '+'
ERR: 01/17/2018 14:59:37: error message in getPageCoordinatesData: parsing "+" - Quantifier {x,y} following nothing.
ERR: 01/17/2018 14:59:37: stack trace in getPageCoordinatesData: at System.Text.RegularExpressions.RegexParser.ScanRegex()
at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)
at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, TimeSpan matchTimeout, Boolean useCache)
at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options)
at Spire.Pdf.PdfPageBase.ᜀ(PdfTextFindCollection A_0, String A_1)
at Spire.Pdf.PdfPageBase.ᜀ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜁ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String[] A_0, PdfPageResources A_1, sprᤩ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜁ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String[] A_0, PdfPageResources A_1, sprᤩ A_2)
at Spire.Pdf.PdfPageBase.ᜀ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ᜁ(String A_0, sprᤩ A_1, sprᩓ A_2)
at Spire.Pdf.PdfPageBase.ExecuteCommandFindText(String searchPatternText)
at Spire.Pdf.PdfPageBase.FindText(String searchPatternText)
Just letting you know in case others are having the same problem. If this isn't something that is easily fixed, it might be nice to have some "words" to avoid listed in the documentation.