Program that allows you to create documents.
Everything needed to create, view & modify PDF files - SDK available.
Virtual printer that allows any application with printing capability to generate PDF documents.