I have a tendency to use xargs too, but often you can go with find's -exec, especially "command {} +" construct used for spitting many files at once to the given command. E.g.
find . -iname '*.pdf' -exec pdfgrep -i keyword {} +