我正在使用Fedex Web API生成运输标签。标签带有纵向格式的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的内容,并按比例放大其大小,以使其占据更多的页面。