2

テーブルを使用して iTextSharp で特定のレイアウトを作成する際に問題が発生しています。

ページを 2 つに分割するテーブルを作成することからドキュメントを開始し、これらの各列に x 行と 1 列ずつの追加のテーブルを挿入します。

このようにしたいのは、この HTMLに似たレイアウトが必要だからです。

しかし、何が起こっているかは次のとおりです。

ここに画像の説明を入力

コードに従って独立しているテーブルは、互いにリンクされているようです。

古いコード

private void AddBody()
    {
        Image smallerLogo = Image.GetInstance(_logo);
        smallerLogo.ScaleAbsolute(100f, 100f);

        Image normalLogo = Image.GetInstance(_logo);

        ExtendedTable table = new ExtendedTable(2, 1, true, false, true);
        table.SetWidths(new[] { 50, 50 });

        ExtendedTable col1 = new ExtendedTable(1, 6, true, false, false);
        col1.AddCell(new ExtendedCell(new Chunk("Impressions", _headingFont), false));
        col1.AddCell(new ExtendedCell(smallerLogo, false));
        col1.AddCell(new ExtendedCell(new Chunk("Visitor funnel", _headingFont), false));
        col1.AddCell(new ExtendedCell(smallerLogo, false));
        col1.AddCell(new ExtendedCell(new Chunk("Shortlists", _headingFont), false));
        col1.AddCell(new ExtendedCell(smallerLogo, false));

        ExtendedTable col2 = new ExtendedTable(1, 6, true, false, false);
        col2.AddCell(new ExtendedCell(new Chunk("Leads", _headingFont), false));
        col2.AddCell(new ExtendedCell(normalLogo, false));
        col2.AddCell(new ExtendedCell(new Chunk("Demographics", _headingFont), false));
        col2.AddCell(new ExtendedCell(normalLogo, false));

        table.AddCell(new ExtendedCell(col1, false));
        table.AddCell(new ExtendedCell(col2, false));

        _document.Add(table);
    }

新しいコード

private void AddBody()
    {
        Image smallerLogo = Image.GetInstance(_logo);
        smallerLogo.ScaleAbsolute(60.0f, 60.0f);

        Image normalLogo = Image.GetInstance(_logo);

        PdfPTable table = new PdfPTable(2);
        table.SetWidths(new[] { 50, 50 });

        PdfPTable col1 = new PdfPTable(1);
        col1.AddCell("Impressions");
        col1.AddCell(new PdfPCell(smallerLogo));
        col1.AddCell("Visitor funnel");
        col1.AddCell(new PdfPCell(smallerLogo));
        col1.AddCell("Shortlists");
        col1.AddCell(new PdfPCell(smallerLogo));

        PdfPTable col2 = new PdfPTable(1);
        col2.AddCell("Leads");
        col2.AddCell(normalLogo);
        col2.AddCell("Demographics");
        col2.AddCell(normalLogo);

        table.AddCell(col1);
        table.AddCell(col2);

        _document.Add(table);
    }

ExtendedCellとは、テーブルExtendedTableの境界線を削除する小さなクラスです。

何か案は?

4

0 に答える 0