Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [JAVA] modifica file pdf

    salve ragazzi sto realizzando un' applicazione desktop , ho incontrato questo problema cioè mi ritrovo un bollettino postale in pdf e lo devo compilare in automatico qualcuno a già fatto questo??

    ho provato con itext ma niente

    codice:
    public class MyPdfModify {
    	
    	static Document doc=new Document();
    	public static final String NameFile="bollettinoOriginale.pdf";
    	public static final String NameFile2="bollettinoModificato.pdf";
    	
    
    	public static void main(String[] args) {
    	    try {
    	      PdfReader pdfReader = new PdfReader(NameFile);
    
    	      PdfStamper pdfStamper = new PdfStamper(pdfReader,
    	            new FileOutputStream(NameFile2));
    
    	      PdfContentByte underContent = pdfStamper.getUnderContent(1);
    	      
    	        underContent.beginText();
    	        BaseFont bf = BaseFont.createFont(BaseFont.COURIER, BaseFont.WINANSI, BaseFont.EMBEDDED);
    	        underContent.setFontAndSize(bf, 12);
    	       
    	        underContent.setColorFill(BaseColor.BLACK);
    	        underContent.showTextAligned(Element.ALIGN_CENTER, " This is my Test ", 0, 2, 0);
    	 
    	        underContent.endText();
    	 
    	        pdfStamper.close();
    	      }
    
    	  
    
    	     catch (IOException e) {
    	      e.printStackTrace();
    	    } catch (DocumentException e) {
    	      e.printStackTrace();
    	    }
    	  }
    
    }
    non và

    :muro: :muro: :muro:

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Dire "ho provato con iText, ma non va" non aiuta molto chi ti deve aiutare.
    iText è un'ottima libreria, ma se non spieghi cosa c'è che non va farai poca strada.

    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

  3. #3
    utilizzando questo codice il file "bollettinoModificato.pdf" non viene alterato

    ti allego il file originale da modificare

    http://www.4shared.com/get/HLp0s5Fh/bol.html

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    forse perché devi scriverci sopra... e quindi sarebbe il caso di usare getOverContent.

    Ad ogni modo, se puoi, converti, o fatti convertire, il bollettino in un PDF-Form, in modo da poter interagire anziché con coordinate o altri accrocchi direttamente con i campi sensibili
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    disregard, ci scrive comunque. quindi devi spiegare che cosa c'è che non va (a parte ovviamente l'allineamento con i campi del bollettino che è inesistente al momento)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Innanzitutto devi usare getOverContent se vuoi che il testo stia sopra all'immagine del bollettino.

    In secondo luogo, dovresti sapere che le coordinate verticali (l'asse Y) di un PDF partono dal basso, quindi il punto di coordinate (0,0) in u PDF rappresenta l'angolo in BASSO a sinistra del foglio.

    Prova ad applicare queste due modifiche e vedrai apparire le prime modifiche.

    PS: il documento PDF che hai allegato probabilmente è croppato sul bordo sinistro perchè la coordinata X = 0.0f non è visibile.


    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

  7. #7
    grazie ho risolto con over content

    Ad ogni modo, se puoi, converti, o fatti convertire, il bollettino in un PDF-Form, in modo da poter interagire anziché con coordinate o altri accrocchi direttamente con i campi sensibili
    mi daresti qualche informazione in più su PDF-FORM ,qualche link.tutorial da consultare



    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Dovresti trovare un esempio sul sito di iText con AcroField
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    ciao andrea scusa ancora sai un buon programma free che mi converte un pdf in un pdf-form
    ho provato scribus ma non riesco


  10. #10
    allora ecco il mio stato:

    ho scaricato questo modello

    http://www.comunecampolattaro.it/Bollettino.pdf

    sono riuscito a compilarlo grazie ad iText




    codice:
    public static void  writeBulletin(User ref,Defunto def) throws IOException, DocumentException {
    		// TODO Auto-generated constructor stub
    				try {
    					readerFile =new PdfReader("C:/Users/Rino/Desktop/Bollettino.pdf");
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    				try {
    					fileToModify = new PdfStamper(readerFile, new FileOutputStream("C:/Users/Rino/Desktop/BollettinoModificato.pdf"));
    				} catch (FileNotFoundException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (DocumentException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    
    		AcroFields form =fileToModify.getAcroFields();
    			for(Iterator i = readerFile.getAcroForm().getFields().iterator(); i.hasNext();) {
    					PRAcroForm.FieldInformation field = (PRAcroForm.FieldInformation) i.next();
    					//field.getInfo();
    					System.out.println(field.getName());
    						if(field.getName().equals("Contocorrente"))
    							form.setField(field.getName(),"0123456789");
    						else if(field.getName().equals("Importo1"))
    							form.setField(field.getName(),"15");
    						else if(field.getName().equals("Centesimi1"))
    							form.setField(field.getName(),"00");
    						else if(field.getName().equals("Importoinlet"))
    							form.setField(field.getName(),"Quindici");
    						else if(field.getName().equals("intestato a"))
    							form.setField(field.getName(),"Ufficio Tesoreria Comune di Aprigliano");
    						else if(field.getName().equals("causale"))
    							form.setField(field.getName(),"Pagamento retta annuale lampada votiva ");
    						else if(field.getName().equals("eseguitoda"))
    							form.setField(field.getName(),ref.getNome()+" "+ref.getCognome());
    						else if(field.getName().equals("via"))
    							form.setField(field.getName(),ref.getIndirizzo().getVia());
    						else if(field.getName().equals("cap"))
    							form.setField(field.getName(),ref.getIndirizzo().getCap());	
    						else if(field.getName().equals("localita"))
    							form.setField(field.getName(),ref.getCitta());	
    			}
    			fileToModify.close();
    			
    		}
    adesso il pdf è ok, ma quando provo a stamparlo tramite questa classe

    http://www.ladyblackice.com/2008/03/...e-pdf-da-java/

    il documento riesco a stamparlo ma i campi precedentemente riempiti no

    Adesso ho notato una cosa se io apro il file con Acrobat Reader e provo a risalvarlo mi viene fuori una cosa del tipo






    Come posso fare

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