3

私は PDF を生成しようとするのが初めてで、AbcPdf6 を使用して PDF ジェネレーターの 1 つを再作成しようとするタスクを与えられました。古いシステムは不明なライブラリを使用していたため、更新が困難/不可能でしたが、SVG ファイルから PDF を抽出しました。古いシステムでは、「テキスト」ノードを取得し、それらの innerhtml を変更してから、それらを PDF に吐き出すことができました。

私が今抱えている問題は、AbcPdf では、今読んだドキュメントの要素を取得する唯一の方法は、GetText() を使用することです。しかし、これを使用して SVG ドキュメントを読み取ると、すべての ID が取り除かれ、変更が必要な ID を見つけることができなくなります。誰にも理由はありますか?

問題の例を次に示します。

SVG が入ります:

<text id="DevelopmentName" transform="matrix(1 0 0 1 25 59.1519)" 
font-family="'Verdana-Bold'" width="400" font-size="36">DEVELOPMENT NAME</text>

C#:

Doc pdfDoc = new Doc();
pdfDoc.Read(oContext.Server.MapPath(path));
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(new StringReader(pdfDoc.GetText("SVG")));

この時点で、xmlDoc.GetElementById("DevelopmentName") を実行して上記のノードを返すことができるはずですが、null が返されます。pdfDoc.GetText("SVG") が返すものを調べると、テキスト ノードに次のように表示されます。

<text xml:space=\"preserve\" x=\"25\" y=\"59.1519\" font-size=\"36\" 
font-family=\"Verdana-Bold\" textLength=\"429.408\" >DEVELOPMENT&#160;NAME</text>

なぜこれを行うのか、またはこのSVGにロードする必要がある他の方法があるのか​​ どうか、私は一生理解できません。誰でも洞察を提供できますか?

4

0 に答える 0