【发布时间】:2011-07-17 17:37:30
【问题描述】:
我正在使用 iTextSharp 将多个 PDF 文件合并为一个 Pdf。我在网上找到了code sample 或two 来了解如何完成这项任务。
它们都可以正常工作,没有明显的问题,因为我能够将多个 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);
}
永远不会被执行(如果这是应该做的,旋转页面)。
因此,根据第一个代码示例page = writer.GetImportedPage(reader, i) 的链接中的代码,我将如何将page 的页面布局从横向更改为纵向,然后再将其添加到新的合并 PDF 文档中cb.AddTemplate...?
PS。确定页面是横向还是纵向,我使用从 SO 获得的以下code(适用于上面的代码示例):
float pageXYRatio = page.Width / page.Height;
if (XYRatio > 1f)
{
//page is landscape
}
else
{
//page is portrait
}
任何帮助将不胜感激。
谢谢
【问题讨论】: