Member 13677936 Ответов: 1

Как реализовать colspan и rowspan в приложении WPF?


У меня есть приложение WPF, и я хочу реализовать colspan и rowspan в своем коде. Я использовал iText версии 7 для представления данных в формате PDF. Однако PdfPCell не распознается для того, чтобы использовать метод colspan и rowspan. Есть ли способ решить эту проблему? Моя цель на самом деле состоит в том, чтобы создать основной заголовок вместе с подзаголовком в моей таблице.


Что я уже пробовал:

using iText.IO.Font.Constants;
using iText.Kernel.Font;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using Microsoft.Win32;
using System.Diagnostics;
using System.Windows;

namespace ITextPdf.UI
{
   /// <summary>
   /// Interaction logic for MainWindow.xaml
   /// </summary>
   public partial class MainWindow : Window
   {
      public MainWindow()
      {
         InitializeComponent();
      }

      private void Export_Btn(object sender, RoutedEventArgs e)
      {
         SaveFileDialog dlg = new SaveFileDialog
         {
            DefaultExt = ".pdf",
            Filter = "Adobe PDF Files(*.pdf)|*.pdf",
            FilterIndex = 1
         };

         string fileName = string.Empty;

         if (dlg.ShowDialog() == true)
         {
            fileName = dlg.FileName;

            PdfWriter writer = new PdfWriter(fileName);
            PdfDocument pdf = new PdfDocument(writer);

            PdfFont font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);
            PdfFont bold = PdfFontFactory.CreateFont(StandardFonts.HELVETICA_BOLD);

            Document document = new Document(pdf, PageSize.LETTER);
            document.SetMargins(20, 20, 20, 20);
            document.Add(new Paragraph("General Ledger")
               .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
               .SetFontSize(18)
               .SetFont(bold)
               .SetMarginBottom(-8));
            document.Add(new Paragraph("Naawan, Misamis Oriental")
               .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
               .SetFontSize(14)
               .SetFont(font)
               .SetMarginBottom(20));

            var table = new Table(new float[] { 80, 120, 80, 80, 80 });
            table.SetMinWidth(100)
               .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
               .SetFontSize(10);
            table.AddHeaderCell("Date");
            table.AddHeaderCell("Particulars");
            table.AddHeaderCell("Debit");
            table.AddHeaderCell("Credit");
            table.AddHeaderCell("Total Amount");
            table.AddCell("1/1/17");
            table.AddCell("Beginning Balance");
            table.AddCell("100.00");
            table.AddCell("");
            table.AddCell("100.00");
            table.AddCell("");
            table.AddCell("");
            table.AddCell("");
            table.AddCell("300.00");
            table.AddCell("200.00");

            document.Add(table);
            document.Close();
            Process.Start(fileName);
         }
      }
   }
}

1 Ответов

Рейтинг:
1

#realJSOP

В вашем XAML добавьте этот атрибут к соответствующему элементу(элементам):

Grid.ColumnSpan=n

(где "n" - это количество столбцов, охватываемых вашей сеткой)


Richard Deeming

Вводящее в заблуждение название вопроса: это не имеет никакого отношения к WPF, это касается iTextSharp. :)

#realJSOP

Затем ОП должен быть нарисован и четвертован. :)