2015-07-16 2 views
0

При вращении страниц не следует преобразовывать изображения, удаляющие поиск в PDF-документе.Как повернуть страницы PDF (постоянный) до 90, 180, 270 градусов C#

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); 

Вышеприведенный код, похоже, не работает. Пожалуйста, предложите соответствующее.

+0

@who представить замечания, если вы нашли этот вопрос не имеет значение. Это оправдывало бы ваш голос. – Mayank

ответ

2

Я попытался реализовать это, используя библиотеку 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 

Надеется, что это помогает .......

Смежные вопросы