PDF Renderer
============

Render a bibliography in pdf-format.

Add a lightweight content object implementing IBibliographicReference.

  >>> context = SimpleContent()

Call the EndNote render view

  >>> from zope.publisher.browser import TestRequest
  >>> from bibliograph.rendering.renderers.pdf import PdfRenderView

  >>> request = TestRequest()
  >>> view = PdfRenderView(context, request)

  We just check, if there's some PDF. We don't want to parse the output
  here.
  >>> print view()
  %PDF-1...
  %%EOF
  <BLANKLINE>

Now let's test the utility.

  >>> c1 = SimpleContent()
  >>> c2 = SimpleContent()

Render two documents with the pdf render utility. We can pass a list/tuple of
bibliographic content as first parameter ...

  >>> from bibliograph.rendering.utility import PdfRenderer
  >>> print PdfRenderer().render([context, c1, c2])
  %PDF-...
  %%EOF
  <BLANKLINE>

At least we got something, looking like a PDF :).

 ... or we can pass a container. The container needs to implement
 `IBibliographyExport` and needs to implement or adapt to `IBibliography`:

Setup the pdf-render view (This is done by zcml normaly.):
  >>> from zope.app.testing import ztapi
  >>> from bibliograph.core.interfaces import IBibliographyExport
  >>> ztapi.browserView(IBibliographyExport, 'reference.pdf', PdfRenderView)

  >>> from zope.app.container.sample import SampleContainer
  >>> container = SampleContainer()
  >>> setattr(container, '__name__', 'BibContainer')

  >>> from zope.interface import alsoProvides
  >>> from bibliograph.core.interfaces import IBibliography
  >>> alsoProvides(container, IBibliography)
  >>> alsoProvides(container, IBibliographyExport)

  >>> container['c1'] = c1
  >>> container['c2'] = c2

  >>> print PdfRenderer().render(container)
  %PDF-...
  %%EOF
  <BLANKLINE>




