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

    copiare righe da un file rtf creando un nuovo file rtf rtf

    Salve,

    ho un problema non riesco a trovare un sistema per copiare righe colorate o evidenziate di un file rtf per poi copiarle in un nuovo file sempre rtf.
    In pratica riesco a farlo se le righe sono quelle di un file di testo semplice, ma nel caso abbiano una formattazione particolare come ad esempio se siano colorate oltre a copiare il testo della riga il programma scrive sul nuovo file tutte le caratteristiche del testo copiato come il tipo di font il nome ed il codice del colore ecc.
    Ho usato il metodo readUTF() e writeUTF() invece di readLine() per la lettura\scrittura delle linee di testo ma il risultato non cambia.

    Grazie per le eventuali risposte.

  2. #2
    riporto la parte di codice che ho usato per copiare le righe del file letto


    uscita2 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(nomeCopia)));

    //parte dall'inizio;
    ingresso.reset();
    while ((riga = inputFile.readUTF()) != null){
    cont++;
    //trascrizione della riga letta
    uscita2.writeUTF(cont + riga);
    }

    di seguito un esempio delle righe del file da copiare:
    AA.
    (le "AA" sono scritte in blu)


    questo il risultato a video sul file copia:

    1 {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
    2 {\colortbl ;\red0\green77\blue187;}
    3 {\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\cf1\lang1040\f0\ fs22 AA\cf0\par
    4 }
    5

    come potete notare sul file copia vengono riportate tutte le caratteristiche di formattazione.

    Grazie.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non si capisce: vuoi o NON vuoi che sia mantenua la formattazione? Perché se apro un hex-editor, e ci incollo dentro (togliendo i numeri di riga che stampi) il "codice" rtf che stai copiando e salvo tutto come .rtf ottengo esattamente un file così:

    AA

    che, per inciso, è esattamente quello che mi aspetto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    grazie per la risposta,

    in pratica ho la necessita di prelevare il contenuto di alcuni report (file.rtf) copiare alcune righe di tali file in altri file per poi elaborarli successivamente.
    Se fossero stati dei semplici file di testo non avrei avuto problemi ma dovendo copiare righe colorate e con font particolari il file generato che sia rtf o txt mi da come risultato quello mostrato nell'esempio precedente.
    Ovviamente se apro il file copia con un hex editor il problema non si pone ma dovendo usare necessariamente wordpad editor o peggio ancora word il risultato e' sempre quello.

    Grazie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ok, continui a non chiarire però. La vuoi sta formattazione o vuoi solo il testo?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    si il file deve essere riprodotto così com'è l'originale.

  7. #7
    allora il problema di leggere e scrivere un file rtf l'ho risolto trattando il file rtf così com'è cioè come un file binario pertanto riesco a leggerlo e poi scriverlo con questa parte di codice:

    Try{
    DataInputFile inputFile= new DataInputStream(new BufferedInputStream(new FileInputStream(nomeIngresso)));
    DataOutputFile uscita2 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(nomeCopia)));
    while ((bytesRead = inputFile.read(buff, 0, buff.length)!=-1)) {
    uscita2.write(buff, 0, bytesRead);
    }
    }catch(IOException e){
    e.printStackTrace();
    }

    ma se volessi modificare alcune stringhe del file originale credo che lo debba trattare come un file di testo pertanto avendo la necessità di leggere riga per riga per matchare alcuni pattern di ricerca per poi modificare le stringhe che mi interessano mi ritrovo al punto di partenza.

    Esempio di file.rtf originale:
    pass(in rosso)

    il file deve essere elaborato e modificato come segue

    Esempio di file.rtf copia
    fail(in rosso).

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.