Я использую iTextSharp для объединения нескольких файлов PDF в один файл PDF. Я нашел пример кода или два о том, как выполнить эту задачу.
Все они работают без видимых проблем, так как я могу объединить несколько файлов PDF в один PDF.
Проблема, с которой я столкнулся, заключается в том, что я хотел бы, чтобы все страницы были в PORTRAIT, поскольку некоторые из файлов PDF имеют страницы в LANDSCAPE, и я хотел бы, чтобы они были повернуты в PORTRAIT. Я не против, чтобы они были либо вверх ногами, либо боком, но все они должны быть в портрете.
Глядя на разделы кода в приведенных примерах:
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. Чтобы определить, является ли страница альбомной или портретной, я использую следующий фрагмент кода , полученный из SO (адаптированный для приведенного выше примера кода):
float pageXYRatio = page.Width / page.Height;
if (XYRatio > 1f)
{
//page is landscape
}
else
{
//page is portrait
}
Любая помощь будет оценена.
Спасибо