ユーザーが写真をアップロードしてフォトブックを作成する Web サイトを持っています。また、絶対位置、回転、配置にテキストを追加することもできます。テキストには改行を含めることができます。
Itext ライブラリを使用して、後で印刷されるフォトブックの高品質 Pdfs の作成を自動化しています。
ユーザーがアップロードした画像を PDF に追加するのは非常に簡単で、テキストを追加しようとすると問題が発生します。
理論的には、幅と高さが定義された段落を定義し、ユーザーのテキスト、フォント、フォント スタイル、配置 (中央、左、右、両端揃え) を設定し、最後に回転を設定する必要があります。
Itext について読んだことについては、ユーザー プロパティを設定する段落を作成し、ColumnText オブジェクトを使用して絶対位置、幅、高さを設定できます。ただし、単一の線よりも大きなものの回転を設定することはできません。
回転方法では 90 の倍数の角度しか許可されないため、表のセルも使用できません。
ColumnText.showTextAligned()
メソッドと関連するすべての数学を使用して行ごとにテキストを追加することなく、いくつかの回転 (たとえば 20 度) で段落を追加する方法はありますか?
----編集:2013年8月8日----
それが誰かを助けるなら、これは私がこの問題を解決するために使用したコードです(Brunoに感謝します):
//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);