私は 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 NAME</text>
なぜこれを行うのか、またはこのSVGにロードする必要がある他の方法があるのか どうか、私は一生理解できません。誰でも洞察を提供できますか?