Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    26

    C# WinForm Interlinea su RectangleF di e.Graphics

    Salve a tutti.

    Utilizzando la RectangleF ho impostato uno spazio per scrivere un testo in un documento.
    Se però il testo supera la lunghezza el quadrato impostato scrive una seconda riga, fin qui tutto ok.
    Ho notato però che c'è uno spazio enorme tra una riga e l'altra, penso che dipenda dal tipo/dimensione del carattere.
    Finora non l'ho trovato ... qualcuno sa se esiste qualche parametro per diminuire l'altezza dell'interlinea?

    • rectF1 = new RectangleF(R - 80, C, 170, 480);
      stringFormat = new StringFormat();
      //stringFormat.FormatFlags = StringFormatFlags.DirectionVertical;
      stringFormat.FormatFlags = StringFormatFlags.DirectionVertical | StringFormatFlags.DirectionRightToLeft;
      //stringFormat.FormatFlags = StringFormatFlags.
      // Center each line of text.
      stringFormat.Alignment = StringAlignment.Center;
      // Center the block of text (top to bottom) in the rectangle.
      stringFormat.LineAlignment = StringAlignment.Center;
      s = (string)t.Rows[i]["eti_tx1"];
      //s = "1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0";
      //e.Graphics.DrawString(s, FonDe1, Brushes.Black, R, C, stringFormat);
      e.Graphics.DrawString(s, FonDe1, BruDe1, rectF1, stringFormat);




    Saluti e grazie.
    Paolo.

  2. #2
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Ti rispondo qui visto che hai postato del codice.
    Ho avuto un problema simile per posizionare più stringhe scritte su una picturebox in modo da ottenere un' anteprima di un' etichetta da stampare su stampante termica tipo Zebra.
    Sulla picturebox la posizione impostata con drawstring tiene conto anche dell' interlinea, che varia dal font e dalla dimensione, mentre quella via codice ZPL da inviare alla stampante no.
    Per ottenere un' anteprima il più fedele possibile ho cercato in lungo e in largo senza trovare una soluzione ad hoc, quindi, per quanto nè so non si può...però in word ricordo che si può modificare l' interlinea, vedi tu se può servirti come idea per crearti un template dove scrivi in un parte di tale documento in cui l' interlinea sia come vuoi tu...
    Comunque, io ho risolto con un valore dato dall' altezza del carattere diviso un valore "trovato ad' occhio", quindi l' ho sottratto alla posizione x/y, nel mio caso è stato accettabile come approssimazione, con il tuo "ritorno a capo" non saprei...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    26
    Intanto grazie per la risposta.
    Anch'io sono arrivato alla conclusione che l'interlinea non si può modificare in quanto legata al font. Ho visto che è possibile avere tutte le informazioni sulle dimensione del font utilizzato, però non modificabili.
    Il progetto su cui sto lavorando riguarda proprio la stampa etichette dove l'utente ha la possibilità di cambiare il font, perciò alla fine ho consigliando di selezionare un font con meno interlinea ... loro si erano affezionati al 'Segoe Print' la cui altezza è piuttosto alta.
    Mi sembra che esistano dei programmi che permettano di creare/modificare i font ... proverò a guardarci.

    Saluti e ancora grazie.
    Paolo.

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.