1

InDesignで使用されるIDMLファイルに取り組んでいます。特別な指示を挿入する際に問題が発生しています。RightIndentTabをIDMLファイルに埋め込む必要があります。同じもののUnicodeはU+0008です。このユニコードはXML仕様でサポートされていないため、これを追加しようとするとエラーが発生します。

さらに詳しく調べてみると、IDMLには挿入可能な特別な処理命令があります。これを追加すると、RightIndentシンボルの前に改行が発生するという問題があります。デバッグ時に、コンテンツ要素が次のようになっていることがわかりました

             <Content>
                <?ACE 8?>9731396</Content>

これはXElementであり、ToString()を呼び出すと\ r\nが表示されます。XmlWriterも使ってみました。

私が欲しいのは次のようなXElementオブジェクトです

             <Content><?ACE 8?>9731396</Content>

よろしくお願いします!

4

1 に答える 1

1

.NETを使用してIDMLに処理命令を追加するのとまったく同じ問題が発生しました。大きな空白をオフにしても、InDesignがテキストの一部として扱う改行を取得しました。

私が見つけた唯一の解決策は、ファイルをXMLとして保存し、それをテキストドキュメントとして開き、正規表現を使用して.>\r\n<?だけに置き換えることです><?。それは醜くて不器用ですが、それは機能します-私は手に正規表現を持っていませんが、あなたはそれをかなり早く理解することができるはずです。

ただし、XMLにUnicode文字を追加するのに問題はありませんでした。&#x0008;XmlWriterエンコーディングを使用し、Unicodeを使用するように設定します。例については、ここを参照してください:http: //bytes.com/topic/net/answers/176665-how-write-unicode-using-xmlwriterこれは以下を推奨します:

XmlTextWriter myWriter = new XmlTextWriter( fileStream,
new System.Text.UnicodeEncoding( false, false) );
于 2012-11-16T16:59:58.350 に答える