Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    problema con stampa € (su pdf KO, su Html OK)

    Ciao,
    non so se avrei dovuto cambiare titolo, ma il problema è questo.

    Archivio tramite form asp un campo testo contenente il carattere € (euro), considerandolo quindi come stringa.

    Sul db (Oracle) tale carattere non è visibile (il classico quadratino nero), MA viene visualizzato sia che stampo in Html che se stampo in Pdf.

    Solo che in quest'ultimo caso mi salta la formattazione, ovvero non mi va a capo!!! VVoVe:

    Lo scrivo così...

    codice:
    pdf.SetY(Y+1)
    pdf.SetX(x+20)
    pdf.SetFont "helvetica","",10
    pdf.MultiCell 0, 5, rsdettannu("DESC_ANNU"), 0, "J"

    Dove chiaramente in rsdettannu("DESC_ANNU"), c'è il contenuto della stringa che presenta anche il simbolo €

    Dovendo per forza di cose usare
    1. pdf
    2. il simbolo € (e non la scritta "euro")

    voi che mi consigliereste di fare!??!
    Agire in qualche modo sull'inserimento in tabella??!


  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Ho trovato su un altro forum, questa modifica al file fdpf.asp per i caratteri tipo €

    codice:
    this.GetStringWidth=function GetStringWidth(xs)
    {
         xcw=this.CurrentFont["cw"]; 
         xw=0;
         xl=lib.strlen(xs);
    
        for(xi=0;xi<xl;xi++)
        {
             if (xcw[xs.charAt(xi)]) xw = xw + (xcw[xs.charAt(xi)]);
             else xw = xw + (xcw[1]); 
        }
        
         return xw*(this.FontSize)/1000;
    }

    Però questa modifica non può essere applicata nel caso di scrittura in Multicell.
    Qualcuno sa come poter modificare questa funzione (ipotizzo sia questa che definisce i margini ) presente appunto nel file di libreria tablemulticell.asp?

    codice:
    this.NbLines=function NbLines(xw , xtxt)
    	{
    	var xnb;
    	xcw=this.CurrentFont["cw"];
    	if(xw==0) xw=this.w-(this.rMargin)-this.x;
    	xwmax=((xw)-2*(this.cMargin))*1000/(this.FontSize);
    	xs=lib.str_replace("\r","",xtxt);
    	xnb=xs.length;
    	if(xnb>0 && xs.charAt(xnb-1)=="\n")xnb--;
    	xsep=-1;
    	xi=0;
    	xj=0;
    	xl=0;
    	xnl=1;
    	while(xi<xnb)
    		{
    		xc=xs.charAt(xi);
    		if(xc=="\n")
    			{
    			xi++;
    			xsep=-1;
    			xj=xi;
    			xl=0;
    			xnl++;
    			continue;
    			}
    		if(xc==" ")xsep=xi;
    		xl+=(xcw[xc]);
    		if(xl>xwmax)
    			{
    			if(xsep==-1)
    				{
    				if(xi==xj)xi++;
    				}
    			else xi=xsep+1;
    			xsep=-1;
    			xj=xi;
    			xl=0;
    			xnl++;
    			}
    		else {xi++;}
    		}
    	return xnl;
    	}

    Grazie a tutti

    Paolo

    ps. spero che la prima modifica possa essere comunque di aiuto a qualcuno...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    le sto provando tutte :((

    Vediamo un pò se dopo quello che vi scrivo, vi viene in mente qualcosa...

    Praticamente vorrei fare questo.
    1. Individuare se nel testo c'è il simbolo €
    2. Sostituirlo con il testo & euro (ho letto che così si risolve per le pagine html inviate via mail


    Il punto 1 è ok
    il punto 2 chiaramente no , perchè non riesco al momento nemmeno a far visualizzare & euro come €

    Perchè?

    Questo il codice
    codice:
    if inStr(rsdettannu("DESC_ANNU"),simbolo) > 0 then
       pdf.SetY(Y+1)
       pdf.SetX(x+20) 
       pdf.SetFont "helvetica","",10
       pdf.MultiCell 0, 5, "Trovato Euro" & simbolonew & " asha shsaj shjskjs sjsjs qq q qq  qq q  qq  dsds sdada  ads ad s das adsad as d  dsdsasassaadsdssdd  dsadsdasddsa ", 0, "J"
    				
      Y=pdf.getY()
    else
      pdf.SetY(Y+1) 
      pdf.SetX(x+20)
      pdf.SetFont "helvetica","",10
      pdf.MultiCell 0, 5, rsdettannu("DESC_ANNU"), 0, "J"
      Y=pdf.getY()
    end if
    Nella stampa pdf, mi scrive "Trovato Euro & euro asha etc...."

    Come ne esco?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Alla fine ne sono uscito nel modo più "sporco"

    Sostituendo nel campo della tabella il carattere € con la relativa dicitura "euro".
    Se a qualcuno può interessare

    codice:
    update ANAGANNU set DESC_ANNU=replace(DESC_ANNU,chr(128),'euro')
    /


    ps. il db è Oracle

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.