モデルベースのウィンドウを印刷するためにXML->XHTL変換を使用しています。私がしていることは、モデルを整形式のxmlに変換することです。そして、それにxslを適用します。
モデルのいくつかの属性には大きなテキスト値があります。このテキストには、「<」および「>」が含まれる場合があります。このようなテキストが表示される場合は常に、「<」と「>」の間のテキストはスキップされます。たとえば、私のテキストが " This <item name> belongs to me.
"の場合、取得する出力は" This belongs to me.
"<アイテム名>はスキップされます。属性の値に含まれるこれらの文字は、xmlタグの開始と終了としても識別されるようです。それらは&lt;に変換されます および&gt;。したがって、値は出力されません。
誰か教えてもらえますか、出力の属性の値に山かっこを保持するにはどうすればよいですか?どんな助けでも大歓迎です。
ありがとう、Sahitya
PS-私はxml処理とxslの初心者でもあります。
CDataセクションを含むXML: " <descriptionText><![CDATA[This <item name> belongs to me.]]></descriptionText>
"
XSLの抜粋:
<tr><td><xsl:value-of select="descriptionText" disable-output-escaping="yes"/></td></tr>
expectedOutput:
This <item name> belongs to me.
実際の出力:
This belongs to me.
編集:
アプリケーションレベルで印刷機能を実装するために、私はWebFrameLoadDelegateとNSPrintOperationのAPIを使用しています。Webビューが正常に作成されると、デリゲートAPI、
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame;
プリンタクラスの、が呼び出されます。以下のこのAPIの実装を参照してください。
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
NSPrintInfo *pi = [NSPrintInfo sharedPrintInfo];
if ([NSPrintInfo defaultPrinter])
{
[pi setPrinter:[NSPrintInfo defaultPrinter]];
}
[pi setTopMargin:5.0];
[pi setLeftMargin:5.0];
[pi setBottomMargin:10.0];
[pi setRightMargin:5.0];
[pi setHorizontalPagination:NSFitPagination];
[pi setVerticalPagination:NSFitPagination];
[pi setVerticallyCentered:YES];
[pi setHorizontallyCentered:YES];
[[self.webView preferences] setAutosaves: NO];
[[self.webView preferences] setShouldPrintBackgrounds:YES];
NSPrintOperation *printOperation = [[[self.webView mainFrame] frameView] printOperationWithPrintInfo:pi];
[printOperation runOperationModalForWindow:self.window delegate:self.delegate didRunSelector:self.callbackSelector contextInfo:nil];
}