我有一个网站,用户上传照片和写真集创建。 此外,他们可以在绝对位置,旋转和对齐添加文字。 文本可以有新的线路。
我一直在使用iText库,以使自动化被印在后者的照相簿高品质的PDF文件的创建。
添加用户上传的图片的PDF文件是非常简单的,问题是当我尝试添加文本。
从理论上说什么,我需要做的,就是要定义一些定义的宽度和高度的一个段落,设置用户文本,字体,字体样式,对齐方式(居中,左,右,证明),最后设置旋转。
对于我读过有关iText的,我可以创建一个段落设置的用户属性,并使用ColumnText对象设置绝对位置,宽度和高度。 但是这并不可能设置的任何比单行更大的旋转。
我不能使用表单元格任一,由于旋转方法只允许是90的倍数度。
有没有一种方法,而不必通过使用行添加文本行添加一些旋转(例如20度)的一段ColumnText.showTextAligned()
方法,并涉及所有数学?
----编辑:2008年以前,2013 ----
如果有帮助的人,这是我用来解决这个问题(感谢布鲁诺)的代码:
//Create the template that will contain the text
PdfContentByte canvas = pdfWriter.getDirectContent();
PdfTemplate textTemplate = canvas.createTemplate(imgWidth, imgHeight); //The width and height of the text to be inserted
ColumnText columnText = new ColumnText(textTemplate);
columnText.setSimpleColumn(0, 0, imgWidth, imgHeight);
columnText.addElement(paragraph);
columnText.go();
//Create de image wraper for the template
Image textImg = Image.getInstance(textTemplate);
//Asign the dimentions of the image, in this case, the text
textImg.setInterpolation(true);
textImg.scaleAbsolute(imgWidth, imgHeight);
textImg.setRotationDegrees((float) -textComp.getRotation()); //Arbitrary number of degress
textImg.setAbsolutePosition(imgXPos, imgYPos);
//Add the text to the pdf
pdfDocument.add(textImg);