Горизонтальное выравнивание строки PdfPRow itextsharp (C#)

Здесь нужна помощь. Я пытаюсь, чтобы текст в строке выглядел в той же горизонтальной линии, что и соответствующие пунктирные линии Вот результат

Горизонтальное выравнивание строки PdfPRow itextsharp (C#)

И это часть моего кода, связанная с изображением:

        Font coverHeaderFont = new Font(Font.FontFamily.HELVETICA, 18, Font.BOLD, BaseColor.BLACK);
        Font tableContentFont = new Font(Font.FontFamily.HELVETICA, 16, Font.BOLDITALIC, BaseColor.BLACK);
        Font textIndexFont = new Font(Font.FontFamily.HELVETICA, 11, Font.BOLD, BaseColor.BLACK);
        Font invisibleFont = new Font(Font.FontFamily.HELVETICA, 11, Font.BOLD, BaseColor.WHITE);
        Font underText = new Font(Font.FontFamily.HELVETICA, 10, Font.BOLD | Font.ITALIC, BaseColor.BLACK);

        //table creation
        PdfPTable tblCon = new PdfPTable(3); //3 columns
        tblCon.WidthPercentage = 90f; //wide %
        tblCon.HorizontalAlignment = 1; //centered
        //tblCon.LockedWidth = true;

        //relative col widths in proportions - 1/3 and 2/3
        float[] widths = new float[] { 4f, 6f, 2f };//{ 6f, 4f, 2f };
        tblCon.SetWidths(widths);

        //leave a gap before and after the table
        tblCon.SpacingBefore = 20f;
        tblCon.SpacingAfter = 30f; 

        //Header Cell
        string appHeader = "Applications";
        Chunk cAppHeader = new Chunk(appHeader, underText);

        // CELLS
        PdfPCell cellName = new PdfPCell();
        cellName.PaddingTop = 10f;
        cellName.VerticalAlignment = PdfPCell.ALIGN_TOP;
        cellName.BorderWidth = 1;
        cellName.MinimumHeight = 30f;
        //cellName.HorizontalAlignment = 0; //0=Left, 1=Center, 2=Right

        PdfPCell cellSeparator = new PdfPCell();
        cellSeparator.PaddingTop = 10f;
        cellSeparator.VerticalAlignment = PdfPCell.ALIGN_TOP;
        cellSeparator.BorderWidth = 1;
        cellSeparator.MinimumHeight = 20f;

        PdfPCell cellPage = new PdfPCell();
        cellPage.PaddingTop = 10f;
        cellPage.VerticalAlignment = PdfPCell.ALIGN_TOP;
        cellPage.BorderWidth = 1;
        cellPage.MinimumHeight = 30f;

        for (int i = 0; i < listOfDetailsPDF.Count; i++)
        {
            if (i == 0) //first column, just header
            {
                cellName.AddElement(new Paragraph(cAppHeader));
                cellSeparator.AddElement(new Paragraph(".", invisibleFont)); 
                cellPage.AddElement(new Paragraph("1", invisibleFont));
            }

            var obj = listOfDetailsPDF[i];
            String title = (string)obj.GetType().GetProperty("applicantName").GetValue(obj, null);
            Chunk cTitle = new Chunk(title, textIndexFont);

            int pNPage = (int)obj.GetType().GetProperty("pdfPages").GetValue(obj, null);
            String numberPage = pNPage.ToString();
            Chunk cNumPage = new Chunk(numberPage, textIndexFont);

            cellName.AddElement(new Paragraph(cTitle));
            cellSeparator.AddElement(new Paragraph(dottedLine));
            cellPage.AddElement(new Paragraph(cNumPage));

        }
        tblCon.Rows.Add(new PdfPRow(new PdfPCell[] { cellName, cellSeparator, cellPage }));

Я просто хочу: имя с пунктирной линией с номером страницы должно выглядеть в одной строке в каждой строке. Спасибо

Я уже тестировал с тем же MinimumHeight в каждой ячейке и все равно получал одно и то же изображение

Aillyn Escasena 29.06.2018 19:04

Вы говорите Я пытаюсь, чтобы текст в строке выглядел с одинаковым горизонтальным выравниванием, но вы также говорите, что вы не говоря уже о выравнивании по левому, центру или правому краю.. Я знаю только один другой тип горизонтального выравнивания, и это выравнивание по ширине. О каком типе горизонтального выравнивания вы говорите? И не могли бы вы исправить грамматические ошибки, добавив в свой вопрос дополнительную информацию? Возможно, я неправильно понимаю Я пытаюсь, чтобы текст в строке выглядел с одинаковым горизонтальным выравниванием. (это предложение действительно не имеет смысла.)

Bruno Lowagie 29.06.2018 19:45

Также: (1.) почему вы все еще используете iText 5 вместо iText 7? iText 5 больше не поддерживается. (2.) Почему вы используете таблицу для создания этого типа оглавления. Во всех официальных примерах используется DottedLineSeparator без таблицы.

Bruno Lowagie 29.06.2018 19:48

Извините за мой английский, возможно, мне придется объяснить получше. Страницы с номерами не находятся на одной горизонтальной линии с соответствующими пунктирными линиями ... Вот что я пытался объяснить

Aillyn Escasena 29.06.2018 20:12

Что касается ваших вопросов: (1) я использую ItextSharp 5, потому что эта версия показана в моем пакете управления NuGet (Visual Studio 2013) и (2) с оглавлением есть метод, который имеет сборки, которых нет в моей версии, поэтому вместо этого я использовал таблицу Pdf.

Aillyn Escasena 29.06.2018 20:19

Вы больше доверяете своей неправильной конфигурации Visual Studio, чем оригинальному автору iText. Давайте проверим сайт Nuget: nuget.org/packages/itext7 Ой, это не версия 5, не так ли? iText 5 больше не поддерживается. Последние выпуски - это выпуски Обслуживание, предназначенные для платных пользователей. Используйте iText 7 вместо 5.

Bruno Lowagie 29.06.2018 20:27

После обновления до iText 7 вы сможете использовать разделитель пунктирной линии, как описано в руководстве: developers.itextpdf.com/content/itext-7-building-blocks/…

Bruno Lowagie 29.06.2018 20:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
285
0

Другие вопросы по теме