我遇到了一个问题,即我在我的应用程序中使用Iframe标签显示pdf文档。我的要求是当用户点击旋转按钮时我需要旋转pdf文档。我使用下面的代码来实现这个。
package com.resmac.ldms.action;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
public class DocumentRotation {
public static void main(String[] args) throws ParseException, DocumentException, IOException {
PdfReader pdfReader = new PdfReader("C://Users//resmac//Desktop//rotate92.pdf");
Document document = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream("C://Users//resmac//Desktop//rotate93.pdf"));
pdfWriter.setStrictImageSequence(false);
document.setPageSize(PageSize.A4.rotate());
document.open();
int pageCount = pdfReader.getNumberOfPages();
for (int i = 1; i <= pageCount; i++) {
document.newPage();
PdfImportedPage page = pdfWriter.getImportedPage(pdfReader, i);
Image image = Image.getInstance(page);
image.setRotationDegrees(90);
image.setAbsolutePosition(0, 0);
document.add(image);
}
document.close();
}
}
当我运行上面的代码文档时第一次旋转90度。如果我通过替换源文档(使用我在第一次执行后得到的输出文档)运行相同的代码然后文档旋转180。如果我每次拿到180度旋转的文件时都继续这样做。但是我的要求总是它应该始终只旋转90度。可以帮助我。我已经被困在这两天了。请帮忙我:)
答案 0 :(得分:0)
您当前的代码告诉页面翻转90度,无论观众认为上下都是如此。当你翻转90度时,翻转的图像是&#34;正常&#34;图像,它将继续旋转到无限。
你应该有一个 if 的情况和一个布尔值来测试图像是否已被翻转。
示例代码:
boolean flipped = false;
if(!flipped){
image.setRotationDegrees(90);
flipped = true;
}
else if(flipped){
image.setRotationDegrees(-90);
flipped = false;
}