我需要一个矩形,其中包含一些上下文作为文本.我必须将矩形旋转到某个Angular ,比如说逆时针旋转90°,这样内容也会旋转.然而,当我编写这段代码时,它只显示一个矩形.
这是代码:
package main;
import java.io.FileNotFoundException;
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Canvas;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Text;
import com.itextpdf.layout.property.Property;
import com.itextpdf.layout.property.TextAlignment;
import com.itextpdf.layout.property.VerticalAlignment;
public class main {
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
String dest = "C:\\Users\\beast\\Desktop\\samplePdf";
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
PdfPage page = pdf.addNewPage();
PdfCanvas pdfCanvas = new PdfCanvas(page);
Rectangle rect1 = new Rectangle(183, 488, 180, 32);
// cordinates after rotation 90' counter clockwise
Rectangle rect2 = new Rectangle(151, 488, 32, 180);
pdfCanvas.rectangle(rect1);
pdfCanvas.stroke();
Canvas canvas = new Canvas(pdfCanvas, pdf, rect1);
Text title = new Text("Thbvhs ybhsvb");
Paragraph p = new Paragraph().add(title);
canvas.add(p);
AffineTransform transform=AffineTransform.getRotateInstance((float)(Math.PI/2));
pdfCanvas.concatMatrix(transform);
canvas.close();
canvas=new Canvas(pdfCanvas, pdf, rect2);
pdfCanvas.rectangle(rect2);
pdfCanvas.stroke();
canvas.add(p);
canvas.close();
pdf.close();
}
}
这是pdf的输出: