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

    Come si possono creare più pagine

    Come si possono creare più pagine di uno stesso PDF con iText? grazie
    Ultima modifica di desiderio; 02-01-2017 a 20:35

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da desiderio Visualizza il messaggio
    Come si possono creare più pagine di uno stesso PDF con iText? grazie
    Non me ne intendo granché di iText (sicuramente c'è qui chi è più ferrato di me sull'argomento), bisogna innanzitutto vedere quale è l'approccio usato per inserire elementi nella pagina.
    Se si usa il principio dei Paragraph inseriti nel Document (come negli esempi in questa pagina), puoi andare avanti ad aggiungere testo quanto vuoi creando automaticamente nuove pagine man mano che serve.

    Se non è questo, precisa cosa intendi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    codice:
    public class PDFprev {  //CLASSE
    		 
    	
    	public static final String SFONDO = "IMMAGINI/imgDaAgg.jpg";
    	public static final String TENDINA = "IMMAGINI/TENDINA.png";
            public static final String DEST = "originale.pdf";
        
        public static void main(String[] args) throws IOException, DocumentException {
            File file = new File(DEST);
            file.getParentFile();
            new PDFprev().createPdf(DEST);
            
        }
        
        public void createPdf(String dest) throws IOException, DocumentException {
            Document document = new Document(PageSize.A0);
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
            document.open();
            
    
    
            PdfContentByte canvas = writer.getDirectContentUnder();
            
           
            
            float A4_C= 2480;
            float A4_D = 3508;
            
            float Tendina_A = 1417; //getTEXT
            float Tendina_B = 2126; //getTEXT
            
            float A = (A4_C - Tendina_A)/2;   
            float B = (A4_D - Tendina_B)/2; 
            
            float Text_with= A4_C/2;
            float Text_high = (A4_D/2)+((Tendina_B/2)/10)*9;
            
            float TextLuogo_high = (A4_D/2)+((Tendina_B/2)/10)*8;
            PdfContentByte cb = writer.getDirectContent();
            cb.beginText();
            cb.setColorFill(BaseColor.WHITE);
            BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            cb.setFontAndSize(bf, 65);
            cb.saveState();
            cb.showTextAligned (PdfContentByte.ALIGN_CENTER, "Center" , Text_with, TextLuogo_high, 0);
            // cb.moveText(Text_with, Text_high);
            cb.endText();
            cb.restoreState();
    
    
    
    
            Image sfondo = Image.getInstance(SFONDO);
            sfondo.setAbsolutePosition(0, 0);
            canvas.addImage(sfondo);
            sfondo.scaleAbsolute(A4_C, A4_D);
            
            
            Image tendina = Image.getInstance(TENDINA);
            tendina.setAbsolutePosition(A, B);
            canvas.addImage(tendina);
        
            document.close();
        }
    Ok grazie continuo la ricerca. Sai per caso come si uniscono questi due codici? in modo da generare alla pressione del JButton il salvataggio del .pdf e di conseguenza aggancio anche i Jtextfield.
    Grazie

    codice:
    //ButtonOK.addActionListener(new ActionListener() {
    
    			//public void actionPerformed(ActionEvent arg0) {



    }

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Per creare una nuova pagina nel documento che si sta costruendo c'è l'apposito metodo newPage() dell'oggetto Document.

    codice:
    Document doc = ...;
    ...
    // Creiamo una nuova pagina
    if ( doc.newPage() ) {
       // Ok, pagina creata. Siamo già posizionati sulla nuova pagina
    } else {
       // Si è verificato un errore nell'aggiunta della nuova pagina...
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Quote Originariamente inviata da desiderio Visualizza il messaggio
    codice:
    public class PDFprev {  //CLASSE
             
        
        public static final String SFONDO = "IMMAGINI/imgDaAgg.jpg";
        public static final String TENDINA = "IMMAGINI/TENDINA.png";
            public static final String DEST = "originale.pdf";
        
        public static void main(String[] args) throws IOException, DocumentException {
            File file = new File(DEST);
            file.getParentFile();
            new PDFprev().createPdf(DEST);
            
        }
        
        public void createPdf(String dest) throws IOException, DocumentException {
            Document document = new Document(PageSize.A0);
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
            document.open();
            
    
    
            PdfContentByte canvas = writer.getDirectContentUnder();
            
           
            
            float A4_C= 2480;
            float A4_D = 3508;
            
            float Tendina_A = 1417; //getTEXT
            float Tendina_B = 2126; //getTEXT
            
            float A = (A4_C - Tendina_A)/2;   
            float B = (A4_D - Tendina_B)/2; 
            
            float Text_with= A4_C/2;
            float Text_high = (A4_D/2)+((Tendina_B/2)/10)*9;
            
            float TextLuogo_high = (A4_D/2)+((Tendina_B/2)/10)*8;
            PdfContentByte cb = writer.getDirectContent();
            cb.beginText();
            cb.setColorFill(BaseColor.WHITE);
            BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            cb.setFontAndSize(bf, 65);
            cb.saveState();
            cb.showTextAligned (PdfContentByte.ALIGN_CENTER, "Center" , Text_with, TextLuogo_high, 0);
            // cb.moveText(Text_with, Text_high);
            cb.endText();
            cb.restoreState();
    
    
    
    
            Image sfondo = Image.getInstance(SFONDO);
            sfondo.setAbsolutePosition(0, 0);
            canvas.addImage(sfondo);
            sfondo.scaleAbsolute(A4_C, A4_D);
            
            
            Image tendina = Image.getInstance(TENDINA);
            tendina.setAbsolutePosition(A, B);
            canvas.addImage(tendina);
        
            document.close();
        }
    Ok grazie continuo la ricerca. Sai per caso come si uniscono questi due codici? in modo da generare alla pressione del JButton il salvataggio del .pdf e di conseguenza aggancio anche i Jtextfield.
    Grazie

    codice:
    //ButtonOK.addActionListener(new ActionListener() {
    
                //public void actionPerformed(ActionEvent arg0) {



    }

    Beh sicuramente devi togliere il main e usare un costruttore parametrico.
    Il main in questo caso devi metterlo in una classe esterna che istanzia e richiama la gui che comprende anche il tuo bottone.
    Istanzi la classe e dal click del bottone lanci il metodo che ti crea il PDF.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  6. #6
    Grazie mile ��

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 © 2026 vBulletin Solutions, Inc. All rights reserved.