C# 更改页面方向

C# 更改页面方向,c#,asp.net,itext,C#,Asp.net,Itext,我正在C#ASP.NET应用程序中使用iTextSharp.dll。我想要的是,如果计数selectedCount值为li.Selected); Document pdfDoc=新文档(PageSize.A4.Rotate(),0,0,5,0); 如果(selectedCount,您基本上需要旋转文档的页面 看看 (java代码,但应易于移植到C) PdfDocument pdfDoc=新的PdfDocument(新的PdfReader(SRC)、新的PdfWriter(DEST)); int

我正在C#ASP.NET应用程序中使用iTextSharp.dll。我想要的是,如果计数
selectedCount
值为
li.Selected);
Document pdfDoc=新文档(PageSize.A4.Rotate(),0,0,5,0);

如果(selectedCount,您基本上需要旋转文档的页面

看看

(java代码,但应易于移植到C)

PdfDocument pdfDoc=新的PdfDocument(新的PdfReader(SRC)、新的PdfWriter(DEST));
int n=pdfDoc.getNumberOfPages();
PDF页面;
PdfNumber旋转;

对于(int p=1;p),这将被称为预渲染,还是在保存pdf后调用?此方法(来自iText示例)旋转所有页面。您可以轻松调整此方法以满足您的需要。
int selectedCount = 
    checkboxlistfirst.Items.Cast<System.Web.UI.WebControls.ListItem>()
                           .Count(li => li.Selected);

Document pdfDoc = new Document(PageSize.A4.Rotate(), 0, 0, 5, 0);
if (selectedCount <= 2) { pdfDoc.SetPageSize(new Rectangle(850f, 1100f)); }
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(DEST));
int n = pdfDoc.getNumberOfPages();
PdfPage page;
PdfNumber rotate;
for (int p = 1; p <= n; p++) {
    page = pdfDoc.getPage(p);
    rotate = page.getPdfObject().getAsNumber(PdfName.Rotate);
    if (rotate == null) {
        page.setRotation(90);
    }
    else {
        page.setRotation((rotate.intValue() + 90) % 360);
    }
}
pdfDoc.close();