带pdf文件旋转的Itext pdf问题

带pdf文件旋转的Itext pdf问题,pdf,rotation,itext,Pdf,Rotation,Itext,我正在使用ItextPdf PdfSmartCopy和PdfDictionary。我必须检测输入pdf文件的旋转,基于旋转,我必须决定我应该旋转多少,以使其达到零度。通常,如果用户扫描文件,在保存之前将其向左或向右旋转,我的程序必须在用户上载时检测到它。我使用下面的代码,但对于所有不同类型的文件,旋转仅为零。你知道我怎么修吗 com.itextpdf.text.pdf.PdfReader existing = new com.itextpdf.text.pdf.PdfReader("c:\\pd

我正在使用ItextPdf PdfSmartCopy和PdfDictionary。我必须检测输入pdf文件的旋转,基于旋转,我必须决定我应该旋转多少,以使其达到零度。通常,如果用户扫描文件,在保存之前将其向左或向右旋转,我的程序必须在用户上载时检测到它。我使用下面的代码,但对于所有不同类型的文件,旋转仅为零。你知道我怎么修吗

com.itextpdf.text.pdf.PdfReader existing = new com.itextpdf.text.pdf.PdfReader("c:\\pdf_issue\\rotate270.pdf");
        com.itextpdf.text.Document document1 = new com.itextpdf.text.Document();
        com.itextpdf.text.pdf.PdfCopy copy = new PdfSmartCopy(document1, new FileOutputStream("c:\\pdf_issue\\TestRotation270.pdf"));
        document1.open();
    int n1 = existing.getNumberOfPages();
        PdfDictionary pageDict;
        int rot;
        for (int i = 1; i <= n1; i++) {
            rot = existing.getPageRotation(i);

            switch(rot)
            {
            case 90:
               {
                pageDict = existing.getPageN(i);
                pageDict.put(PdfName.ROTATE, new PdfNumber(rot + 270));
                 break;
               }
            case 180:
               {
                pageDict = existing.getPageN(i);
                pageDict.put(PdfName.ROTATE, new PdfNumber(rot + 180));
                 break;            
}
            case 270:
               {
                pageDict = existing.getPageN(i);
                pageDict.put(PdfName.ROTATE, new PdfNumber(rot + 90));
               break;
}
            default:
               {
                pageDict = existing.getPageN(i);
                pageDict.put(PdfName.ROTATE, new PdfNumber(rot + 0));
               break;
}
            }

        }
        for (int page = 0; page < n1; ) {
            copy.addPage(copy.getImportedPage(existing, ++page));
        }
    document1.close();

但是,如果我显式地旋转一个文件而没有检测到旋转,则该文件将以我给定的任何标准度旋转

给我们看PDF。如果所有页面的旋转为零,则所有页面的旋转为零。也许您假设横向中的页面始终具有旋转90度。这种假设是错误的,可能是遗传轮换?如果您共享PDF,我们可以查看。