add new conversion service from text/html to text/plain

This commit is contained in:
Uwe Steinmann 2024-05-07 13:51:21 +02:00
parent 79d4315ff7
commit 56cc64d1cf
3 changed files with 54 additions and 0 deletions

View File

@ -16,6 +16,7 @@ require_once("inc/inc.ClassConversionServiceImageToImage.php");
require_once("inc/inc.ClassConversionServiceImageToText.php");
require_once("inc/inc.ClassConversionServicePdfToImage.php");
require_once("inc/inc.ClassConversionServiceTextToText.php");
require_once("inc/inc.ClassConversionServiceHtmlToText.php");
require_once("inc/inc.ClassConversionServiceTextToImage.php");
/**

View File

@ -0,0 +1,51 @@
<?php
/**
* Implementation of conversion service class
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2021 Uwe Steinmann
* @version Release: @package_version@
*/
require_once("inc/inc.ClassConversionServiceBase.php");
/**
* Implementation of conversion service class for text to text
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2021 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_ConversionServiceHtmlToText extends SeedDMS_ConversionServiceBase {
public function __construct($from, $to) {
parent::__construct();
$this->from = $from;
$this->to = $to;
}
public function getInfo() {
return "Strip tags from document contents";
}
public function convert($infile, $target = null, $params = array()) {
$d = new DOMDocument;
$d->loadHTMLFile($infile);
$body = $d->getElementsByTagName('body')->item(0);
$str = '';
foreach($body->childNodes as $childNode) {
$str .= $d->saveHTML($childNode);
}
if($target) {
file_put_contents($target, strip_tags($str));
return true;
} else
return strip_tags($str);
}
}

View File

@ -45,6 +45,8 @@ $conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/plain',
$conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/markdown', 'text/plain'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/x-rst', 'text/plain'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceHtmlToText('text/html', 'text/plain'))->setLogger($logger);
if(isset($GLOBALS['SEEDDMS_HOOKS']['initConversion'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['initConversion'] as $hookObj) {
if (method_exists($hookObj, 'getConversionServices')) {