diff --git a/config/schema/entity_print.schema.yml b/config/schema/entity_print.schema.yml
index 2340dec..93ae6f5 100644
--- a/config/schema/entity_print.schema.yml
+++ b/config/schema/entity_print.schema.yml
@@ -113,11 +113,27 @@ entity_print_print_engine.tcpdfv1:
 
 # Add schema for our extra field settings.
 core.entity_view_display.*.*.*.third_party.entity_print:
-  type: sequence
+  type: mapping
   label: 'Schema for Entity Print third party settings'
-  sequence:
-    type: string
-    label: 'Entity print settings for each export type'
+  mapping:
+    links:
+      type: sequence
+      sequence:
+        type: entity_print.link.[%key]
+    enabled:
+      type: boolean
+      label: 'Entity print enabled'
+
+entity_print.link:*:
+  type: mapping
+  label: 'Schema for Entity Print third party settings for a single link'
+  mapping:
+    label:
+      type: string
+      label: 'Label for an entity print link'
+    view_mode:
+      type: string
+      label: 'View mode for an entity print link'
 
 action.configuration.entity_print_download_action:
   type: action_configuration_default
diff --git a/entity_print.module b/entity_print.module
index 39c2b42..1b6c867 100644
--- a/entity_print.module
+++ b/entity_print.module
@@ -74,16 +74,20 @@ function entity_print_entity_view_alter(array &$build, EntityInterface $entity,
   $access_manager = \Drupal::accessManager();
   foreach ($export_types as $export_type => $definition) {
     $key = 'entity_print_view_' . $export_type;
+    $default_settings = entity_print_default_link_settings($definition['label']);
+    $export_type_settings = $display->getThirdPartySetting('entity_print', 'links:' . $export_type, $default_settings);
+
     if ($component = $display->getComponent($key)) {
       $route_params = [
         'entity_type' => $entity->getEntityTypeId(),
         'entity_id' => $entity->id(),
         'export_type' => trim($export_type, '_engine'),
+        'view_mode' => $export_type_settings['view_mode']
       ];
 
       $build[$key] = [
         '#type' => 'print_link',
-        '#title' => $display->getThirdPartySetting('entity_print', $export_type . '_label', t('View @label', ['@label' => $definition['label']])),
+        '#title' => $export_type_settings['label'],
         '#export_type' => $export_type,
         '#url' => Url::fromRoute('entity_print.view', $route_params),
         '#weight' => $component['weight'] ?? 0,
@@ -101,14 +105,46 @@ function entity_print_form_entity_view_display_edit_form_alter(&$form, FormState
   $display = $form_state->getFormObject()->getEntity();
   $export_types = \Drupal::service('plugin.manager.entity_print.export_type')->getDefinitions();
 
+  $entity_type_id = $display->getTargetEntityTypeId();
+  $bundle = $display->getTargetBundle();
+
+  /** @var \Drupal\Core\Entity\EntityDisplayRepository $entity_display_repository */
+  $entity_display_repository = \Drupal::service('entity_display.repository');
+  $entity_view_modes = \Drupal::service('entity_display.repository')->getViewModes($entity_type_id);
+  $view_modes = [];
+  foreach ($entity_view_modes as $key => $value) {
+    $entity_display = $entity_display_repository->getViewDisplay($entity_type_id, $bundle, $key);
+    $entity_display_enabled = $entity_display->getThirdPartySetting('entity_print', 'enabled');
+    if ($entity_display_enabled) {
+      $view_modes[$key] = $value['label'];
+    }
+  }
+
   foreach ($export_types as $export_type => $definition) {
+    $default_settings = entity_print_default_link_settings($definition['label']);
+
+    $export_type_settings = $display->getThirdPartySetting('entity_print', 'links:' . $export_type, $default_settings);
     $form['fields']['entity_print_view_' . $export_type]['empty_cell'] = [
-      '#type' => 'textfield',
-      '#title' => '',
-      '#default_value' => $display->getThirdPartySetting('entity_print', $export_type . '_label', t('View @label', ['@label' => $definition['label']])),
+      [
+        '#type' => 'textfield',
+        '#title' => 'Link label',
+        '#default_value' => $export_type_settings['label'],
+      ],
+      [
+        '#title' => 'View mode',
+        '#type' => 'select',
+        '#default_value' => $export_type_settings['view_mode'],
+        '#options' => $view_modes,
+      ],
     ];
   }
 
+  $form['entity_print'] = [
+    '#type' => 'checkbox',
+    '#title' => t('Enable entity print for this view mode'),
+    '#default_value' => $display->getThirdPartySetting('entity_print', 'enabled') ?? 0,
+  ];
+
   $form['#validate'][] = 'entity_print_form_entity_view_display_edit_form_validate';
   $form['actions']['submit']['#submit'][] = 'entity_print_form_entity_view_display_edit_form_submit';
 }
@@ -136,14 +172,33 @@ function entity_print_form_entity_view_display_edit_form_submit(&$form, FormStat
   $display = $form_state->getFormObject()->getEntity();
 
   $export_types = \Drupal::service('plugin.manager.entity_print.export_type')->getDefinitions();
+
+  $enabled = (bool) $form_state->getValue('entity_print');
+  $display->setThirdPartySetting('entity_print', 'enabled', $enabled);
+
   foreach ($export_types as $export_type => $definition) {
     $key = 'entity_print_view_' . $export_type;
     // If we've enabled the entity_print_view field then save the label for
     // rendering later.
     if ($display->getComponent($key)) {
-      $value = $form_state->getValue(['fields', $key])['empty_cell'];
-      $display->setThirdPartySetting('entity_print', $export_type . '_label', $value);
+      $value_label = $form_state->getValue(['fields', $key])['empty_cell'][0];
+      $value_view_mode = $form_state->getValue(['fields', $key])['empty_cell'][1];
+      $link = [
+        'label' => $value_label,
+        'view_mode' => $value_view_mode,
+      ];
+      $display->setThirdPartySetting('entity_print', 'links:' . $export_type, $link);
     }
   }
   $display->save();
 }
+
+/**
+ * Returns the default entity print link settings
+ */
+function entity_print_default_link_settings($label) {
+  return [
+    'label' => t('View @label', ['@label' => $label]),
+    'view_mode' => 'pdf',
+  ];
+}
diff --git a/entity_print.routing.yml b/entity_print.routing.yml
index a3ec50f..b567b39 100644
--- a/entity_print.routing.yml
+++ b/entity_print.routing.yml
@@ -15,15 +15,16 @@ entity_print.view.legacy_debug:
     _custom_access: '\Drupal\entity_print\Controller\EntityPrintController::checkAccess'
 
 entity_print.view:
-  path: 'print/{export_type}/{entity_type}/{entity_id}'
+  path: 'print/{export_type}/{entity_type}/{entity_id}/{view_mode}'
   defaults:
     _controller: '\Drupal\entity_print\Controller\EntityPrintController::viewPrint'
     _title: 'Entity Print'
+    view_mode: 'pdf'
   requirements:
     _custom_access: '\Drupal\entity_print\Controller\EntityPrintController::checkAccess'
 
 entity_print.view.debug:
-  path: 'print/{export_type}/{entity_type}/{entity_id}/debug'
+  path: 'print/{export_type}/{entity_type}/{entity_id}/{view_mode}/debug'
   defaults:
     _controller: '\Drupal\entity_print\Controller\EntityPrintController::viewPrintDebug'
     _title: 'Entity Print Debug'
diff --git a/modules/entity_print_views/src/Renderer/ViewRenderer.php b/modules/entity_print_views/src/Renderer/ViewRenderer.php
index 1e214cd..c79e70a 100644
--- a/modules/entity_print_views/src/Renderer/ViewRenderer.php
+++ b/modules/entity_print_views/src/Renderer/ViewRenderer.php
@@ -28,8 +28,8 @@ class ViewRenderer extends RendererBase implements TrustedCallbackInterface {
   /**
    * {@inheritdoc}
    */
-  public function render(array $views) {
-    return array_map([$this, 'renderSingle'], $views);
+  public function render(array $entities, $custom_view_mode = 'pdf') {
+    return array_map([$this, 'renderSingle'], $entities);
   }
 
   /**
diff --git a/src/Controller/EntityPrintController.php b/src/Controller/EntityPrintController.php
index 9bfdeb3..cae01a5 100644
--- a/src/Controller/EntityPrintController.php
+++ b/src/Controller/EntityPrintController.php
@@ -76,19 +76,21 @@ class EntityPrintController extends ControllerBase {
    *   The entity type.
    * @param int $entity_id
    *   The entity id.
+   * @param string $view_mode
+   *   View mode to render.
    *
    * @return \Symfony\Component\HttpFoundation\Response
    *   The response object on error otherwise the Print is sent.
    */
-  public function viewPrint($export_type, $entity_type, $entity_id) {
+  public function viewPrint($export_type, $entity_type, $entity_id, $view_mode = 'pdf') {
     // Create the Print engine plugin.
     $config = $this->config('entity_print.settings');
     $entity = $this->entityTypeManager->getStorage($entity_type)->load($entity_id);
 
     $print_engine = $this->pluginManager->createSelectedInstance($export_type);
-    return (new StreamedResponse(function () use ($entity, $print_engine, $config) {
+    return (new StreamedResponse(function () use ($entity, $print_engine, $config, $view_mode) {
       // The Print is sent straight to the browser.
-      $this->printBuilder->deliverPrintable([$entity], $print_engine, $config->get('force_download'), $config->get('default_css'));
+      $this->printBuilder->deliverPrintable([$entity], $print_engine, $config->get('force_download'), $config->get('default_css'), $view_mode);
     }))->send();
   }
 
@@ -101,16 +103,18 @@ class EntityPrintController extends ControllerBase {
    *   The entity type.
    * @param int $entity_id
    *   The entity id.
+   * @param string $view_mode
+   *   The view mode.
    *
    * @return \Symfony\Component\HttpFoundation\Response
    *   The response object.
    *
    * @todo improve permissions in https://www.drupal.org/node/2759553
    */
-  public function viewPrintDebug($export_type, $entity_type, $entity_id) {
+  public function viewPrintDebug($export_type, $entity_type, $entity_id, $view_mode = 'pdf') {
     $entity = $this->entityTypeManager->getStorage($entity_type)->load($entity_id);
     $use_default_css = $this->config('entity_print.settings')->get('default_css');
-    return new Response($this->printBuilder->printHtml($entity, $use_default_css, FALSE));
+    return new Response($this->printBuilder->printHtml($entity, $use_default_css, FALSE, $view_mode));
   }
 
   /**
diff --git a/src/Plugin/Action/PrintDownload.php b/src/Plugin/Action/PrintDownload.php
index 8fd1df5..386b9fb 100644
--- a/src/Plugin/Action/PrintDownload.php
+++ b/src/Plugin/Action/PrintDownload.php
@@ -117,7 +117,7 @@ class PrintDownload extends ConfigurableActionBase implements ContainerFactoryPl
   public function executeMultiple(array $entities) {
     try {
       (new StreamedResponse(function () use ($entities) {
-        $this->printBuilder->deliverPrintable($entities, $this->entityPrintPluginManager->createSelectedInstance($this->configuration['export_type']), TRUE);
+        $this->printBuilder->deliverPrintable($entities, $this->entityPrintPluginManager->createSelectedInstance($this->configuration['export_type'], $this->configuration['view_mode']), TRUE, FALSE, $this->configuration['view_mode']);
       }))->send();
     }
     catch (PrintEngineException $e) {
diff --git a/src/Plugin/EntityPrintPluginManager.php b/src/Plugin/EntityPrintPluginManager.php
index dba2754..7922d85 100644
--- a/src/Plugin/EntityPrintPluginManager.php
+++ b/src/Plugin/EntityPrintPluginManager.php
@@ -74,8 +74,8 @@ class EntityPrintPluginManager extends DefaultPluginManager implements EntityPri
   /**
    * {@inheritdoc}
    */
-  public function createInstance($plugin_id, array $configuration = []) {
-    $configuration = array_merge($this->getPrintEngineSettings($plugin_id), $configuration);
+  public function createInstance($plugin_id, array $configuration = [], $view_mode = 'pdf') {
+    $configuration = array_merge($this->getPrintEngineSettings($plugin_id, $view_mode), $configuration);
 
     /** @var \Drupal\entity_print\Plugin\PrintEngineInterface $class */
     $definition = $this->getDefinition($plugin_id);
@@ -93,7 +93,7 @@ class EntityPrintPluginManager extends DefaultPluginManager implements EntityPri
   /**
    * {@inheritdoc}
    */
-  public function createSelectedInstance($export_type) {
+  public function createSelectedInstance($export_type, $view_mode = 'pdf') {
     $config = $this->configFactory->get('entity_print.settings');
     $config_engine = 'print_engines.' . $export_type . '_engine';
     $plugin_id = $config->get($config_engine);
@@ -102,7 +102,7 @@ class EntityPrintPluginManager extends DefaultPluginManager implements EntityPri
       throw new PrintEngineException(sprintf('Please configure a %s print engine.', $export_type));
     }
 
-    return $this->createInstance($plugin_id);
+    return $this->createInstance($plugin_id, [], $view_mode);
   }
 
   /**
@@ -147,11 +147,13 @@ class EntityPrintPluginManager extends DefaultPluginManager implements EntityPri
    *
    * @param string $plugin_id
    *   The plugin id.
+   * @param string $view_mode
+   *   View mode to render.
    *
    * @return array
    *   An array of Print engine settings for this plugin.
    */
-  protected function getPrintEngineSettings($plugin_id) {
+  protected function getPrintEngineSettings($plugin_id, $view_mode = 'pdf') {
     /** @var \Drupal\entity_print\Entity\PrintEngineStorageInterface $storage */
     $storage = $this->entityTypeManager->getStorage('print_engine');
     if (!$entity = $storage->load($plugin_id)) {
@@ -161,6 +163,7 @@ class EntityPrintPluginManager extends DefaultPluginManager implements EntityPri
     $event = new GenericEvent(PrintEvents::CONFIGURATION_ALTER, [
       'configuration' => $configuration,
       'config' => $entity,
+      'view_mode' => $view_mode,
     ]);
     $this->dispatcher->dispatch($event, PrintEvents::CONFIGURATION_ALTER);
     $configuration = $event->getArgument('configuration');
diff --git a/src/Plugin/EntityPrintPluginManagerInterface.php b/src/Plugin/EntityPrintPluginManagerInterface.php
index 96df907..72f66ac 100644
--- a/src/Plugin/EntityPrintPluginManagerInterface.php
+++ b/src/Plugin/EntityPrintPluginManagerInterface.php
@@ -14,11 +14,13 @@ interface EntityPrintPluginManagerInterface extends PluginManagerInterface {
    *
    * @param string $export_type
    *   The export type plugin id.
+   * @param string $view_mode
+   *   View mode to render.
    *
    * @return \Drupal\entity_print\Plugin\PrintEngineInterface
    *   The loaded print engine.
    */
-  public function createSelectedInstance($export_type);
+  public function createSelectedInstance($export_type, $view_mode = 'pdf');
 
   /**
    * Checks if a plugin is enabled based on its dependencies.
diff --git a/src/PrintBuilder.php b/src/PrintBuilder.php
index 6e0b172..92ba194 100644
--- a/src/PrintBuilder.php
+++ b/src/PrintBuilder.php
@@ -52,8 +52,8 @@ class PrintBuilder implements PrintBuilderInterface {
   /**
    * {@inheritdoc}
    */
-  public function deliverPrintable(array $entities, PrintEngineInterface $print_engine, $force_download = FALSE, $use_default_css = TRUE) {
-    $renderer = $this->prepareRenderer($entities, $print_engine, $use_default_css);
+  public function deliverPrintable(array $entities, PrintEngineInterface $print_engine, $force_download = FALSE, $use_default_css = TRUE, $view_mode = 'pdf') {
+    $renderer = $this->prepareRenderer($entities, $print_engine, $use_default_css, $view_mode);
 
     // Allow other modules to alter the generated Print object.
     $this->dispatcher->dispatch(new PreSendPrintEvent($print_engine, $entities), PrintEvents::PRE_SEND);
@@ -67,9 +67,9 @@ class PrintBuilder implements PrintBuilderInterface {
   /**
    * {@inheritdoc}
    */
-  public function printHtml(EntityInterface $entity, $use_default_css = TRUE, $optimize_css = TRUE) {
+  public function printHtml(EntityInterface $entity, $use_default_css = TRUE, $optimize_css = TRUE, $view_mode = 'pdf') {
     $renderer = $this->rendererFactory->create([$entity]);
-    $content[] = $renderer->render([$entity]);
+    $content[] = $renderer->render([$entity], $view_mode);
 
     $render = [
       '#theme' => 'entity_print__' . $entity->getEntityTypeId() . '__' . $entity->bundle(),
@@ -77,14 +77,14 @@ class PrintBuilder implements PrintBuilderInterface {
       '#content' => $content,
       '#attached' => [],
     ];
-    return $renderer->generateHtml([$entity], $render, $use_default_css, $optimize_css);
+    return $renderer->generateHtml([$entity], $render, $use_default_css, $optimize_css, $view_mode);
   }
 
   /**
    * {@inheritdoc}
    */
-  public function savePrintable(array $entities, PrintEngineInterface $print_engine, $scheme = 'public', $filename = FALSE, $use_default_css = TRUE) {
-    $renderer = $this->prepareRenderer($entities, $print_engine, $use_default_css);
+  public function savePrintable(array $entities, PrintEngineInterface $print_engine, $scheme = 'public', $filename = FALSE, $use_default_css = TRUE, $custom_view_mode = 'pdf') {
+    $renderer = $this->prepareRenderer($entities, $print_engine, $use_default_css, $custom_view_mode);
 
     // Allow other modules to alter the generated Print object.
     $this->dispatcher->dispatch(new PreSendPrintEvent($print_engine, $entities), PrintEvents::PRE_SEND);
@@ -109,17 +109,19 @@ class PrintBuilder implements PrintBuilderInterface {
    *   The print engine.
    * @param bool $use_default_css
    *   TRUE if we want the default CSS included.
+   * @param string $custom_view_mode
+   *   View mode to render.
    *
    * @return \Drupal\entity_print\Renderer\RendererInterface
    *   A print renderer.
    */
-  protected function prepareRenderer(array $entities, PrintEngineInterface $print_engine, $use_default_css) {
+  protected function prepareRenderer(array $entities, PrintEngineInterface $print_engine, $use_default_css, $custom_view_mode = 'pdf') {
     if (empty($entities)) {
       throw new \InvalidArgumentException('You must pass at least 1 entity');
     }
 
     $renderer = $this->rendererFactory->create($entities);
-    $content = $renderer->render($entities);
+    $content = $renderer->render($entities, $custom_view_mode);
 
     $first_entity = reset($entities);
     $render = [
@@ -129,7 +131,7 @@ class PrintBuilder implements PrintBuilderInterface {
       '#attached' => [],
     ];
 
-    $print_engine->addPage($renderer->generateHtml($entities, $render, $use_default_css, TRUE));
+    $print_engine->addPage($renderer->generateHtml($entities, $render, $use_default_css, TRUE, $custom_view_mode));
 
     return $renderer;
   }
diff --git a/src/PrintBuilderInterface.php b/src/PrintBuilderInterface.php
index fae2bef..4527f1b 100644
--- a/src/PrintBuilderInterface.php
+++ b/src/PrintBuilderInterface.php
@@ -21,11 +21,13 @@ interface PrintBuilderInterface {
    *   (optional) TRUE to try and force the document download.
    * @param bool $use_default_css
    *   (optional) TRUE if you want the default CSS included, otherwise FALSE.
+   * @param string $view_mode
+   *   (optional) The view mode.
    *
    * @return string
    *   FALSE or the Print content will be sent to the browser.
    */
-  public function deliverPrintable(array $entities, PrintEngineInterface $print_engine, $force_download = FALSE, $use_default_css = TRUE);
+  public function deliverPrintable(array $entities, PrintEngineInterface $print_engine, $force_download = FALSE, $use_default_css = TRUE, $view_mode = 'pdf');
 
   /**
    * Get a HTML version of the entity as used for the Print rendering.
@@ -36,11 +38,13 @@ interface PrintBuilderInterface {
    *   TRUE if you want the default CSS included, otherwise FALSE.
    * @param bool $optimize_css
    *   TRUE if you the CSS should be compressed otherwise FALSE.
+   * @param string $view_mode
+   *   (optional) name of view mode to render.
    *
    * @return string
    *   The rendered HTML for the entity, the same as what is used for the Print.
    */
-  public function printHtml(EntityInterface $entity, $use_default_css = TRUE, $optimize_css = TRUE);
+  public function printHtml(EntityInterface $entity, $use_default_css = TRUE, $optimize_css = TRUE, $view_mode = 'pdf');
 
   /**
    * Render any content entity as a printed document and save to disk.
@@ -61,10 +65,12 @@ interface PrintBuilderInterface {
    *   (optional) The filename or empty to have one generated.
    * @param bool $use_default_css
    *   (optional) TRUE if you want the default CSS included, otherwise FALSE.
+   * @param string $custom_view_mode
+   *   (optional) name of view mode to render.
    *
    * @return string
    *   FALSE or the URI to the file. E.g. public://my-file.pdf.
    */
-  public function savePrintable(array $entities, PrintEngineInterface $print_engine, $scheme = 'public', $filename = '', $use_default_css = TRUE);
+  public function savePrintable(array $entities, PrintEngineInterface $print_engine, $scheme = 'public', $filename = '', $use_default_css = TRUE, $custom_view_mode = 'pdf');
 
 }
diff --git a/src/Renderer/ContentEntityRenderer.php b/src/Renderer/ContentEntityRenderer.php
index 4ac83e8..121e617 100644
--- a/src/Renderer/ContentEntityRenderer.php
+++ b/src/Renderer/ContentEntityRenderer.php
@@ -58,11 +58,11 @@ class ContentEntityRenderer extends RendererBase {
   /**
    * {@inheritdoc}
    */
-  public function render(array $entities) {
+  public function render(array $entities, $custom_view_mode = 'pdf') {
     $build = [];
     foreach ($entities as $entity) {
       $render_controller = $this->entityTypeManager->getViewBuilder($entity->getEntityTypeId());
-      $build[] = $render_controller->view($entity, $this->getViewMode($entity));
+      $build[] = $render_controller->view($entity, $this->getViewMode($entity, $custom_view_mode));
     }
     return $build;
   }
@@ -72,14 +72,16 @@ class ContentEntityRenderer extends RendererBase {
    *
    * @param \Drupal\Core\Entity\EntityInterface $entity
    *   The content entity we're viewing.
+   * @param string $custom_view_mode
+   *   (optional) name of view mode to render.
    *
    * @return string
    *   The view mode machine name.
    */
-  protected function getViewMode(EntityInterface $entity) {
+  protected function getViewMode(EntityInterface $entity, $custom_view_mode = 'pdf') {
     // We check to see if the PDF view display have been configured, if not
     // then we simply fall back to the full display.
-    $view_mode = 'pdf';
+    $view_mode = $custom_view_mode;
     if (!$this->entityTypeManager->getStorage('entity_view_display')->load($entity->getEntityTypeId() . '.' . $entity->bundle() . '.' . $view_mode)) {
       $view_mode = 'full';
     }
diff --git a/src/Renderer/RendererBase.php b/src/Renderer/RendererBase.php
index 568786a..1c3095f 100644
--- a/src/Renderer/RendererBase.php
+++ b/src/Renderer/RendererBase.php
@@ -80,8 +80,8 @@ abstract class RendererBase implements RendererInterface, EntityHandlerInterface
   /**
    * {@inheritdoc}
    */
-  public function generateHtml(array $entities, array $render, $use_default_css, $optimize_css) {
-    $rendered_css = $this->assetRenderer->render($entities, $use_default_css, $optimize_css);
+  public function generateHtml(array $entities, array $render, $use_default_css, $optimize_css, $view_mode = 'pdf') {
+    $rendered_css = $this->assetRenderer->render($entities, $use_default_css, $optimize_css, $view_mode);
     $render['#entity_print_css'] = $this->renderer->executeInRenderContext(new RenderContext(), function () use (&$rendered_css) {
       return $this->renderer->render($rendered_css);
     });
diff --git a/src/Renderer/RendererInterface.php b/src/Renderer/RendererInterface.php
index a25f48b..1feb9d4 100644
--- a/src/Renderer/RendererInterface.php
+++ b/src/Renderer/RendererInterface.php
@@ -12,11 +12,13 @@ interface RendererInterface {
    *
    * @param \Drupal\Core\Entity\EntityInterface[] $entities
    *   The entities we're rendering.
+   * @param string $custom_view_mode
+   *   (optional) name of view mode to render.
    *
    * @return array
    *   The renderable array for the entity.
    */
-  public function render(array $entities);
+  public function render(array $entities, $custom_view_mode = 'pdf');
 
   /**
    * Generates the HTML from the renderable array of entities.
@@ -29,11 +31,13 @@ interface RendererInterface {
    *   TRUE if we should inject our default CSS otherwise FALSE.
    * @param bool $optimize_css
    *   TRUE if we should compress the CSS otherwise FALSE.
+   * @param string $view_mode
+   *   (optional) name of view mode to render.
    *
    * @return string
    *   The generated HTML.
    */
-  public function generateHtml(array $entities, array $render, $use_default_css, $optimize_css);
+  public function generateHtml(array $entities, array $render, $use_default_css, $optimize_css, $view_mode = 'pdf');
 
   /**
    * Get the filename for the entity we're printing *without* the extension.
