Вставка изображения в ячейку таблицы в PDF
Таблицы являются важными элементами для отображения данных. Они предоставляют презентабельный формат для представления данных. Таблицы часто используются для отображения числовой информации. API Aspose.PDF предоставляет класс Table, который позволяет создавать таблицы в PDF файле.
Вместо создания простой таблицы вы можете установить различные параметры форматирования, например стиль границы таблицы, информацию о полях, выравнивание, цвет фона, ширину столбцов, информацию о заголовке, значение строк, которые будут повторяться на каждой странице, и многое другое.
Подход Aspose.PDF
Согласно нашей DOM (Модель Объектов Документа) документ состоит из страниц. Страница содержит один или несколько абзацев, и абзац может быть изображением, текстом, полем формы, заголовком, плавающим блоком, графиком, вложением или таблицей. Таблица, в свою очередь, содержит коллекцию строк, и каждая строка содержит коллекцию ячеек. Ячейка — это коллекция абзацев.
Таким образом, в соответствии с нашей моделью DOM ячейка таблицы может содержать любой из перечисленных выше элементов абзаца, включая изображения.
Понимание ширины ячейки
Необходимо четко понимать ширину ячейки, особенно при отображении изображения в ячейке таблицы, чтобы ширина изображения была зафиксирована на ширине ячейки и отображалась правильно. Ширина изображения может быть установлена с помощью метода setFixedWidth() класса Image.
Пример кода
String dataDir = "C:\\temp\\";
// Создаем объект Document, вызывая его пустой конструктор
Document pdfDocument = new Document();
// Создаем страницу в объекте Document
com.aspose.pdf.Page page = pdfDocument.getPages().add();
// Создаем объект таблицы
Table table = new Table();
// Добавляем таблицу в коллекцию абзацев на нужной странице
page.getParagraphs().add(table);
// Устанавливаем ширину столбцов таблицы
table.setColumnWidths("100 100 120");
// Устанавливаем границу таблицы, используя другой объект BorderInfo
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, 1F));
// Создаем объект изображения на странице
com.aspose.pdf.Image img1 = new com.aspose.pdf.Image();
// Устанавливаем путь к файлу изображения
img1.setFile(dataDir + "logo.jpg");
img1.setFixWidth(100);
img1.setFixHeight(100);
// Создаем строки в таблице, а затем ячейки в строках
Row row1 = table.getRows().add();
row1.getCells().add("Пример текста в ячейке");
// Добавляем ячейку, содержащую изображение
Cell cell2 = row1.getCells().add();
// Добавляем изображение в ячейку таблицы
cell2.getParagraphs().add(img1);
row1.getCells().add("Предыдущая ячейка с изображением");
row1.getCells().get_Item(2).setVerticalAlignment(VerticalAlignment.Center);
// Сохраняем документ
pdfDocument.save(dataDir + "Image_in_Cell.pdf");