5

iTextSharp を使用して、ユーザーが自分のコンピューターに保存できるようにその場で pdf ファイルを作成しています。現在、iTextSharpが開き、データベースからフィールドを設定し、ユーザーのコンピューターに保存するいくつかのpdfテンプレートがありました。

ユーザーがリッチ テキスト エディター (NiceEdit) を使用して入力する本文フィールドにリッチ コンテンツを追加する際に、実際に問題が発生しています。箇条書き、太字、斜体、フォントの色、サイズなど、非常にシンプルなオプションが含まれており、必要なものはすべて揃っています。考えられるすべてのオプションを試しましたが、何も役に立たないようです。

PdfReader reader = new PdfReader(originalReport.ToString());

PdfStamper stamper = new PdfStamper(reader, new FileStream(report, FileMode.Create));
AcroFields fields = stamper.AcroFields;

fields.SetFieldProperty("body", "setfflags", PdfFormField.FF_RICHTEXT, null);
fields.SetFieldRichValue("body", bodyValue.ToString());

fields.GenerateAppearances = false;

フォームをフラット化しようとしましたが、フィールドがまったく表示されません。フォームを平坦化しなかった場合、フィールドにはコンテンツが表示されますが、フォーマットはまったくありません (新しい行も削除されます)。SetFieldRichValue の代わりに SetField オプションを使用すると、html コンテンツの文字列が取得されます。

また、pdfテンプレートフィールドでacrobat proの「リッチテキストを許可」できるようにしようとしましたが、これにより例外が発生し、pdfが停止します:)

また、ユーザーのタイプに依存するテンプレートを使用しているため、SetField オプションが使用されていることに注意してください。ドキュメントを最初から作成しないため、使用した場合に取得できる段落は使用しません。 HTMLWorker を作成し、ドキュメントに追加するだけです

何か助けてください。

4

0 に答える 0