Определить разрыв таблицы в файле PDF

В этом уроке мы научимся определять разрывы таблиц в PDF-файле с помощью Aspose.PDF для .NET. Мы шаг за шагом объясним исходный код на C#. В конце этого урока вы будете знать, как определить, выходит ли таблица за пределы полей страницы. Давайте начнем!

Шаг 1: Настройка среды

Сначала убедитесь, что вы настроили среду разработки C# с Aspose.PDF для .NET. Добавьте ссылку на библиотеку и импортируйте необходимые пространства имен.

Шаг 2: Создание PDF-документа

На этом этапе мы создаем новыйDocument объект для представления PDF-документа.

pdf-Document = new Document();

Этот документ будет использоваться для добавления разделов и таблиц.

Шаг 3: Добавление раздела и таблицы

Теперь мы добавим раздел в наш PDF-документ и создадим таблицу внутри этого раздела.

Page page = pdf.Pages.Add();
Table table1 = new Table();
table1. Margin. Top = 300;
page.Paragraphs.Add(table1);

Мы также указываем верхнюю границу для таблицы в 300 пунктов. Вы можете настроить это значение в соответствии с вашими потребностями.

Шаг 4: Расстановка стола

На этом этапе мы настраиваем свойства таблицы, такие как ширина столбцов и границы.

table1. ColumnWidths = "100 100 100";
table1.DefaultCellBorder = new BorderInfo(BorderSide.All, 0.1F);
table1.Border = new BorderInfo(BorderSide.All, 1F);

Здесь мы определяем ширину столбцов таблицы и границы ячеек. Вы можете настроить эти значения в соответствии со своими предпочтениями.

Шаг 5: Добавьте строки и ячейки в таблицу.

Теперь мы создадим строки и ячейки в таблице с помощью цикла.

for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
{
     Row row1 = table1.Rows.Add();
     row1.Cells.Add("col " + RowCounter.ToString() + ", 1");
     row1.Cells.Add("col " + RowCounter.ToString() + ", 2");
     row1.Cells.Add("col " + RowCounter.ToString() + ", 3");
}

Здесь мы создаем 17 строк в таблице и добавляем по три ячейки в каждую строку. Вы можете отрегулировать пряжку в соответствии с вашими потребностями.

Шаг 6: Определение разрывов таблицы

Теперь определим, выходит ли таблица за пределы полей страницы, сравнив высоту страницы с общей высотой объектов в таблице.

float PageHeight = (float)pdf.PageInfo.Height;
float TotalObjectsHeight = (float)page.PageInfo.Margin.Top + (float)page.PageInfo.Margin.Bottom + (float)table1.Margin.Top + (float)table1.GetHeight();

if ((PageHeight - TotalObjectsHeight) <= 10)
     Console.WriteLine("The height of the page - Height of objects < 10, the table will be truncated");

Рассчитываем высоту страницы и общую высоту объектов с учетом полей. Если разница составляет 10 или меньше, таблица выходит за поля страницы.

Шаг 7: Сохранение PDF-документа

Наконец, сохраняем PDF-документ с результатами.

string dataDir = "YOUR DOCUMENTS DIRECTORY";
dataDir = dataDir + "DetermineTableBreak_out.pdf";
pdf.Save(dataDir);
Console.WriteLine("\nTable break determined successfully.\nFile saved at " + dataDir);

Обязательно укажите правильный каталог документа. Полученный файл PDF будет сохранен с определенными разрывами таблицы.

Пример исходного кода для определения разрыва таблицы с использованием Aspose.PDF для .NET

// Путь к каталогу документов.
string dataDir = "YOUR DOCUMENT DIRECTORY";

// Создать экземпляр класса объекта PDF
Document pdf = new Document();
// Добавить раздел в коллекцию разделов PDF-документа
Aspose.Pdf.Page page = pdf.Pages.Add();
// Создать экземпляр объекта таблицы
Aspose.Pdf.Table table1 = new Aspose.Pdf.Table();
table1.Margin.Top = 300;
// Добавить таблицу в подборку абзацев нужного раздела
page.Paragraphs.Add(table1);
// Установите ширину столбцов таблицы
table1.ColumnWidths = "100 100 100";
// Установить границу ячейки по умолчанию с помощью объекта BorderInfo
table1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);
// Установить границу таблицы, используя другой настроенный объект BorderInfo
table1.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 1F);
// Создайте объект MarginInfo и задайте его левое, нижнее, правое и верхнее поля.
Aspose.Pdf.MarginInfo margin = new Aspose.Pdf.MarginInfo();
margin.Top = 5f;
margin.Left = 5f;
margin.Right = 5f;
margin.Bottom = 5f;
// Установите отступ ячейки по умолчанию для объекта MarginInfo
table1.DefaultCellPadding = margin;
// Если увеличить счетчик до 17, таблица сломается
// Потому что больше не может быть размещено на этой странице.
for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
{
	//Создайте строки в таблице, а затем ячейки в строках.
	Aspose.Pdf.Row row1 = table1.Rows.Add();
	row1.Cells.Add("col " + RowCounter.ToString() + ", 1");
	row1.Cells.Add("col " + RowCounter.ToString() + ", 2");
	row1.Cells.Add("col " + RowCounter.ToString() + ", 3");
}
// Получить информацию о высоте страницы
float PageHeight = (float)pdf.PageInfo.Height;
// Получите общую информацию о высоте верхнего и нижнего полей страницы,
// Верхнее поле таблицы и высота таблицы.
float TotalObjectsHeight = (float)page.PageInfo.Margin.Top + (float)page.PageInfo.Margin.Bottom + (float)table1.Margin.Top + (float)table1.GetHeight();

// Отображение высоты страницы, высоты таблицы, верхнего поля таблицы и верха страницы
// И информация о нижнем поле
Console.WriteLine("PDF document Height = " + pdf.PageInfo.Height.ToString() + "\nTop Margin Info = " + page.PageInfo.Margin.Top.ToString() + "\nBottom Margin Info = " + page.PageInfo.Margin.Bottom.ToString() + "\n\nTable-Top Margin Info = " + table1.Margin.Top.ToString() + "\nAverage Row Height = " + table1.Rows[0].MinRowHeight.ToString() + " \nTable height " + table1.GetHeight().ToString() + "\n ----------------------------------------" + "\nTotal Page Height =" + PageHeight.ToString() + "\nCummulative height including Table =" + TotalObjectsHeight.ToString());

// Проверьте, вычитаем ли мы сумму верхнего поля страницы + нижнего поля страницы.
// + Верхнее поле таблицы и высота таблицы от высоты страницы и меньше
// Более 10 (средняя строка может быть больше 10)
if ((PageHeight - TotalObjectsHeight) <= 10)
	// Если значение меньше 10, то вывести сообщение.
	//Что показывает, что еще один ряд не может быть размещен, и если мы добавим новый
	// Строка, таблица сломается. Это зависит от значения высоты строки.
	Console.WriteLine("Page Height - Objects Height < 10, so table will break");


dataDir = dataDir + "DetermineTableBreak_out.pdf";
// Сохраните PDF-документ
pdf.Save(dataDir);

Console.WriteLine("\nTable break determined successfully.\nFile saved at " + dataDir);

Заключение

В этом уроке мы узнали, как определить разрывы таблиц в документе PDF с помощью Aspose.PDF для .NET. Вы можете использовать это пошаговое руководство, чтобы проверить, выходит ли таблица за пределы полей страницы в ваших собственных проектах C#.

Часто задаваемые вопросы по определению разрыва таблицы в файле PDF

В: Какова цель определения разрывов таблиц в PDF-документе?

A: Цель определения разрывов таблиц в документе PDF — проверить, выходит ли таблица за пределы полей страницы. Это гарантирует, что содержимое таблицы правильно отображается в пределах доступного пространства страницы. Обнаруживая разрывы таблиц, вы можете справиться с переполнением содержимого и соответствующим образом скорректировать макет таблицы.

В: Как настроить верхнее поле таблицы?

A: В предоставленном исходном коде C# вы можете настроить верхнее поле таблицы, изменив значениеtable1.Margin.Topсвойство. Увеличьте или уменьшите значение по мере необходимости, чтобы задать желаемое верхнее поле для таблицы.

В: Могу ли я настроить внешний вид таблицы, например цвет ячеек и размер шрифта?

A: Да, вы можете настроить внешний вид таблицы и ее ячеек, используя различные свойства и методы, предоставляемые Aspose.PDF для .NET. Например, вы можете изменить цвет фона ячеек, размер шрифта, семейство шрифтов, выравнивание текста и многое другое. Обратитесь к официальной документации для получения дополнительной информации о настройке внешнего вида таблицы.

В: Что произойдет, если таблица выйдет за пределы полей страницы?

A: Если таблица выходит за пределы полей страницы, это может привести к усечению или перекрытию содержимого, что сделает документ PDF менее читаемым и организованным. Обнаруживая разрывы таблиц и обрабатывая переполнение, вы можете гарантировать, что содержимое будет правильно отображаться в пределах доступной области страницы.

В: Могу ли я определить разрывы таблиц для нескольких таблиц в одном PDF-документе?

A: Да, вы можете определить разрывы таблиц для нескольких таблиц в одном документе PDF. Просто повторите шаги для каждой таблицы, которую вы хотите проанализировать, и при необходимости отрегулируйте макет таблицы, чтобы предотвратить переполнение контента.