印刷サービスの実装
このトピックでは、 Applications Managerを使用してセットアップできる印刷サービスのサンプル実装について説明します。
以下の図と手順は、印刷サービスの実装方法を説明しています:


- ユーザーがドキュメント (領収書など) の印刷を選択したときにユーザー・インターフェースからの入力を受け入れるサービス定義を作成します。
- 入力を XSL 変換プログラムに渡して、入力を API への入力として提供できるように XML 形式に変換します。 XSL 変換プログラムのサンプル・コードは以下のとおりです。
このサンプル・コードでは、XSL 変換プログラムの出力は、<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="Order"> <Page PageNumber="1" PageSize="4" PaginationStrategy="GENERIC" Refresh="Y" > <API Name="getOrderList" > <Input> <Order> <xsl:attribute name="CallingOrganizationCode"> <xsl:value-of select="@OrganizationCode" /> </xsl:attribute> </Order> </Input> <Template> <OrderList> <Order OrderNo='' > <OverallTotals GrandTotal=''/> </Order> </OrderList> </Template> </API> </Page> </xsl:template> </xsl:stylesheet>getOrderListAPI を内部的に呼び出すgetPageAPI に渡されます。 - API の出力を XSL 変換プログラムに渡して、出力を HTML 形式に変換します。 変換プログラムのサンプル・コードは以下のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8" indent="yes"></xsl:output> <xsl:template match="/"> <html> <Strong>Order List For Matrix</Strong> <body> <style> table, th, td { border: 1px solid black; } th, td { padding: 5px; text-align: left; } </style> </body> <xsl:apply-templates select="Page/Output/OrderList" /> <xsl:apply-templates select="Page/Output/OrderList/Order" /> </html> </xsl:template> <xsl:template match="Page/Output/OrderList"> <table> <thead> <tr> <th>OrderNo</th> <th>Order Price</th> </tr> </thead> <xsl:for-each select="Order"> <tr> <td class="header-font"> <xsl:value-of select="@OrderNo" /> </td> <td> <xsl:value-of select="OverallTotals/@GrandTotal" /> </td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> - HTML 出力を XSL 変換プログラムに渡して、
iscPrintサービスで受け入れられる形式に変換し、ブラウザーに印刷プレビュー・ダイアログを表示します。
サンプル実装
iscPrint サービスの理解を深めるために、 <wscdev.war>/ngstore/store/views/samples/ フォルダー内のサンプル・ファイルを参照できます。