Установка размера шрифта при создании таблицы - PullRequest
0 голосов
/ 31 января 2019

Я успешно создал таблицу в PDF-документе, используя ITextSharp, используя данные из документа Excel.Я установил ширину столбцов таблицы .pdf, чтобы она была такой же, как в документе Excel.

Однако при просмотре документа .pdf макет не совпадает с макетом документа Excel.

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

Вот что у меня так.

private void WritePDFTable(ExcelWorksheet sheet, Document doc)
    {
        var start = sheet.Dimension.Start;
        var end = sheet.Dimension.End;

        float[] ColumnWidths = new float[end.Column];
        float TotalWidth = 0f;
        int row;
        int column;

        if (sheet.Dimension != null)    // make sure the sheet isn't empty
        {
            if (end.Column > 0) // create a table to hold the columns in the passed worksheet
            {
                for (column = start.Column; column <= end.Column; column++)
                {
                    ColumnWidths[column - 1] = (float)(sheet.Column(column).Width);
                    TotalWidth = TotalWidth + (float)(sheet.Column(column).Width);
                }

                    // creat a pdf table with  the same # of columns as were found in the workbook
                    PdfPTable PdfPTable = new PdfPTable(end.Column);

                    // set absolute width of the columns
                PdfPTable.SetWidths(ColumnWidths);  

                PdfPTable.SpacingBefore = 20f;
                PdfPTable.SpacingAfter = 30f;


                for (row = start.Row; row <= end.Row;row++)                    {
                    for (column = start.Column; column <= end.Column; column++)                         {
                        PdfPTable.AddCell(sheet.Cells[row, column].Text);
                    }
                }
                doc.Add(PdfPTable);
            }
        }
    }

1 Ответ

0 голосов
/ 31 января 2019

Если вы определяете Font font с желаемым значением fontSize, например, вот так

Font font = new Font(Font.FontFamily.HELVETICA, fontSize);

или этим

Font font = FontFactory.GetFont("Arial", fontSize, Font.NORMAL, BaseColor.BLACK);

(используйте класс iTextSharp Font,не класс Windows API Font), просто замените

PdfPTable.AddCell(sheet.Cells[row, column].Text);

на

PdfPTable.AddCell(new Phrase(sheet.Cells[row, column].Text, font));

, чтобы получить ячейки с текстом нужного размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...