Lo domando a te per il tuo inglese, il mio inglese lo devo domandare sempre a google prima.Perché:
Lo domando a te per il tuo inglese, il mio inglese lo devo domandare sempre a google prima.
Penso che tu abbia raggione.2) perché se ha previsto un chit chat generale, non penso che faccia un'eccezione per noi (altrimenti poi lo chiederanno anche tedeschi, cinesi...)
Buone vacanze.Calimero.....calispero......ciaoooo dalla Grecia
Allora anche tu non hai visto mangiare greco.Hiha...villaggio veraclub naxos...cuoco italiano super veramente bravo....peccato son finite venerdi si torna
Funziona quasi, anche con Fonts.COURIER e Typeface.MONOSPACE la dimensione dipende anche dai caratteri e non solo dal loro numero. Comunque la cosa è utile nella stampa dei valori numerici, di seguito la sintesi della soluzione.Di niente. Spero che funzioni, non è che io abbia provato, ovviamente, soltanto mi sembra che abbia una certa logica e possibilità di riuscita.
PDFWriter1.setFont(Fonts.SUBTYPE, Fonts.COURIER)
str = NumberFormat2(NUMERO,0,2,2,False)
str = str.Replace(".",",")
TextWidth = CalcPDFTextWidth(str,Typeface.MONOSPACE,10)
MarRight = 560 ' margine destro desiderato
MarLeft = MarRight - TextWidth 'margine sinistro calcolato
PDFWriter1.addText(MarLeft,580 - (11 * nr),10, str) 'nr indice record letto scorrendo un DB
Public Sub CalcPDFTextWidth(TestoDaStampare As String, TFace As Typeface, FontSize As Float) As Float
Dim C As Canvas
C.Initialize(Activity)
Dim TextWidth As Float
TextWidth = C.MeasureStringWidth(TestoDaStampare, TFace, FontSize)
TextWidth = TextWidth * 0.70 ' aggiustamento chissà perchè è necessario un aggiustamento... A occhio questo è il valore giusto
Return TextWidth
End Sub
Dim default_font, default_font_bold, default_font_italic As Typeface
SetFont("xxxxxx.ttf")
Private Sub SetFont(FontFileName As String)
default_font = Typeface.LoadFromAssets(FontFileName) 'ignore
default_font_bold = Typeface.CreateNew(default_font, default_font.STYLE_BOLD)
default_font_italic = Typeface.CreateNew(default_font, default_font.STYLE_ITALIC)
End Sub
Non ho capito.Beh, affinché funzioni, dovresti usare lo stesso font, sia per il PDF che per B4A.
E' possibile cambiare i font di default di B4A, eh!
(asp che cerco come, perché a memoria sono scarsino, hehehe)
Però sono veloce
B4X:Dim default_font, default_font_bold, default_font_italic As Typeface SetFont("xxxxxx.ttf") Private Sub SetFont(FontFileName As String) default_font = Typeface.LoadFromAssets(FontFileName) 'ignore default_font_bold = Typeface.CreateNew(default_font, default_font.STYLE_BOLD) default_font_italic = Typeface.CreateNew(default_font, default_font.STYLE_ITALIC) End Sub
L'allineamento a destra serve per incolonnare i numeri in modo che ogni cifra sia incolonnata, questo è possibile solo se usiamo un font monospace. Dovrei passare al CalcPDFTextWidth un TFace corrispondente al Curirer visto che evidentemente non corrisponde al generico monospace.Provo a spiegarmi meglio.
Se decidi di voler stampare parte di una pagina PDF con font "Georgia", userai quel comando di PDFWriter (che, ti ricordo, non conosco!) setFont.
Alla funzione CalcPDFTextWidth dovrai passare TFace, che dovrà essere caricato tramite la funzione setFont che ho pubblicato in #1314