2009-07-31 24 views
0

既存のPDFテンプレートにテキストブロックを追加しようとしています。PDF文書に無制限のテキスト領域を追加する

左余白と右余白を設定できるようにしたいが、テキスト量は不定であるため、入力テキストに対してボックスを展開する必要があります。

私はテンプレートにテキスト領域を配置してテキストを挿入することができましたが、この方法では、テキスト領域の最終行位置を明示的に設定する必要があります。

はここで、これまで(pdfStamperは、事前に定義されている)私が持っているコードです:

BaseFont bf = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); 
Font font = new Font(bf, 11, Font.NORMAL); 
Phrase unicodes = new Phrase(reports.StringText, font); 
PdfContentByte over; 
over = pdfstamper.GetOverContent(1); 
ColumnText ct = new ColumnText(over); 
ct.SetSimpleColumn(unicodes, 19, **80**, 575, 335, 10, Element.ALIGN_LEFT); 
ct.Go(); 

答えて

0

OK、私は(動作しない)他のソリューションで行くを持っていました。ここには次のものがあります。

PdfPTable table = new PdfPTable(1); 
string text = "blab balba b balbala "; 
string finalText = "TestTitle1\r\n\r\n"; 

for (int i = 0; i < 200; ++i) 
{ 
    finalText += text; 
} 
table.AddCell(finalText); 
table.TotalWidth = 300; 
table.WriteSelectedRows(0, -1, 20, 325, pdfstamper.GetUnderContent(1)); 

これは、所望の幅でテーブルを希望の場所に置きます。しかし、あまりにも多くのテキストがそのページに収まる場合、私はそれを次のページに拡大したい - それはそうではない。私はWriteSelectedRowsキャンバス(pdfstamper.GetUnderContent(1)pdfstamper.GetUnderContent(2))のオプションの配列を渡そうとしましたが、これはちょうどIndex was outside the bounds of the array例外をスローしますが、それがうまくいくとしても、私が望むことをしているかどうかはわかりません。

またはこの1があります:

PdfContentByte over; 
over = pdfstamper.GetOverContent(1); 
over.BeginText(); 
over.SetTextMatrix(20, 300); 
over.ShowText(report.AutonomyText); 
over.EndText(); 

しかし、テキストだけのページの横に消灯します。