Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Srivere file PDF

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    4

    Srivere file PDF

    Salve mi servirebbe il vostro aiuto per ricreare un file pdf.
    In pratica ho una funzione che riceve in ingresso una stringa che ha come contenuto il pdf di partenza (se la stampo a video è illeggibile, come se aprissi il file con notepad), non so se mi sono spiegato bene... spero abbiate qualche idea perchè io non ci sono riuscito.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Srivere file PDF

    Originariamente inviato da faro84
    una stringa che ha come contenuto il pdf di partenza
    No alt ... un PDF è un file binario, non ha senso mettere il contenuto di un file pdf così come è dentro un String!!!

    Originariamente inviato da faro84
    se la stampo a video è illeggibile
    Già con questo avresti dovuto forse intuire che non è l'approccio corretto.

    Originariamente inviato da faro84
    spero abbiate qualche idea perchè io non ci sono riuscito.
    I file PDF si leggono e/o scrivono usando apposite librerie esterne, ad esempio la ottima iText.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    4

    Re: Re: Srivere file PDF

    Originariamente inviato da andbin
    No alt ... un PDF è un file binario, non ha senso mettere il contenuto di un file pdf così come è dentro un String!!!

    Già con questo avresti dovuto forse intuire che non è l'approccio corretto.

    I file PDF si leggono e/o scrivono usando apposite librerie esterne, ad esempio la ottima iText.
    Innanzitutto grazie per la risposta. In effetti avrei dovuto specificare meglio la situazione, in pratica mi sta arrivando da form web quella "stringa" (sto usando mule ma vabbè in questo caso centra poco). Quindi diciamo che quello mi arriva e quello mi tengo, infatti se mando da form un file txt per esempio va tutto bene. Ma per i pdf se io ho il contenuto dentro la String non è proprio possibile farci nulla?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Srivere file PDF

    Originariamente inviato da faro84
    In effetti avrei dovuto specificare meglio la situazione, in pratica mi sta arrivando da form web quella "stringa" (sto usando mule ma vabbè in questo caso centra poco). Quindi diciamo che quello mi arriva e quello mi tengo, infatti se mando da form un file txt per esempio va tutto bene. Ma per i pdf se io ho il contenuto dentro la String non è proprio possibile farci nulla?
    Se ti "arriva" (da dove ora non interessa) l'intero contenuto byte per byte di un file pdf .... allora devi trattarlo proprio come uno stream di byte e basta.

    Su questo stream di byte non ci puoi (e non dovresti nemmeno provarci ... perderesti solo tempo) fare alcun tipo di aggiunta/modifica direttamente. È un formato molto complesso.
    Se vuoi fare una certa operazione, es. estrarre del testo, aggiungere del testo, contare le pagine, ecc... devi usare una apposita libreria per la lettura e/o scrittura di file pdf.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    4

    Re: Re: Re: Re: Srivere file PDF

    Originariamente inviato da andbin
    Se ti "arriva" (da dove ora non interessa) l'intero contenuto byte per byte di un file pdf .... allora devi trattarlo proprio come uno stream di byte e basta.

    Su questo stream di byte non ci puoi (e non dovresti nemmeno provarci ... perderesti solo tempo) fare alcun tipo di aggiunta/modifica direttamente. È un formato molto complesso.
    Se vuoi fare una certa operazione, es. estrarre del testo, aggiungere del testo, contare le pagine, ecc... devi usare una apposita libreria per la lettura e/o scrittura di file pdf.
    Ok perfetto, mi sto guardando le librerie iText ma non sono riuscito a capire come generare il pdf nuovo io ho fatto una cosa di questo genere

    Document document = new Document();
    InputStream is = new ByteArrayInputStream(inputString.getBytes());
    PdfReader reader = new PdfReader(is);
    FileOutputStream fos = new FileOutputStream("out.pdf");
    PdfWriter writer = PdfWriter.getInstance(document, fos);
    document.open();
    PdfContentByte cb = writer.getDirectContent();
    document.newPage();
    PdfImportedPage page = null;
    page = writer.getImportedPage(reader, 1);
    cb.addTemplate(page, 0, 0);
    fos.flush();
    document.close();
    fos.close();

    Però mi genera un pdf di una pagina come dovrebbe ma è illeggibile

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Srivere file PDF

    Originariamente inviato da faro84
    InputStream is = new ByteArrayInputStream(inputString.getBytes());
    Già questo è inappropriato. L'ho detto prima. Il contenuto "binario" di un file non ha senso metterlo in un String. O hai già un array byte[] o un InputStream.
    Se hai messo tu il contenuto del file in un String ... hai sbagliato. Se qualche altro codice ti passa un String ... è altrettanto sbagliato e inappropriato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    4

    Re: Re: Re: Re: Re: Re: Srivere file PDF

    Originariamente inviato da andbin
    Già questo è inappropriato. L'ho detto prima. Il contenuto "binario" di un file non ha senso metterlo in un String. O hai già un array byte[] o un InputStream.
    Se hai messo tu il contenuto del file in un String ... hai sbagliato. Se qualche altro codice ti passa un String ... è altrettanto sbagliato e inappropriato.
    Ok quindi posso evitare di continuare a provare, partendo da quella string su cui faccio getbytes(), a ricreare il pdf. Perchè in pratica ora come ora sono vincolato a ricevere uno tipo String. dovrò cambiare approccio al problema. grazie dell'aiuto!!

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.