我正在使用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();
但是如果我在没有检测到旋转的情况下明确地旋转文件,那么无论标准程度如何,文件都会旋转。