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

    FPDF - .Write non va a capo da solo

    questo è quello che succede LINK in sostanza la funzione Write non gli da il ritorno a capo del testo....può essere?

  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Può essere si.

    Ho lo stesso problema quando costruisco delle tabelle, se il testo è troppo lungo rispetto alla dimensione della cella il testo si sovrappone a quello della cella successiva.

    Non abbiamo scoperto niente di nuovo Santino, forse Baol ci potrà aiutare.

    Che dici?

  3. #3
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Prova a scrivere pdf.Write "Ciao" & VbCrLf & "Test"

    Va a capo?

  4. #4
    si, va a capo


    però no se il testo non ha ne VBCRLF ne
    in mezzo

  5. #5
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    E bravo!
    Per quello devi usare WriteHtml.

    Fai così usa sempre writeHtml e sul ìtesto fai una replace(Testo,VbCrLf,"
    ")

    Così

    Pdf.WriteHtml Replace(Testo,VbCrLf,"
    ")

  6. #6
    non è possibile, perchè in locale mi va a capo mentre quello che sta sul server no??

  7. #7
    nel senso,

    se ho un testo lunghissimo, anche tutto attaccato, senza interruzioni di riga, me lo manda a capo lo stesso quando arriva al margine destro...invece in quell'esempio che ho messo in linea, col testo preso dal database, non lo fa


    eppure l'istruzione è uguale

    pdf.writeHtml H,testo

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Scusa Santino, puoi postare il codice con cui generi LINK ?

    Vorrei provarlo sul mio server... grazie

  9. #9
    guarda io te lo posto pure, però ci sono due cose:

    1) nel mio testo sono presenti delle formattazioni del tipo %L1% che indicano che li va posta l'immagine salvata come 1 nel database e va posta a sinistra

    2) per questo troverai tutta una parte in cui c'è la scomposizione del testo per aggiungere l'immagine.

    ah un'altra cosa, ho tolto la pdf.writeHtml e ho messo una funzione (ad inizio codice) InsertTest (credo) che la richiama lei

    codice:
    
    <%
    public sub InsertTesto(objPdf,H,stringa)
    objPdf.WriteHtml H,stringa
    end sub
    
    
    dim imgPath		'cartella che contiente le immagini
    dim hFont		'grandezza del font
    dim hLinea		'altezza di una linea
    dim idArticolo	'id dell'articolo
    
    imgPath="fotoarticoli/"
    hFont=12
    hLinea=18
    
    idArticolo=cint(request.QueryString("Idart"))
    if idArticolo=0
     then
    response.Redirect("index.asp")
    response.End()
    end if
    
    
    '************ APRO LA CONNESSIONE ************
    set conn=server.CreateObject("adodb.connection")
    conn.open "driver={Microsoft Access Driver (*.mdb)}; dbq=d:\inetpub\webs\zacintonet\mdb-database\zacintonet.mdb"
    
    'ricavo il testo
    
    sql="select a.ArticoloTesto as testo, a.ArticoloData as data,a.Firma as firma, u.memberUser as autore"
    sql=sql & " from Articolo a, Member u where ArticoloCd=" & idArticolo & " and u.memberCd=a.memberCd"
    set rs=server.CreateObject("adodb.recordset")
    rs.open sql,conn,3,3
    
    testo=replace(rs("testo"),VBCRLF,"
    ")
    data=rs("data")
    firma=rs("Firma")
    autore=rs("autore")
    
    rs.close
    
    
    'ricavo le foto
    sql="select fotoNome from foto where articoloCd=" & idArticolo & " order by fotoNumero asc"
    rs.open sql,conn,3,3
    
    dim TOT
    while not rs.eof
    TOT=TOT+1
    rs.movenext
    wend
    
    
    redim immagini(TOT)
    
    i=0
    rs.movefirst
    while not rs.eof
    immagini(i)=rs("fotoNome")
    i=i+1
    rs.movenext
    wend
    
    
    Set pdf=CreateJsObject("FPDF")
    pdf.CreatePDF "P","pt"
    pdf.SetPath("fpdf/")
    pdf.SetFont "Arial","",hFont
    pdf.LoadModels("NumeroPagina")
    pdf.Open()
    pdf.AddPage()
    
    'stampo il Header
    pdf.SetFont "Arial","BI",hFont+4
    strHeader="Articolo di " & autore
    pdf.MultiCell 0,hLinea, strHeader,0,"C"
    pdf.SetFont "Arial","I",hFont
    strHeader="del " & data
    pdf.MultiCell 0,hLinea, strHeader,0,"C"
    strHeader="fornito da www.zacinto.net"
    pdf.MultiCell 0,hLinea, strHeader,0,"C"
    
    pdf.SetFont "Arial","",hFont
    
    fine=false
    nuovo_testo=testo
    while not fine=true
    		trovato=false
    		pezzo=""
    		allign=""
    		nomeImg=""
    		var=0
    		pezzo=""
    		partenza=1
    		altezza=""
    		larghezza=""
    		larghezza1=0
    		isImg=false
    		
    		var=instr(partenza,nuovo_testo,"%")
    		if var>0 then
    		trovato=true
    		
    		pezzo=mid(nuovo_testo,partenza,var-1)
    		
    		'inserisco il pezzo di testo nel pdf
    
    		InsertTesto pdf,hLinea,pezzo
    		
    		allign=mid(nuovo_testo,var+1,1)
    		'aggiorno il nuovo_testo
    		nuovo_testo=right(nuovo_testo,len(nuovo_testo)-var)
    		
    		'ricavo la stringa per l'immagine
    		partenza=1
    		
    		var=instr(partenza,nuovo_testo,"%")
    		if var>0 then
    		trovato=true
    		
    		pezzo=int(mid(nuovo_testo,partenza+1,var-2))
    
    		if allign="l" or allign="r" or allign="c" then
    		isImage=true
    		end if
    		
    		if isImage then
    		nomeImg=imgPath & immagini(pezzo-1)
    				
    		Set objImageSize = New ImageSize 
    		With objImageSize  
    		.ImageFile = Server.MapPath(nomeImg)    
    
    		altezza=.ImageHeight
    		larghezza=.ImageWidth
    		
    		if larghezza>530 then
    		larghezza1=530
    
    		altezza=int( (larghezza1*altezza)/larghezza)
    		larghezza=larghezza1
    		larghezza1=0
    		end if
    		
    		end with
    		
    		set objImageSize=Nothing
    		
    		altFoglio=pdf.GetY()
    		if (altFoglio+altezza)- 60>700  then
    		pdf.AddPage()
    		end if
    		altFoglio=""
    
    		
    		if allign="l" then
    		
    		pdf.Image nomeImg,34,pdf.GetY()+10,larghezza
    		pdf.SetY(pdf.GetY()+(altezza+10))
    		
    		elseif allign="r" then
    		
    		pdf.setX(560-larghezza)
    		pdf.Image nomeImg,pdf.GetX(),pdf.GetY()+10,larghezza
    		pdf.SetY(pdf.GetY()+(altezza+10))
    		
    		elseif allign="c" then
    		
    		pdf.SetX(300-int(larghezza/2))
    		pdf.Image nomeImg,pdf.GetX(),pdf.GetY()+10,larghezza
    		pdf.setX(300+(int(larghezza/2)+5))
    		pdf.SetY(pdf.GetY()+(altezza+10))
    
    		end if
    		
    		altezza=""
    		larghezza=""
    		
    		end if
    		
    		nuovo_testo=right(nuovo_testo,len(nuovo_testo)-var)
    		
    		end if
    		
    		end if
    		
    		if trovato=false then
    		fine=true
    		pdf.SetX(pdf.GetX())
    		pdf.SetY(pdf.GetY()+10)
    		
    		InsertTesto pdf,hLinea,nuovo_testo
    		end if
    
    wend
    
    
    
    pdf.Close()
    pdf.Output()
    %>
    le dimensioni dell'immagine sono ricavate con ImageSize

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.