Я использую iTextSharp для объединения нескольких файлов PDF в один Pdf. Я нашел пример кода или два в Интернете о том, как выполнить эту задачу.
Все они работают без видимых проблем, так как я могу объединить несколько PDF файлов в один PDF файл.
Проблема, которая у меня есть, заключается в том, что я хотел бы, чтобы все страницы находились в ПОРТРЕТЕ, так как некоторые из файлов PDF имеют страницы в LANDSCAPE, и я хотел бы, чтобы они были повернуты в ПОРТРЕТ. Я не против, что они либо перевернут, либо боком, но все они должны быть в портрете.
Глядя на разделы кода в приведенных примерах:
page = writer.GetImportedPage(reader, i);
rotation = reader.GetPageRotation(i);
всегда возвращает значение поворота страницы как 0 (ноль), поэтому раздел кода
if (rotation == 90 rotation == 270)
{
cb.AddTemplate(page, 0, -1f, 1f, 0, 0,
reader.GetPageSizeWithRotation(i).Height);
}
никогда не будет выполнен (если это то, что должно было делать, вращение страницы).
Итак, на основе кода в ссылке 1-го примера кода page = writer.GetImportedPage(reader, i)
, как я собираюсь изменить макет страницы page
с Пейзаж на портрет, прежде чем я добавлю его в новый объединенный документ PDF с cb.AddTemplate...
?
PS. Определяя, является ли страница ландшафтной или портретной, я использую следующий фрагмент code, полученный из SO (адаптированный для примера кода выше):
float pageXYRatio = page.Width / page.Height;
if (XYRatio > 1f)
{
//page is landscape
}
else
{
//page is portrait
}
Любая помощь будет оценена.
Спасибо