【发布时间】:2018-03-23 14:20:44
【问题描述】:
我有 WPF 应用程序,我想在我的代码中实现 colspan 和 rowspan。我使用 iText 版本 7 将数据导出为 PDF。但是我不知道如何为 Cell 对象定义 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
{
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);
}
}
}
}
【问题讨论】:
-
查看您的代码,我没有看到您定义任何 colspan 或 rowspan。查看您的代码和生成的 PDF,我会说 iText 正确执行您的代码。另外:您使用的是 iText 7,并且您提到了
PdfPCell。 iText 7 中不存在PdfPCell类。它是 iText 5 类。