itext7スタディノートその他のトークシリーズ3-絶対位置にテキストを追加

    itext7を使用してpdfの絶対位置にテキストを挿入する方法を尋ねられましたか?過去数日間、私は関連情報も確認し、関連するアプリケーションのシナリオとソリューションについて説明しました。

アプリケーションシナリオ

    実際、pdfの絶対位置にテキストを挿入するためのアプリケーションシナリオはまだたくさんあります。最も一般的なアプリケーションシナリオは次のとおりです。

  • 契約テンプレートはPDFを使用
  • 契約書のほとんどのテキストは書かれており、名前、ID番号など、コンテンツのごく一部がユーザーによって入力されています。
  • 記入する内容の絶対位置を決定しました。このとき、当社Webページ等の端末は、ユーザーが記入した内容を受け取り、内容に応じてPDF内の対応する位置に記入します。

    これは典型的なアプリケーションシナリオです。実際、この操作を使用する必要がある場所はまだたくさんあります。この操作を実現する方法を見てみましょう。

itext7第2章で、最も原始的な座標の原点はPDFの左下の位置にあると述べたことを覚えていますか

方法1:setFixedPosition-高度なAPI

    最も簡単な方法はParagraphオブジェクトのsetFixedPositionメソッドを使用することです。このメソッドは継承されたcom.itextpdf.layout.ElementPropertyContainerメソッドです。メソッドのプロトタイプは次のとおりです。

関数プロトタイプ

public T setFixedPosition(int pageNumber、float left、
float bottom、
UnitValue width)

パラメータ

  • pageNumber:絶対位置のページ番号を設定します
  • 左:原点を基準にした、追加されたテキストの左下隅のx座標
  • 下:原点を基準にした、追加されたテキストの左下隅のy座標
  • width:追加されたテキストの水平方向の幅

コード例

Text text = new Text(String.format("Page %d", pdf.getNumberOfPages() - 1));
text.setBackgroundColor(Color.WHITE); 
//前面这个text主要是设置背景色为白色,如果text的位置上面有内容就会覆盖掉内容
document.add(new Paragraph(text).setFixedPosition(
pdf.getNumberOfPages(), 549, 742, 100)); //这里面width取决于留空的宽度,这里我们尽量取大一点

動作結果

itext-0-3-1

幅パラメータの選択

    ここでは、widthパラメータの選択に注意する必要があります。幅が小さすぎると、テキストが複数行で表示されます。次の図は、width = 10の場合の効果を示しています。

itext-0-3-2

    width = 20の場合、効果は次のとおりです。

itext-0-3-3

方法2:Canvasを使用する-低レベルAPI

    このアプローチは、特定の場所にテキストを追加するために使用RectangleおよびCanvas結合することです。次のコードを直接確認します。

PdfPage page = pdf.addNewPage();
PdfCanvas pdfCanvas = new PdfCanvas(page);
Rectangle[] columns = {new Rectangle(6, 650, 100, 30),
        new Rectangle(50, 500, 100, 100),};  //几个Rectangle对应几个位置
pdfCanvas.rectangle(columns[0]);
pdfCanvas.stroke();  
Canvas canvas = new Canvas(pdfCanvas, pdf, columns[0]);
Paragraph p=new Paragraph("hssssas").setFont(f3).setBold().setFontSize(10);   //Bold为设置粗体
canvas.add(p);

    次のように実行します。

  1. 契約の残りのスペースに応じて、対応する番号を設計しますRectangle
  2. 最初の長方形を使用しpdfCanvas現在のキャンバスの位置を設定し、この長方形にコンテンツを追加することを示します
  3. stroke()関数を呼び出して長方形を表示します。もちろん、この関数を未使用のままにしておくと、長方形は表示されません。
  4. pdfCanvas基づいてCanvasインスタンス作成します
  5. Paragraphオブジェクトを作成し、太字にし、フォントスタイルを設定し、フォントサイズを設定します。
  6. これをCanvas追加するにはParagraph

    結果を以下に示します。

itext-0-3-4

PS:長方形にコンテンツを追加すると、他の状況が発生します。たとえば、追加されたコンテンツが長方形のサイズを超えています。追加されたコンテンツはどうなりますか?解決策はありますか?最初に自分で試すことができます。この問題については他の章で説明します。

おすすめ

転載: blog.csdn.net/u012397189/article/details/78953637