本当にばかげたものが必要ですが、行き詰まっています。基本的に、gsp ページをレンダリングし、レンダリングをサーバー側で web-app/ の下に作成したフォルダー内にローカルに保存する必要があります。
基本的にこれの出力:
render(view: "report-test")
web-app/report/ にあるフォルダー内の例 report-test.html としてファイルに保存する必要があります。
良いアドバイスはありますか?
どうもありがとう
更新 - 説明 皆さん、どうもありがとうございました。私がやろうとしていることを説明させてください。うまくいけば、より良い解決策があります。私はまだgrailsの初心者です。PDF の作成に役立つ print-css および Price ソフトウェアを使用して、レポートを印刷しようとしています。だから私の考えは、gspを使用してHTMLファイルを動的に作成し、print-cssルールに従ってサーバー側にローカルに保存し、pdfファイルを作成してpdfファイルを元に戻すコマンドを(価格で)実行することでしたブラウザ。
更新 css を使用する必要がありますが、html 内で使用するのではなく、Price ソフトウェア コマンドの一部として使用する必要があります。http://www.princexml.com/ したがって、基本的にレンダリングされた gps は、css が適用されていない html であり、コマンドを実行して pdf を作成するときに、適用する css ファイルを指定します。例として:
prince -s pdf-styles.css book.html builds/book.pdf
更新/2 - 閉じる
shutgunNinja に感謝します。以下の投稿で彼の疑似コードを参照してください。ここで使用するコードは次のとおりです。
class YourController {
def printHtml() {
render(view: "report-test")
}
def buildReport() {
String basePath = applicationContext.getResource("/").getFile().toString()
def url = new URL("http://localhost:8080/PrjName/report/printHtml)
def data = url.getText()
def file = new File("${basePath}/reportFolder/report.html")
file.createNewFile()
FileUtils.writeStringToFile(file, data)
}
}
以前に shutgunNinja が書いたように、URL を呼び出して html ファイルを取得する buildReport() を呼び出します。いくつかのアドバイスを追加したいと思います。
- Spring Security などのセキュリティ フレームワークを使用している場合は注意してください。認証なしでそのページを呼び出せる必要があります。そうしないと、要求したファイルの代わりにログイン ページが表示されます。
- web-appディレクトリにアクセスするための正しいアドレスを保存したベースパス変数を追加します