get name and email in exchange for free PDF
For emailing the PDF my approach would be to use a mix of Forms(WP plugin)/Profiles and Scheduled reminders or CiviRules. For granting access to an online PDF library I suggest you ask a separate question.  

Setup


Create a custom activity type ie PDF request, and a couple of message templates, one for the welcome/thank you email on request (ie activity status Scheduled) and second one with the actual PDF or link to the PDF, when approved (ie activity status Completed).
You can go cray cray and create your own, more descriptive, statuses ie For review.
Set up a Scheduled reminder or CiviRule for the PDF request activity with status Scheduled to send the welcome/thank you email.
Set up a Scheduled reminder or CiviRule for the PDF request activity with status Completed to send the PDF/link to PDF email.


Workflow

User fills in form/profile and submits it, contact and PDF request activity with status Scheduled is created on form submission, user receives welcome email, admin is notified, admin reviews contact/lead and approves the lead updating activity status to Completed, lead receives PDF/link to PDF email. With CiviRules you can create even more powerful and crazy workflows!

Implementation


The Profile path would need a bit of custom development, using the appropriate form/profile hooks in an extension to create a PDF request activity type with status Scheduled on form submission that would trigger the described workflow.
Using Forms you have a couple of options, the Gravity Forms CiviCRM integration (paid add-on for Gravity Forms) and the Caldera Forms CiviCRM integration (free and open source), both will allow you to create an activity on form submission without the need of custom development.


Disclaimer: I'm the developer of the Caldera Forms CiviCRM integration.