Find supports -o
find \. ! '(' -name '*.txt' -o -name '*.pdf' ')' You need the parenthesis to make the precedence right. Find does a lot of stuff; I suggest reading through its manpage.
You can also do an or in grep (but really, you should not parse the output of ls)
ls | egrepgrep -vEv '\.(txt|pdf)$' | column