最近、ASP.NET アプリケーションの組み込みサーバーとして jsreport をセットアップしました。多くの苦労の末、.net jsreport.Client を使用して、次のコードを最も単純な形式で使用して、HTML レポートを生成し、ブラウザーに返すことができました。
善悪を問わず、既存の VB アプリケーションに jsreport を埋め込み、すべてのサンプル コードを C# から変換しました (私は C# の専門家ではありません)。
Imports System.Net
Imports System.Web.Http
Imports System.Net.Http
Imports System.Data
Imports System.Text.RegularExpressions
Imports System.IO
Imports System.Net.Http.Headers
Imports jsreport.Client
Imports jsreport.Client.Entities
<ActionName("ProcessReport")>
Public Async Function ProcessReport(ByVal reportID As Integer) As Threading.Tasks.Task(Of HttpResponseMessage)
Dim _reportingService = EmbeddedServer.ReportingService
Dim Report = Await _reportingService.RenderAsync(New RenderRequest() _
With {.template = New Template() _
With {
.recipe = "html",
.content = "<h1>Some content</h1>"
}
}
)
Dim ReportContent As String = New StreamReader(Report.Content).ReadToEnd()
Dim response = New HttpResponseMessage()
response.StatusCode = HttpStatusCode.OK
response.Content = New StringContent(ReportContent)
response.Content.Headers.ContentType = New MediaTypeHeaderValue(Report.ContentType.MediaType)
Return response
End Function
しかし、私の問題は、以下に示すように、phantom-pdf レシピを使用して PDF を作成できないことです。ReportContent は PDF ドキュメントですが、空で内容がありません。
With {
.recipe = "phantom-pdf",
.content = "<h1>Some content</h1>"
}
私が見たら注意してください:
App_Data >> jsreport-net-embedded >> データ >> temp
上記のコードを実行した後、レンダリングされたコンテンツを含む PDF がありますが、応答で返されません。