将导入的 PDF 添加到 iTextSharp 中的 table 单元格

Adding an imported PDF to a table cell in iTextSharp

我正在创建一个新的 PDF,其中将包含其他文档的汇编。

这些其他文档可以是 word/excel/images/PDF 的。

我希望将所有这些内容添加到 table 中的单元格中,该单元格被添加到文档中 - 这给了我自动添加页面、将元素定位在单元格而不是页面中的优点并让我更轻松地保持内容与我提供的顺序相同(例如 img、doc、pdf、img、pdf 等)

将图像添加到 table 非常简单。

我正在将 word/excel 文档转换为 PDF 图像流。我也在以流的形式阅读现有的 PDF。

将这些添加到新 PDF 非常简单 - 通过将模板添加到 PdfContent 字节。

我想做的是将这些 PDF 添加到 table 中的单元格中,然后将其添加到文档中。

这可能吗?

请下载chapter 6 of my book。它包含您要执行的操作的两个变体:

这是一个代码片段:

// step 1
Document document = new Document();
// step 2
PdfWriter writer
    = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
// step 3
document.open();
// step 4
PdfReader reader = new PdfReader(MovieTemplates.RESULT);
int n = reader.getNumberOfPages();
PdfImportedPage page;
PdfPTable table = new PdfPTable(2);
for (int i = 1; i <= n; i++) {
    page = writer.getImportedPage(reader, i);
    table.getDefaultCell().setRotation(-page.getRotation());
    table.addCell(Image.getInstance(page));
}
document.add(table);
// step 5
document.close();
reader.close();

页面作为 PdfImportedPage 对象导入,然后包裹在 Image 中,以便我们可以将它们添加到 PdfPTable.