スポンサーサイト

  • このエントリーを含むはてなブックマーク
  • Yahoo!ブックマークに登録
    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    knowledgeTree Windows版日本語検索成功!!(2)

  • このエントリーを含むはてなブックマーク
  • Yahoo!ブックマークに登録
    今度は、エクストラクタです。

    もともとのPowerpointExtractorではなく、PDFExtractorをベースにしました。

    内容は、下記の通りです。




    class PowerpointExtractor extends ApplicationExtractor
    {
    public function __construct()
    {

    parent::__construct('extractors','unoconv','unoconv','Office Powerpoint Text Extractor','--port=8100 --format=xml --stdout "{source}" > "{target}"');

    }

    public function getSupportedMimeTypes()
    {
    return array('application/vnd.ms-powerpoint');
    }

    protected function filter($text)
    {
    return preg_replace ("@(]*>)+@", " ", $text);
    }

    protected function exec($cmd)
    {
    global $default;
    $res = parent::exec($cmd);

    if (false === $res && ((strpos($this->output, 'Copying of text from this document is not allowed') !== false) ||
    (strpos($this->output, 'Incorrect password') !== false)))
    {
    $this->output = '';
    file_put_contents($this->targetfile, _kt('Security properties on the PDF document prevent text from being extracted.'));
    $default->log->info('Security properties on the PDF document prevent text from being extracted.');
    return true;
    }

    if (false === $res && (strpos($this->output, 'PDF file is damaged') !== false))
    {
    $this->output = '';
    $default->log->info('PDF file is damaged');
    return true;
    }


    if (false === $res && (strpos($this->output, '(continuing anyway)') !== false))
    {
    $this->output = '';
    return true;
    }

    if (false === $res && (strpos($this->output, 'font') !== false))
    {
    $this->output = '';
    return true;
    }

    if (filesize($this->targetfile) > 0)
    {
    $this->output = '';
    return true;
    }

    return $res;

    }
    }


    ?>



    スクリプト内のポート指定を変更したりフォーマットの既定をスクリプト内に
    設定すれば、さらに簡略化できると思いますが、現状では、このままに
    しました。

    function execに関しては、手を入れるべきですが、元のままです。
    これを動作させるためには、config.iniの設定で、unoconvを呼び出せる
    様に設定する必要があります。

    下記をconfig.iniに追記します。


    [extractors]
    unoconv = C:/Program Files/ktdms/openoffice/program/unoconv.bat



    最後に次のエントリで、unoconvの変更箇所を触れます。

    スポンサーサイト

    theme : Linux
    genre : コンピュータ

    comment

    Secret

    ご案内
    google検索
    カスタム検索
    カテゴリ
    最新記事
    Amazon
    カテゴリー&RSS
    RSS新着情報

    plugin by F.B

    検索フォーム
    最近のコメント(コンパクト)
    データ取得中...
    リンク
    フリーエリア
    RSSリンクの表示
    カレンダー
    06 | 2017/07 | 08
    - - - - - - 1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30 31 - - - - -
    ブックマーク
    Yahoo!ブックマークに登録
  • | このエントリーを含むはてなブックマーク
  • 月別アーカイブ
    最新トラックバック
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。