web-dev-qa-db-fra.com

Modification de l'espacement des lignes de texte

Je crée un PDF composé uniquement de texte, où tout le texte est de la même taille en points et de la même famille de polices, mais chaque caractère peut potentiellement être d'une couleur différente. Tout semble fonctionner correctement en utilisant le extrait de code ci-dessous, mais l'espace par défaut entre les lignes est légèrement supérieur à ce que je considère idéal. Y a-t-il un moyen de contrôler cela? (Pour info, tapez "ColoredText" dans le code ci-dessous contient simplement une chaîne et sa couleur. En outre, la raison Je traite le caractère de nouvelle ligne séparément, c'est que pour une raison quelconque, il ne provoque pas de nouvelle ligne s'il est dans un bloc.)

Merci, Ray

List<byte[]> pdfFilesAsBytes = new List<byte[]>();
iTextSharp.text.Document document = new iTextSharp.text.Document();
MemoryStream memStream = new MemoryStream();
iTextSharp.text.pdf.PdfWriter.GetInstance(document, memStream);
document.SetPageSize(isLandscape ? iTextSharp.text.PageSize.LETTER.Rotate() : iTextSharp.text.PageSize.LETTER);
document.Open();
foreach (ColoredText coloredText in coloredTextList)
{
    Font font = new Font(Font.FontFamily.COURIER, pointSize, Font.NORMAL, coloredText.Color);
    if (coloredText.Text == "\n")
       document.Add(new Paragraph("", font));
    else
        document.Add(new Chunk(coloredText.Text, font));
}
document.Close();
pdfFilesAsBytes.Add(memStream.ToArray());
15
BenevolentDeity

Selon la spécification PDF, la distance entre la ligne de base de deux lignes est appelée en tête . Dans iText, le l'interligne par défaut est 1,5 fois la taille de la police. Par exemple: la taille de police par défaut est 12 pt, donc l'interligne par défaut est 18.

Vous pouvez modifier l'interligne d'un Paragraph en utilisant l'un des autres constructeurs. Voir par exemple: Paragraphe public (interligne flottant, chaîne de caractères, police)

Vous pouvez également modifier l'interligne en utilisant l'une des méthodes qui définit l'interligne:

paragraph.SetLeading(fixed, multiplied);

Le premier paramètre est l'interligne fixe: si vous voulez un interligne de 15 quelle que soit la taille de police utilisée, vous pouvez choisir fixed = 15 et multiplié = 0.

Le deuxième paramètre est un facteur: par exemple, si vous voulez que l'interligne soit le double de la taille de police, vous pouvez choisir fixe = 0 et multiplié = 2. Dans ce cas, l'interligne pour un paragraphe de taille de police 12 sera 24, pour une taille de police 10, ce sera 20, et fils.

Vous pouvez également combiner des interlignes fixes et multipliés.

42
Bruno Lowagie
    private static Paragraph addSpace(int size = 1)
    {

        Font LineBreak = FontFactory.GetFont("Arial", size);      
        Paragraph paragraph = new Paragraph("\n\n", LineBreak);
        return paragraph;

    }
3
Pascal Carmoni