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.
[DependciesAndConflicts]