- ベストアンサー
XSL-FOをつかってPDF出力
JavaServletのCocoonを使ってPDF出力したことはあるのですが xalanのようにコマンドラインでXSLとXMLを使ってhtmlを書き出すように コマンドラインでXMLからPDFへ出力する方法はないのでしょうか。 たぶんできる・・と思うのですが。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- XMLをxalanでXSL-FOに変換する
book.xmlとbook.xslでbook.foに変換にxalanで実行しました。 >java org.apache.xalan.xslt.Process -in book.xml -xsl book.xsl -out book.fo ところが、以下のようにエラーが出ました。 Exception in thread "main" java.lang.ClassCastException: org.apache.xalan.res.XSLTErrorResources_ja at org.apache.xalan.xslt.Process.main(Process.java:209) 何が原因なのでしょうか?xalan-j_2_4_1のxalan.jarとxercesImpl.jarにはCLASSPATH設定をしています。 <book.xml> <?xml version="1.0" encoding="Shift_JIS" ?> <?xml:stylesheet type="text/xsl" href="book.xsl" ?> <書籍管理> <書籍情報 ID="1"> <書籍名>スタイルシート辞典 第2版</書籍名> <著者>安川英明</著者> <出版社>翔泳社</出版社> <価格>1800</価格> </書籍情報> ・・・ <書籍管理> 文字数が多くなってすべてbook.xslがかけませんでした。 テーブル形式で表示するようしたいのです。 <xsl:template match="書籍管理"><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> ・・・ <fo:table> <fo:table-column column-width="50mm"/> ・・・ <fo:table-body><fo:table-row><fo:table-cell><fo:block>書籍名</fo:block></fo:table-cell>・・・</fo:table-row> <xsl:apply-templates/> </fo:table-body> </fo:table> </fo:flow></fo:page-sequence> </fo:root></xsl:template> <xsl:template match="書籍情報"> <fo:table-row><xsl:apply-templates/></fo:table-row> </xsl:template> <xsl:template match="書籍名"> <fo:table-cell><fo:block><xsl:value-of select='.'/></fo:block></fo:table-cell> </xsl:template>
- ベストアンサー
- XML
- xsl-fo、tomcat cocoonでの印刷サイズについて
aspよりxmlファイルを作成し、xsl-foを使用して、tomcat cocoonにてPDFを作成し、Webページ上に表示するというシステムを作成しています 一覧表を作成しているのですが、400件くらいまではPDFを表示できますが、500件を超えると「ファイルが壊れています」とのエラーが表示されます PDFに変換できる最大サイズが原因なのでしょうか? 解決法をお知りのかたはお教えください
- 締切済み
- XML
- XSLで、XMLの空タグを制御したい。
値がないXML文書に、 <exsample /> こう書かれてしまうものを、 <exsample></exsample> このように出力したいのですが、出来ずでした。 以下は、私のやり方です。 ■ XSL <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xslt"> <xsl:output method="xml" encoding="Shift_JIS" indent="yes" xalan:indent-amount="4"/> <xsl:template match="/"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> ■ XML <?xml version="1.0" encoding="Shift_JIS"?> <root> <section> <category> <exsample1>value</exsample1> <exsample /> </category> </section> </root> ご教授、よろしくお願いいたします。
- ベストアンサー
- XML
- サーバー側で、XML,XSLを整形されたファイルを出力する方法?
XMLについて、理解が浅いのですが ローカルでは XMLファイルとXSLファイルがあれば、 sabcmdを使えば、変換できますが、 例えば、WEB(CGI:Perl)でサーバーに XML,XSLファイルが合った場合に どのようにクライアント(ブラウザ)に出力させれば良いのでしょうか? サーバー側でxmlファイルとxslファイルを sabcmdで変換させて、結果を読み込んで出力させるのが筋でしょうか? いまいち理解していなくて済みません。
- ベストアンサー
- Perl
- xalanが利用できません。
XSLプロセッサのxalanが利用できません。 C:\j2sdk1.4.0_01\jre\lib\ext に xalan.jarをおいているんですが、 本には、XalanをMSDOSプロンプトから起動するには、 org.apache.xalan.xslt.Process -in <XMLファイル名> -xsl <XSLスタイルシート名> -out <結果ファイル名> と書いてあるんですが、実行すると以下のエラーが出ます。 'org.apache.xalan.xslt.Process' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 だれか、対処方法の分かる方、教えて下さい。宜しくお願いします。
- ベストアンサー
- XML
- xsl:variableについて
お世話になります。xsl:variableについて質問です。 xsl:elementのnameを動的に指定したく、次のようにしました。 FireFox3 Beta 5にて、innerHTMLをtextareaに貼り付けて確認しました。 xml <testNode>aaa</testNode> xsl <xsl:variable name="el"><xsl:value-of select="name(.)"/></xsl:variable> <xsl:element name="$el">aiueo</xsl:element> こうすると、 aiueo のみ出力されました。希望する出力は <testNode>aiueo<testNode> です。 xsl:variableの使い方が間違っているのでしょうか?先程からずっとこれに悩んでいます。。。 よろしくお願いします。
- ベストアンサー
- XML
- FOPでPDF作成時の日本語表示の方法について
FOP(Fop-0.20.2、jpfop-0.20.2)でXMLをPDFに変換するのに以下のように実行しました。PDFは作成できたのですが開こうとすると「文書を作成するときにエラーが発生しました。修復できません」となってしまって、開くことができません。 userconfig.xmlにはMSGothicのフォントの設定をしました。 サンプルに入っているcid-fonts.foも試してみましたが、日本語の表示が##になってしまい表示ができません。 どのようにすれば、日本語がきちんと表示されるPDFが作成できるのでしょうか? よろしくお願いします。 set XERCES=lib\xerces-1.2.3.jar set XALAN=lib\xalan-2.0.0.jar set FOP=build\fop-0.20.2-jp.jar set BATIK=lib\batik.jar set FRAMEWORK=lib\avalon-framework-4.0.jar set LOGKIT=lib\logkit-1.0b4.jar set JIMI=lib\jimi-1.0.jar set USERCONFIG=conf\userconfig.xml java -cp %FOP%;%BATIK%;%XALAN%;%XERCES%;%FRAMEWORK%;%LOGKIT%;%JIMI% org.apache.fop.apps.Fop -c %USERCONFIG% -xml book.xml -xsl book.xsl -pdf book.pdf
- ベストアンサー
- XML
- xsl:chooseでこんなことがしたい
はじめまして。XML初心者です。 元データとなるXMLを読み込んでHTML変換する為のスタイルシートの作成を試みています。 xsl:chooseを使って以下のようなことがしたいのですが、 ご存知の方いましたら教えてください(xsl:chooseに拘りはありません) ・元データの基本構造 ------------------------------------------------------ <A> <B> <C1>てすと</C1> </B> </A> ------------------------------------------------------ ・やりたいこと <C1>の要素内容がNULLなら"★"マークを表示したい。 作ったスタイルシート ------------------------------------------------------ ~ <xsl:choose> <xsl:when test="C1=''">★</xsl:when> <xsl:otherwise><xsl:value-of selct="C1"/></xsl:otherwise> </xsl:choose> ~ ------------------------------------------------------ という感じで試したらうまく”★”マーク表示ができたのですが、対象のXMLデータに例外があり、 <C1>以下の要素がない場合があったのです。 この例外でも同様の”★”表示させたいのですが、うまい方法ご存知の方いましたら教えてください。
- ベストアンサー
- XML
- PerlのSAX利用中にXSL変換するには?
お世話になります。 Windows7上のActivePerlで、 use XML::SAX; use XML::LibXSLT; モジュールを利用中に、 start_elementイベント時のタイミングで、 取得したタグ文字を、 そのタイミングで、XSL変換することは可能なのでしょうか? 今回の目的は、 XSL変換した後の各値を、 配列などにセットできればOKという状況ですので、 もしSAXで無理でしたら、 たとえばDOMやXPathなどで、 use XML::LibXML; use XML::LibXSLT; モジュールを利用中に、 随時取得したタグ文字を対象として、 そのタイミングで、XSL変換して配列にセットできれば、 それでもOKという状況です。 PS: (ちなみに、 XSLファイル内で、 <xsl:output method="xml"> を指定してから、 XSL変換を実施すると、 まとめてXSL変換自体は、 一通り正常に行われているのですが、 なぜか、出力されたファイルは、 XML形式ではなくて、 text形式でファイルが出力されてしまう為、 (タグ文字が全て空白文字に置換されています) XMLパーサが一切利用出来なくなってしまい、困っています) 以上になります。 もしご存じの方がいらっしゃいましたら、 よろしくお願いします。
- ベストアンサー
- Perl
お礼
とりあえずサンプルでためしましたが % sh ./fop.sh foo.fo foo.pdf で簡単にいけました。 % sh ./fop.sh -xsl foo.xsl -xml foo.xml -pdf foo.pdf もいけますね。 書籍でみかけたことがなかったので参考になりました。 有り難うございます。
補足
素早い回答ありがとうございます。 CocoonもFOPを使っていたと思うのですがこれは盲点でした。 時間ができたらドキュメントに目を通してみます。