Grails レンダリング プラグイン/サービスを使用して PDF を作成しています。PDF データは、ブラウザでプレビューできます (その後、「ダウンロード」ボタンをクリックして PDF を取得します)。PDF 用とブラウザ用のテンプレートの一部を 1 つのテンプレートに統合できます。そのため、メイン テンプレートからのみ含まれ、後でブラウザまたはレンダリング サービスに送信されます。
残念ながら、問題があります: いくつかの HTML タグ (ブラウザに送信されるテンプレートで使用される や など) に ID 属性が必要です。しかし、テンプレートに送信される HTML タグに ID 属性がある<tr>
場合<td>
NullPointerException で失敗します。
Stacktrace follows:
java.lang.NullPointerException
at com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.startElement(SAX2DOM.java:211)
at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:204)
at com.sun.org.apache.xml.internal.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:277)
at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startElement(ToXMLSAXHandler.java:646)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:636)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:707)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:189)
at org.xhtmlrenderer.resource.XMLResource.load(XMLResource.java:75)
at grails.plugin.rendering.document.XhtmlDocumentService.createDocument(XhtmlDocumentService.groovy:55)
at grails.plugin.rendering.document.XhtmlDocumentService.createDocument(XhtmlDocumentService.groovy:43)
at grails.plugin.rendering.document.XhtmlDocumentService.createDocument(XhtmlDocumentService.groovy:38)
at grails.plugin.rendering.RenderingService.render(RenderingService.groovy:34)
at grails.plugin.rendering.RenderingService.render(RenderingService.groovy:33)
at MyController$_closure4$$ENw2Jz9v.doCall(MyController.groovy:129)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
SAX2DOM のデバッグを試みたところ、ID 要素がこの例外の原因であることがわかりました。以前にこの問題を経験した人はいますか? フィードバックは大歓迎です。