Я создаю метки доставки с помощью веб-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.и увеличьте его размер, чтобы он занимал больше страницы.