iTextSharp(C#.Net):如何旋转PDF并缩放其大小

时间:2019-02-14 18:58:56

标签: c# .net itext

我正在使用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的内容,并按比例放大其大小,以使其占据更多的页面。

0 个答案:

没有答案