iTextSharp PDF只旋转一次



我在网上找到了旋转PDF的代码,然后使用move命令覆盖原始文件。如果还有更好的方法,请告诉我。参见以下代码:

string source = textBox1.Text;
string filename = Path.ChangeExtension(source, null);
string destination = filename + "-rot.pdf";

Debug.WriteLine (destination);

PdfReader reader = new PdfReader(source);
int pagesCount = reader.NumberOfPages;
for (int n = 1; n <= pagesCount; n++)
{
PdfDictionary page = reader.GetPageN(n);
PdfNumber rotate = page.GetAsNumber(PdfName.ROTATE);
//int rotation = rotate == null ? 90 : (rotate.intValue() + 90) % 360;
page.Put(PdfName.ROTATE, new PdfNumber(-90));
}

FileStream fs = new FileStream(destination, FileMode.Create, FileAccess.Write, FileShare.None);
PdfStamper stamper = new PdfStamper(reader, fs);
stamper.Close();
reader.Close();
File.Move(destination, source, true); //overwrite original with rotated and remove rotated file

然而,我不确定我是否理解itextsharp-pdf旋转函数。如果我在同一个pdf上再次运行相同的东西,它不会再次旋转它。例如,如果我把它设置为90度,如果我运行两次,我会期望pdf与原始pdf成180度,但它不是这样工作的。

有办法做到这一点吗?

感谢

Andrew

我猜它正在旋转90度,而不是90度。所以做两次(也许不保存和重新加载(只会告诉它旋转到90,而不是90。

最新更新