Я использую ItextPdf PdfSmartCopy и PdfDictionary. Я должен определить вращение входного файла pdf, основываясь на ротации, я должен решить, сколько я должен вращать, чтобы довести его до нулевой степени (нормальный вид). Обычно, если пользователь сканирует файл, он поворачивает его влево или вправо перед сохранением, моя программа должна обнаруживать его при загрузке пользователя. Я использую приведенный ниже код, но для всех типов файлов, вращение происходит только как ноль. Любая идея, как я могу это исправить?Невозможно обнаружить вращение с помощью Itext 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();
Но если я явно поворачиваю файл без обнаружения вращения, файл поворачивается на любую стандартную степень, которую я даю. – dev123