DITA OpenToolkit1.7とRenderXXEPを使用してDITAマップをPDFに変換しています。DITAトピックでは、製品名はconrefsを使用して挿入されます。私の製品名の1つはかなり長いです。テーブル内で使用すると、レイアウトの問題が発生しました。したがって、conrefを介して再利用されるフレーズにソフトハイフンを挿入しました。
<ph id="PD_FineReader2Comp">DOXiS4 FineReader2­Components</ph>
これは生成されたページではうまく機能しますが、ソフトハイフンの代わりに記号が表示されるブックマークで問題が発生します。
明らかに、これはエンコーディングの問題です。UTF-8文字はPDFコンテンツでは適切に処理されているようですが、以下のソースによると、一部のPDF-16文字を使用できるPDFブックマークでは処理されていません(ただし、どれを使用できるかわかりませんでした)。
- http://partners.adobe.com/public/developer/en/pdf/PDFReference.pdf
- http://www.setasign.de/support/tips-and-tricks/use-unicode-in-string-values/
DITA Open Toolkitは、次のコードフラグメントを使用してトピックタイトルからブックマークを作成しているようです。
<fo:bookmark>
<xsl:attribute name="internal-destination">
<xsl:call-template name="generate-toc-id"/>
</xsl:attribute>
<xsl:if test="$bookmarkStyle!='EXPANDED'">
<xsl:attribute name="starting-state">hide</xsl:attribute>
</xsl:if>
<fo:bookmark-title>
<xsl:value-of select="normalize-space($topicTitle)"/>
</fo:bookmark-title>
<xsl:apply-templates mode="bookmark"/>
</fo:bookmark>
XSLスタイルシートにはバージョン2.0があります。
問題のある文字を削除するオーバーライドを作成したいと思います。これどうやってするの?
- エンコーディングの問題を適切に解決することは可能ですか?(おそらく不可能です)。
- スペース、タブ、改行、およびキャリッジリターン以外の空白を削除するXSL関数または属性はありますか?
- または、ソフトハイフンの特別な処理が必要ですか?