Take a look at iTextSharp , it should give you what you need.
EDIT:
I know that it is wrong to use exceptions to control the flow, but you can do this:
public bool IsValidPdf(string fileName) { try { new iTextSharp.text.pdf.PdfReader(fileName); return true; } catch (iTextSharp.text.exceptions.InvalidPdfException) { return false; } }
source share