iTextSharp (C # .Net): как вращать PDF и масштабировать его размер - PullRequest
0 голосов
/ 14 февраля 2019

Я создаю метки доставки с помощью веб-API Fedex.И ярлыки приходят с PDF в портретном режиме, а сам ярлык сбоку.

Теперь мне нужно повернуть этикетку, поэтому, когда она печатается в портретном режиме, этикетка не вбок, а вместо нее направо вверх.

Вот мой текущий код:

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

        for (int i = 1; i <= reader.NumberOfPages; i++)
        {
            PdfDictionary pageDict = reader.GetPageN(i);
            int desiredRot = 270; // 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

        FileStream LabelFile = new FileStream(labelFileName, FileMode.Create);
        LabelFile.Write(rotatedpdfArray, 0, rotatedpdfArray.Length);
        LabelFile.Close();

Теперь это, по сути, просто поворачивает PDF на 90 градусов, делая его альбомным форматом.Когда я перехожу к печати в портретном режиме, это делает этикетку очень маленькой.

Вместо этого я бы хотел, чтобы PDF оставался в портретном режиме (так что это режим печати по умолчанию), поверните содержимое PDF.и увеличьте его размер, чтобы он занимал больше страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...