简体   繁体   English

如何将PDF页面(永久)旋转到90、180、270度c#

[英]How to rotate PDF pages (permanent) to 90, 180, 270 degree c#

While rotating the pages should not convert into images that removes searching in the pdf document. 旋转页面时,请勿将其转换为图像,从而避免在pdf文档中进行搜索。

using WebSupergoo.ABCpdf9;
Doc doc = new Doc();
byte[] source = // some source of pdf byte array
doc.Read(source);
for (int i = 1; i <= doc.PageCount; i++)
{
     doc.PageNumber = i;
     double w = doc.MediaBox.Width;
     double h = doc.MediaBox.Height;
     double l = doc.MediaBox.Left;
     double b = doc.MediaBox.Bottom;
     doc.Transform.Rotate(90, l, b);
     doc.Transform.Translate(w, 0);

     // rotate our rectangle
     doc.Rect.Width = h;
     doc.Rect.Height = w;
}
MemoryStream stream = new MemoryStream();
doc.Save(stream); 

The above code seems not to be working. 上面的代码似乎无法正常工作。 Please suggest appropriately. 请适当建议。

I tried to implement this using itextsharp library. 我试图使用itextsharp库来实现这一点。

            byte[] source = // some source of pdf byte array
            MemoryStream outStream = new MemoryStream();
            PdfReader reader = new PdfReader(scannedInvoice.imgImage);
            PdfStamper stamper = new PdfStamper(reader, outStream);

            for (int i = 1; i <= reader.NumberOfPages; i++)
            {
                PdfDictionary pageDict = reader.GetPageN(i);
                int desiredRot = 90; // 90 degrees clockwise
                PdfNumber rotation = pageDict.GetAsNumber(PdfName.ROTATE);
                if (rotation != null)
                {
                    desiredRot += rotation.IntValue;
                    desiredRot %= 360; // 0, 90, 180, 270
                }
                pageDict.Put(PdfName.ROTATE, new PdfNumber(desiredRot));
            }
            stamper.Close();
            var rotatedpdfArray = outStream.ToArray(); // The rotated output

Hope this helps....... 希望这可以帮助.......

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM