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

    Estrarre contenuto da un pdf

    Come da topic, mi chiedevo se c'è un modo in PHP per leggere un file PDF ed estrapolarne il contenuto testuale e poi permetterne la manipolazione.

    Grazie,
    Ale
    Moderatore di me stesso
    LAVORICREATIVI.COM - ANNUNCI PER CREATIVI e AGENZIE
    SNOWTURA.COM - UNDER CONSTRUCTION

  2. #2
    una volta ho trovato questo pezzo di codice che prometteva di fare quello che tu chiedi
    non l'ho mai provato perche fino ad ora non avuto la necessita cmq te lo posto spero funzioni:
    <?php
    $test = pdf2string("<pathtoPDFfile>");
    echo "$test";

    # Returns a -1 if uncompression failed
    function pdf2string($sourcefile)
    {
    $fp = fopen($sourcefile, 'rb');
    $content = fread($fp, filesize($sourcefile));
    fclose($fp);

    # Locate all text hidden within the stream and endstream tags
    $searchstart = 'stream';
    $searchend = 'endstream';
    $pdfdocument = "";

    $pos = 0;
    $pos2 = 0;
    $startpos = 0;
    # Iterate through each stream block
    while( $pos !== false && $pos2 !== false )
    {
    # Grab beginning and end tag locations if they have not yet been parsed
    $pos = strpos($content, $searchstart, $startpos);
    $pos2 = strpos($content, $searchend, $startpos + 1);
    if( $pos !== false && $pos2 !== false )
    {
    # Extract compressed text from between stream tags and uncompress
    $textsection = substr($content, $pos + strlen($searchstart) + 2, $pos2 - $pos - strlen($searchstart) - 1);
    $data = @gzuncompress($textsection);
    # Clean up text via a special function
    $data = ExtractText($data);
    # Increase our PDF pointer past the section we just read
    $startpos = $pos2 + strlen($searchend) - 1;
    if( $data === false ) { return -1; }
    $pdfdocument = $pdfdocument . $data;
    }
    }

    return $pdfdocument;
    }

    function ExtractText($postScriptData)
    {
    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);
    }
    ?>

    altrimenti puoi usare un eseguibile che credo sia free che si chiama pdftotxt ed usando la funzione exec, svolgere l'operazione da dos
    ciao
    http://www.perungiorno.it

  3. #3
    funziona con i pdf contenenti solo testo. con un pdf ke contiene un'immaginetta di intestazione e poi il testo mi da una pagina html vuota. bianca. nemmeno -1.
    [OT]
    c'è una guida da qualche parte che spiega com'è strutturato internamente il pdf e come fare per gestire le varie tipologie di contenuti?

    Esempio: il mio pdf contiene un'immaginetta e poi il testo. io me ne frego dell'immaginetta, la ignoro e estraggo solo il testo.

    Inoltre ho notato che lo script restituisce solo testo nudo e crudo. Numeri e lettere. anche solo lettere accentate, accenti, apici etc vengono riportati col valore ascii (suppongo. es: è = 350). Il problema è che non è che hanno un simbolo davanti, quindi non posso ritrattare il testo dicendo: "ok, dove c'è #350 ci metto una è".

    Idee?

    Grazie pax

    ciauz,
    Ale
    Moderatore di me stesso
    LAVORICREATIVI.COM - ANNUNCI PER CREATIVI e AGENZIE
    SNOWTURA.COM - UNDER CONSTRUCTION

  4. #4
    up!
    Moderatore di me stesso
    LAVORICREATIVI.COM - ANNUNCI PER CREATIVI e AGENZIE
    SNOWTURA.COM - UNDER CONSTRUCTION

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.