я работаю над кодом багги предыдущего работника (как я люблю работать над кодом других людей), объявление он создает PDF с помощью iTextSharp ASP Framework 4.0, C#PDF iTextSharp, писать PDF линию другую страницу
он использует:
if (yindex <= 100)
{
Cb.PdfDocument.NewPage();
Cb.SetCMYKColorStroke(100, 60, 0, 18);
yindex = 770;
}
Cb.BeginText();
Cb.SetFontAndSize(Font, FontSize);
Cb.ShowTextAligned(Alignment, text, xPos, yindex, rotation);
Cb.EndText();
в основном то, что происходит в ГЭК печать списка раз, сохраняя текущую сумму их стоимости, когда раздел будет завершен, он пытается установить Yindex обратно в верхней части страницы и напишите заголовок с общим количеством.
Это работает отлично, если есть одна страница, однако, когда раздел охватывает несколько страниц, установка yindex в верхней части страницы устанавливает текст в верхнюю часть текущей страницы. Как я буду следить за тем, на какой странице заголовок должен быть включен, а затем установить yindex для корректировки высоты на правильной странице?
Как только вы делаете «NewPage», предыдущая страница записывается в файл. Таким образом, вы не можете просто вернуться к этой странице, чтобы добавить к ней контент. Однако вместо этого вы можете создать пустой 'PdfTemplate', когда вы начнете раздел, и включите его в верхней части текущей страницы. Закончив раздел, нарисуйте текстовую строку заголовка в этом шаблоне и сохраните его. В качестве альтернативы вы можете сохранить номер страницы и строку заголовка в некоторой коллекции; когда PDF без заголовков закончен, просто откройте его в 'PdfStamper' и добавьте заголовки на указанные страницы. – mkl
Тот, кто написал 'Cb.PdfDocument.NewPage();' должен получить зуд в недоступном для него месте. Это действительно очень плохой код! –