6

text/html から PDF を作成するために iTextSharp(C# iText port) を使用しています。私のテキストのほとんどは、右から左への言語であるヘブライ語で書かれています。

私の問題は、PDF が RTL 言語を逆に表示することです。そのため、数字や英語のテキストを逆にすることなく、RTL テキストのみを逆にする方法で文字列を逆にする必要があります。fribidi が Linux でそれを可能にしていることは理解していますが、Windows でこの問題の解決策を見つけることができませんでした。

これを自動的に行う iTextSharp の代替案 (存在する場合) など、提案を歓迎します。

4

4 に答える 4

8

iTextSharpを正しく使用してRTLテキストを表示するには:

  • フォントのエンコーディングをに設定する必要がありますBaseFont.IDENTITY_H
  • 次に、、RunDirectionなどをサポートするコンテナ要素を使用する必要があります。これで、それらを設定できます。PdfPCellColumnTextelement.RunDirection = PdfWriter.RUN_DIRECTION_RTL
于 2011-08-13T05:11:26.150 に答える
1

PDFCreatorは、ほぼすべての Windows アプリケーションから PDF ファイルを作成できる無料のツールです。Windows プリンタ ドライバとしてインストールされるため、印刷機能を持つ Windows プログラムで使用できます。

入力を単純なテキスト文字列として処理して印刷することができ、printメニュー オプションをNotepad使用して正しい PDF を作成することができます。

C#右から左への印刷をもう少し深く掘り下げたい場合は、呼び出しStringFormatFlags.DirectionRightToLeftで文字列形式を使用しGraphics.DrawString()ます。

からのスニペットPrintPage Event Handler:

lineFmt = new StringFormat(StringFormatFlags.DirectionRightToLeft);
e.Graphics.DrawString(textToPrint, font, Brushes.Black, startX, ypos, lineFmt);
于 2009-11-03T14:42:43.620 に答える
1

文字列を表のセルに入れるだけです:

PdfPCell cell1 = new PdfPCell(new Phrase("מספר",font));
cell1.HorizontalAlignment = 2; //0=Left, 1=Centre, 2=Right
于 2010-02-01T17:39:10.210 に答える