PDF
テンプレートを入力するのにiTextSharp
を使用しています。私が使っているデータはデータベースに保存されており、フォーマットはHTML
です。私の問題は、このテキストでAcroField
をロードしたときに改行を行いますが、太字ではありません。でもイタリック体であるです。私はすでにHtmlWorker
を使用しようとしましたが、すべての例ではHTML
をPDF
に変換するために使用されていますが、AcroField
をPDFテンプレートに設定しようとしています。どんな助けもありがとう。iTextSharpを使用してHTML書式のテキストでPDFテンプレートacrofieldを入力してください
5
A
答えて
9
フォーラムやiTextsharpのソースコードを見て、私は解決策を見つけた。 AcrofieldにHTML形式のテキストを入力する代わりに、私はColumnTextを使用しました。私はhtmlテキストを解析し、IElementsを段落に読み込みます。その後、段落をColumnTextに追加します。次に、フィールドの座標を使用して、Acrofieldの位置の上にColumnTextを重ねました。
public void AddHTMLToContent(String htmlText,PdfContentByte contentBtye,IList<AcroFields.FieldPosition> pos)
{
Paragraph par = new Paragraph();
ColumnText c1 = new ColumnText(contentBtye);
try
{
List<IElement> elements = HTMLWorker.ParseToList(new StringReader(htmlText),null);
foreach (IElement element in elements)
{
par.Add(element);
}
c1.AddElement(par);
c1.SetSimpleColumn(pos[0].position.Left, pos[0].position.Bottom, pos[0].position.Right, pos[0].position.Top);
c1.Go(); //very important!!!
}
catch (Exception ex)
{
throw;
}
}
次は、この関数の呼び出し例です。
string htmlText ="<b>Hello</b><br /><i>World</i>";
IList<AcroFields.FieldPosition> pos = form.GetFieldPositions("Field1");
//Field1 is the name of the field in the PDF Template you are trying to fill/overlay
AddHTMLToContent(htmlText, stamp.GetOverContent(pos[0].page), pos);
//stamp is the PdfStamper in this example
これを実行しているうちに実行したことの1つは、私のAcrofieldに定義済みのフォントサイズがあったということです。この関数はフィールドの上にColumnTextを設定するので、フォントの変更はその関数で行わなければなりません。ここでは、フォントサイズを変更する例です:
public void AddHTMLToContent(String htmlText,PdfContentByte contentBtye,IList<AcroFields.FieldPosition> pos)
{
Paragraph par = new Paragraph();
ColumnText c1 = new ColumnText(contentBtye);
try
{
List<IElement> elements = HTMLWorker.ParseToList(new StringReader(htmlText),null);
foreach (IElement element in elements)
{
foreach (Chunk chunk in element.Chunks)
{
chunk.Font.Size = 14;
}
}
par.Add(elements[0]);
c1.AddElement(par);
c1.SetSimpleColumn(pos[0].position.Left, pos[0].position.Bottom, pos[0].position.Right, pos[0].position.Top);
c1.Go();//very important!!!
}
catch (Exception ex)
{
throw;
}
}
私は、これは将来の誰かいくつかの時間とエネルギーを節約したいと考えています。
+0
を使用してについては、この記事を参照してください...このやや複雑なアプローチが働いていました。あなたの発見を投稿していただきありがとうございます! 'fields.SetFieldRichValue'は動作しません。私は今iTextSharp 5.4.2を使用しています。 –
0
私はここ数カ月の間にこのコードを微調整しなければなりませんでした。
public void Final(string text,string fieldName,string filename)
{
iTextSharp.text.pdf.PdfReader reader = null;
iTextSharp.text.pdf.PdfStamper stamp = null;
reader = new PdfReader(file path to template);
stamp = new PdfStamper(reader, new FileStream(path to new file, FileMode.CreateNew));
AcroFields form = stamp.AcroFields;
//get the position of the field
IList<AcroFields.FieldPosition> pos = form.GetFieldPositions(fieldName);
//tell itextSharp to overlay this content
PdfContentByte contentBtye = stamp.GetOverContent(pos[0].page);
//create a new paragraph
Paragraph par = new Paragraph();
//parse html
List<IElement> elements = HTMLWorker.ParseToList(new StringReader(text), null);
for (int k = 0; k < elements.Count; k++)
{
par.Add((IElement)elements[k]);
}
//create a ColumnText to hold the paragraph and set position to the position of the field
ColumnText ct = new ColumnText(contentBtye);
ct.SetSimpleColumn(pos[0].position.Left, pos[0].position.Bottom, pos[0].position.Right, pos[0].position.Top);
ct.AddElement(par);
ct.Go();
stamp.Close();
reader.Close();
}
関連する問題
- 1. キリル文字の値(itextsharp)を持つPDFテンプレートのフィールドを入力してください
- 2. PDFからPDF417のバーコードを抽出し、iTextSharpを使用してそのデータを入手してください
- 3. iTextSharpはiTextSharpを使用してPDFファイル
- 4. Rseleniumを使用してポップアップボックスにテキストを入力してください
- 5. javascriptを使用してダイアログボックスにテキストを入力してください
- 6. PDF形式のiTextを使用してPDF形式のJavaFx html形式のテキスト
- 7. Outlook専用のテキストを入力してください
- 8. テキストと表を空白で入力してください/入力してください
- 9. フィールド識別子にITEXTを使用してPDFでPDF-417を入力してください
- 10. JavaScript:値を入力してテキストを入力してください
- 11. フォームライズ - 入力中にテキストを入力し、テキストを繰り返して入力してください。
- 12. LocalDateを使用して入力してください
- 13. 同じクラスのWatirでテキストを入力してください
- 14. PHPのクラスフィールドを使用してHTML入力タイプを入力してください
- 15. フィールドにPDFを入力してください
- 16. pdfテキストフィールドにプログラムで入力してください
- 17. フィルターでテキストを入力してください。
- 18. 動的JavaScriptの値をhtmlテキストに入力してください。
- 19. iTextSharpを使用してPDFに画像を追加し、適切に拡大縮小してください。
- 20. 私のコードを確認してください。トリガーhtmlボタンをクリックして入力してください
- 21. Html、PHP、Javascriptで小数点を入力してください
- 22. itextsharpを使用してPDFからテキスト段落を取得
- 23. itextsharp xmlworkerを使用してhtmlからpdfに変換し、テキストを垂直方向に書き込む
- 24. 特定の形式(行列)で入力してください
- 25. Itextsharp PDFをItextsharpを使用してノルウェーで生成されたPDFは、いくつかのテキストの後に下のパディングを追加し
- 26. itextsharpを使用してHTMLをPDFに変換
- 27. 空のhtml列テーブルを入力してください
- 28. Facebook DebuggerのHTMLバージョンを入力してください
- 29. PHPWordテンプレートにRTLテキストを正しく挿入してください
- 30. PDFBoxを使用してPDFフォームに記入してください
あなたは必ず助けたリッチテキストフィールドhttp://stackoverflow.com/a/4412527/231316 –