TYPO3 Plugin:

nezzopdfcrowd

nezzopdfcrowd

Zweck

Diese Erweiterung wird verwendet, um html-Seiten in pdf-Dateien mit dem Service von pdfcrowd.com zu konvertieren.

Verwendung

Installation

Nachdem Sie die Erweiterung installiert haben, müssen Sie den Benutzernamen und den APIkey für das pdfcrowd-account einrichten. Wir verwenden immer Ihr Internezzokonto (kein kundenspezifisches Konto). Er ist unter https://passepartout.internezzo.ch/entry/detail/pdfcrowd zu finden

Die html-Seite

Sie müssen eine Seite erstellen lassen, die den gewünschten Inhalt im pdf anzeigt. Normalerweise verwenden Sie eine spezielle Seitenvorlage, die keine Navigation, Kopf- oder Fußzeile wiedergibt. Oder vielleicht eine spezielle Kopf-/Fußzeile für das pdf.

eid-script

Diese Erweiterung enthält ein Eid-Skript, das einige Parameter erwartet:

  • url: url zur html-Seite
  • dateiname: der Dateiname der erzeugten pdf-Datei
  • (optional) Cachetags: kommagetrennte Liste der "Cache-Tags" (siehe TYPO3 Caching-Framework), die dem Cache-Eintrag hinzugefügt werden, so dass Sie ihn über Tag löschen können

ViewHelper

Um einen Link zum eid-Skript zu erhalten, können Sie den viewhelper verwenden

{namespace npc=Internezzo\Nezzopdfcrowd\ViewHelpers}

...

<npc:link.pdf uri="anbsoluteUriToThePDF(mabye via uri.action oder uri.page viewhelper)" filename="filenameofthepdf.pdf" target="_blank" cachetags="{0:'extension_prefix_{object.uid}'}">PDF-Download</npc:link.pdf>

Caching

Da jede pdf-Generation Gutschriften kostet und diese pro Monat begrenzt sind, werden die erzeugten pdf-Dateien zwischengespeichert

Alle zwischengespeicherten pdf-Dateien löschen

Diese Erweiterung erweitert die Backend-Schnittstelle um eine neue Cache-Gruppe. Im Moment wird es nur Admins gezeigt. Mit dieser Funktion können Sie alle zwischengespeicherten pdf-Dateien löschen. Dies sollte z.B. verwendet werden, wenn sich das Styling der pdf-html-Seite geändert hat.

Übersichtlicher pdf-Cache für ein einzelnes pdf

Mit den Cache-Tags (normalerweise benötigen Sie nur einen Cachetag) können Sie das zwischengespeicherte pdf für einzelne Datensätze löschen. Normalerweise wird die HTML-Seite basierend auf einem Domäneneintrag generiert, der in der Listenansicht bearbeitet wird. Sie können Datahandler-Hooks verwenden, um den Cache eines solchen Datensatzes zu leeren. Stellen Sie einfach sicher, dass Sie den Cachetag genau so generieren, wie Sie es vom viewhelper gewohnt sind. Beispiel für die Registrierung des Datahandler-Hooks (sollte in ext_localconf.php platziert werden):

 / /Hook zum Löschen des PDF-Cache, wenn ein Projekt geändert wurde
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['nezzocmb'] ='Internezzo\Nezzocmb\\Hooks\\TceMain';

Beispiel für die Hakenklasse:

 <?php
 namensraum Internezzo\Nezzocmb\Hooks;

 verwenden Sie TYPO3\CMS\Core\Utility\GeneralUtility\GeneralUtility;
 verwenden Sie TYPO3\CMS\Extbase\Object\Object\ObjectManager;
 verwenden Sie TYPO3\CMS\Core\Cache\Cache\CacheManager;

 klasse TceMain
 {
     /** @var \TYPO3\CMS\Core\Cache\Frontend\Frontend\FrontendInterface $cache */
     geschützter $cache;

     /**
      * ClearCacheAction-Konstruktor.
      */
     öffentliche Funktion __construct()
     {
         $objectManager = GeneralUtility::makeInstance(ObjectManager::class);
         /** @var CacheManager $cacheManager */
         $cacheManager = $objectManager->get(CacheManager::class);
         $this->cache = $cacheManager->getCache('nezzopdfcrowd_pdfcache');
     }

     /**
      * @param $status
      * @param $table
      * @param $id
      * @param array $fieldArray
      * @param \TYPO3\CMS\Core\DataHandling\DataHandler $pObj
      */
     öffentliche Funktion processDatamap_postProcessFieldArray($status, $table, $id, array &$fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj)
     {
         if ($table !== 'tx_nezzoworldmap_domain_model_position') {
             zurückkehren;
         }

         $this->cache->flushByTag('nezzocbm_projectpdf_'.$id);
     }
 }

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.