Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120

    [java & iText] immagine o scritta in trasparenza

    allooooooora, ditemi che c'è qualche "guru" di iText qua in mezzo perchè io ci sto sbattendo la testa da un pò.

    Devo applicare una scritta obliqua tipo watermark su un documento pdf. Mi son presa iText, me lo sono studiacchiato, ho fatto una gif obliqua e con sfondo trasparente e l'ho messa sull'over content.. mi han detto che non basta perchè nonostante la scritta deve potersi leggere quello che c'è sotto.

    Allora ho studiato ancora e ho applicato una maschera... ho fatto così
    codice:
    Image img = Image.getInstance("draft.gif");
    img.setAbsolutePosition(150, 300);
    
    byte gradient[] = new byte[256];
    for (int k = 0; k < 256; ++k)
    	gradient[k] = (byte) 80;
    Image smask = Image.getInstance(256, 1, 1, 8, gradient);
    smask.makeMask();
    img.setImageMask(smask);
    
    ...
    
    PdfContentByte over = null;
    over = stamp.getOverContent(i);
    over.addImage(img);
    ma ancora non va bene: mentre prima la gif restava effettivamente con sfondo trasparente, applicando questa maschera viene sì in trasparenza ma riappare tutto lo sfondo che non dovrebbe esserci, è effettivamente molto leggero ma da problemi in stampa perchè la stampante comunque vede questo sfondino e lo stampa con conseguente allungamento dei tempi.
    Sbaglio ad applicare la maschera in quel modo?

    Mi han chiesto se è possibile applicare una scritta anzichè una gif, quindi farla abbastanza grande, ruotarla, applicarla e renderla semitrasparente.. è possibile?
    Ho guardato l'esempio "transparency.java" in http://itextpdf.sourceforge.net/ e ma non mi è molto chiaro
    esiste qualche anima pia che mi possa aiutare? thanks thanks

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    niente? nessuno???

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    ciao, la gif non la puoi mettere nel underContent invece che sull'overContent?
    Guarda se ti e' utile
    http://www.java-tips.org/other-api-t...ts-from-3.html

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    già provato solo che se la metto nell'under nel pdf ci sono alcuni grafici che vanno sopra alla scritta

    Grazie comunque per l'interessamento

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Forse ho capito cosa intendi. Quindi tu vuoi che la scritta stia sopra al pdf, che lo sfondo della scritta sia trasparente, mentre la scritta vera e propria sia abbastanza semitrasparente da lasciar intravedere cio' che sta sotto (ad esempio i grafici) pur coprendoli. Ho capito bene?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    hai capito alla perfezione

    solo che ora se non metto la trasparenza, la gif viene con sfondo effettivamente trasparente ma non si leggono le scritte sotto. Se applico la maschera come ho scritto prima, dove la gif dovrebbe essere trasparente diventa grigina creando non pochi problemi in stampa

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Scarico iText, faccio un paio di prove e ti faccio sapere (purtroppo non l'ho mai usato molto quindi non ho la risp subito pronta).

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Senti,io ho preso il tuo codice pari pari, l'ho provato e non mi da il problema da te descritto.
    Questo e' il codice
    codice:
    package itext;
    
    import java.io.FileOutputStream;
    import java.util.HashMap;
    
    import com.lowagie.text.Element;
    import com.lowagie.text.Image;
    import com.lowagie.text.PageSize;
    import com.lowagie.text.pdf.BaseFont;
    import com.lowagie.text.pdf.PdfContentByte;
    import com.lowagie.text.pdf.PdfReader;
    import com.lowagie.text.pdf.PdfStamper;
    
    /**
     * Reads the pages of an existing PDF file, adds pagenumbers and a watermark.
     */
    public class Main {
        /**
         * Reads the pages of an existing PDF file, adds pagenumbers and a watermark.
         * @param args no arguments needed
         */
        public static void main(String[] args) {
            System.out.println("Add watermarks and pagenumbers");
            try {
                // we create a reader for a certain document
                PdfReader reader = new PdfReader("C:/Documents and Settings/Simone/itext/build/classes/itext/ChapterSection.pdf");
                // we create a stamper that will copy the document to a new file
                PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("watermark_pagenumbers.pdf"));
                // adding some metadata
                Image img = Image.getInstance("C:/Documents and Settings/Simone/itext/build/classes/itext/watermark.gif");
                img.setAbsolutePosition(150, 300);
                
                byte gradient[] = new byte[256];
                for (int k = 0; k < 256; ++k)
                    gradient[k] = (byte) 80;
                Image smask = Image.getInstance(256, 1, 1, 8, gradient);
                smask.makeMask();
                img.setImageMask(smask);
                
                
                PdfContentByte over = null;
                over = stamp.getOverContent(1);
                over.addImage(img);
                stamp.close();
            } catch (Exception de) {
                de.printStackTrace();
            }
        }
    }
    e questa la gif

    Sei sicuro che la tua gif abbia sfondo trasparente?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    120
    wow sei stato molto disponibile, grazie!!!

    purtroppo.. sì.. sono sicura che la mia gif abbia lo sfondo trasparoso.
    Se non applico la maschera il risultato è questo:
    http://img138.imageshack.us/img138/8386/draft2xd4.jpg

    se invece la applico viene così:
    http://img247.imageshack.us/img247/8369/draft1mu6.jpg
    e questa in stampa da problemi perchè la scritta viene applicata su testo la stampante stampa anche tutto quello sfondino fastidioso

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Strano, sembra che ti stampi lo sfondo bianco aziche' trasparente.
    Purtroppo a me stampa invece tutto
    http://img505.imageshack.us/img505/6749/immaginert7.jpg
    Ti mando il mio contatto msn in pvt, cosi' ci possiamo scambiare i file per le prove.

    EDIT:Ho corretto il link

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.