Every portal has its own Media bank where you can store images, documents, video etc. You can create custom object types where you define additional properties. On a specific media object you edit these properties which is searchable in the portal. In an object type it is possible to define access to a specific group of users.
A user can download or preview objects from the media bank. If a media object is connected to print template it is possible to order a media object as a print product.
In a dynamic template it is possible to let the user select an image from the media bank that is placed in image field of the dynamic template. Layers in dynamic templates can be a PDF page that exists in the media bank.