編集:より良い説明: この質問に報奨金を設定する前に、何が必要かをより明確に述べたいと思います:
印刷可能なドキュメントを生成するための .NET ライブラリが必要です。ユーザーは、自分のアプリケーションまたは外部ツール (Adobe Acrobat Reader など) を使用して表示されるのとまったく同じドキュメントを印刷できる必要があります。PDF文書を生成するためのライブラリである必要はなく、上記の条件を満たす文書形式であれば何でも構いません。
次のシナリオをサポートするには、ライブラリが必要です。
シナリオ 1:
- いくつかのフォントと色でテキストを作成します。
- このテキストを印刷する場合は、図書館に幅を尋ねます。
- 2. からの情報に基づいて、このテキストの位置 (ページ上の [X,Y] 座標) を計算し、ページ上のこの位置に印刷するためのライブラリを用意します。
シナリオ 2:
- 上付き文字の一部を含むテキストを作成します。テキストのすべての部分 (通常および上付き文字) は、同じ (ただし可変) フォントです。
- このテキストを印刷した場合の幅を図書館に尋ねます。通常のテキストと上付き文字の間のカーニングも考慮した正解が得られます。
- このテキストを印刷するページ上の位置 ([X,Y] 座標) を計算します (ステップ 2 の幅を使用)。図書館にこの位置に印刷してもらいました。前の手順でライブラリから返された幅とまったく同じページに印刷されます。
2 番目のシナリオの注意:上付き文字の一部を含むテキストがあります - 例AAA{v-superscript text}BBB
({}
中かっこ内のテキストは上付き文字)。ライブラリは、正しいカーニングを使用してこのテキストを印刷できる必要があります。右カーニングを使用しない場合、最後の上付き文字と最初の上付き文字の間には、最後の上付き文字と最初の上A
付き文字の間に同じギャップがあります。ユーザーにとっては、上付き文字と上付き文字の間にスペースがあるように見えますが、最後の上付き文字の後にはスペースがありません。そのため、テキストは見苦しくなります。ライブラリがこれを正しく処理する場合、一部が上付き文字であるという仕様で、テキスト全体を一度に印刷する方法があります。次に、通常のテキストと上付き文字の間で正しいカーニングを使用します。v
t
B
A
v
AAA{v-superscript text}BBB
シナリオ 3:
- 線、円、塗りつぶされた円、文字、およびベジェ曲線で構成される画像を、ページ内の正確な位置に印刷したいと考えています。線と円の幅を指定する必要があります。すべての形状は、ピクセル精度で印刷する必要があります。
ライブラリは無料であり、GPL ではありません (LGPL は問題ありません)。必要なことを実行できるものはありますか? iTextSharp (AGPL ではなく LGPL であるバージョン 4.1.6) で実行できますか? それとも Fixed document でしょうか? ご提案ありがとうございます。
元の質問:
ユーザーのために .NET (C#) アプリケーションで複雑なドキュメントをタイプセットする必要があります。これらのドキュメントの主な用途は印刷です。
ドキュメントには、テキストと生成された単純なグラフィックスが含まれます。テキストとグラフィックのレイアウトは複雑で、計算する必要があります (つまり、ドキュメント内のテキストの位置はコードで制御する必要があり、選択したライブラリによって自動的に行われることはありません)。
私のAPI要件は次のとおりです。
- 指定された文字列とテキストが表示される指定されたフォントの正確な幅を返す関数
- テキストをページ上の正確な位置に配置する機能
- 上付き文字で一部を含むテキストを持っている
- 上付き文字の一部を含むテキストの正確な幅を取得する関数
- 写真を追加する機能、または単純なグラフィックを描画するためのさらに優れたオプション (指定された太さの線、指定された半径/直径の塗りつぶされた円)
PDF ドキュメントを作成するためのライブラリである必要はありません。他の「見たままが印刷される」ドキュメント形式でもかまいません。そのようなドキュメントを表示できる WPF コンポーネントがあれば有利です。iTextSharp があることは知っていますが、iTextSharp で要件を達成するのは簡単ではありません。もちろん、上記の要件を満たす一部の PDF 生成ライブラリも優れたソリューションになります。
詳細やより明確な説明を提供できることも嬉しく思います。