Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Estrapolare il testo da file PDF

    salve tutti.

    sto cercando di estrapolare del testo da documenti pdf.
    sto usando questa funzione:
    function pdf2string ($sourceFile)
    {
    //print "chiamata pdf2string
    ";
    $textArray = array ();
    $objStart = 0;

    $fp = fopen ($sourceFile, 'rb');
    $content = fread ($fp, filesize ($sourceFile));
    fclose ($fp);
    //print $content;
    //$searchTagStart = chr(13).chr(10).'stream';
    $searchTagStart = 'stream';
    //print $searchTagStart;
    $searchTagStartLenght = strlen ($searchTagStart);
    $objStart = strpos ($content, $searchTagStart, $objStart);
    //print $objStart;
    while (($objStart = strpos ($content, $searchTagStart, $objStart)) && ($objEnd = strpos ($content, 'endstream', $objStart+1)))
    {
    //print "
    $objStart e finisce $objEnd
    ";
    $data = substr ($content, $objStart + $searchTagStartLenght + 2, $objEnd - ($objStart + $searchTagStartLenght) - 2);
    //print "Stringa:

    " .$data."

    ";
    $data = @gzuncompress($data);
    if ($data != FALSE && strpos ($data, 'BT') !== FALSE && strpos ($data, 'ET') !== FALSE)
    {
    $textArray [] = ExtractText ($data);
    } else {
    if ($data == FALSE) print "False";
    }

    $objStart = $objStart < $objEnd ? $objEnd : $objStart + 1;
    }

    return $textArray;
    }

    function ExtractText ($postScriptData)
    {
    //print "Chiamata extracttext
    ";
    while ((($textStart = strpos ($postScriptData, '(', $textStart)) && ($textEnd = strpos ($postScriptData, ')', $textStart + 1)) && substr ($postScriptData, $textEnd - 1) != '\\'))
    {
    $plainText .= substr ($postScriptData, $textStart + 1, $textEnd - $textStart - 1);
    if (substr ($postScriptData, $textEnd + 1, 1) == ']') //this adds quite some additional spaces between the words
    {
    $plainText .= ' ';
    }

    $textStart = $textStart < $textEnd ? $textEnd : $textStart + 1;
    }

    return stripslashes ($plainText);
    }


    ORA IL problema e' che la funzione:

    $data = @gzuncompress($data);

    da un bel false e non capisco il perche'!

    Qualcuno mi sa dare una mano. GRAZIE!
    W la neve freska

  2. #2
    togli la chiocciola davanti alla funzione e posta l'errore

  3. #3
    Warning: gzuncompress(): data error in C:\lavoro\parser_As400\pdf2string.php on line 31
    W la neve freska

  4. #4
    mhm non saprei dirti molto, speriamo passi qualcuno che l'ha usata più di me questa funzione...l'unica cosa che posso suggerirti è ciò che dice il manuale ma non ho idea se sia questo il caso

    codice:
    The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

  5. #5
    gia' l'ho guardato tanto il manuale e non ha senso perche' lo fa con qualsiasi pdf.

    Non solo con quelli che creo io.

    l'errore e' proprio nella funzione guncompress.

    da errore anche su un sistema unix-like non solo su windows.

    Ora quella funzione l'ho trovata proprio in un post nella sezione pdf del manuale online del php

    quindi al tipo funziona e a me no. boh
    W la neve freska

  6. #6
    ho cercato d'appertutto ma nessuno mi sa dare una mano. confido in voi. se faccio sta funzione sono a cavallo!
    W la neve freska

  7. #7
    ho visto che consigliano di creare l'html al volo ma nel mio caso non ha molto senso.

    Sto facendo un motore di ricerca interno in un sito e volevo provare a dare come risultato (come in google) i file che hanno determinate parole inserite dall'utente nel form di ricerca.

    Una soluzione e' quella di usare pdftotext, ma sti stronzi del dominio mi hanno inventato pare per non installare questa utility.

    Come ripeto lo script pdf2string c'e'. Lo si trova direttamente nel manuale php online ma non funziona sulla chiamata a guncompress e non so perche'. qualcuno mi sa dire qualcosa?

    grazie
    W la neve freska

  8. #8
    Ciao,

    anch'io ho avuto lo stesso problema.
    In sintesi il file Pdf con php non riesco a leggerlo "al volo".
    Mi sono documentato dovunque e, con sommo orrore, ho dovuto constatare che di programmi per creare pdf ce ne sono a badilate, ma per leggerli ho trovato solo qualche classe, peraltro poco o nulla funzionante.
    Ho risolto la cosa in modo diverso installando sul server (linux) il programma pdftohtml che è un eseguibile, dandogli i permessi di esecuzione da apache e "scrivendo" provvisoriamente i files in una directory creata appositamente.
    Questo però puoi farlo solo se hai l'amministrazione del sistema (o se paghi profumatamente qualcuno per un housing), in altro modo non saprei come consigliarti.
    Chissà se c'è qualcuno che nel frattempo ha risolto?

    ciao a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.