There are many different options for getting information from Active Directory.
My favorite approach is to write a .Net assembly to retrieve the data using the objects in the DirectoryServices namespace. Then, I call this assembly from a web service. The SharePoint DataView WebPart can display data from web services.
Another option is to output the data to SQL Server, and display if from there. In your case, SQL Server may be preferable since the Reporting Services program can output to PDF.
There are many third-party products to create PDF files. I'm sure you could find one to meet your needs.