Class PdfRenderer
java.lang.Object
io.leandev.appfuse.report.internal.pdf.PdfRenderer
- All Implemented Interfaces:
ReportRenderer
PDFBox 實作的 ReportRenderer
兩階段輸出(REP-03 契約「輸出語意」):產生階段排版、繪製並把完整 PDF 序列化到暫存檔;最後一次取消檢查通過後,
寫出階段才把暫存檔複製到 out。產生階段的任何失敗或取消都不寫出任何位元組。
-
Constructor Summary
ConstructorsConstructorDescriptionPdfRenderer(ReportFonts fonts, TempStorage storage) PdfRenderer(ReportFonts fonts, TempStorage storage, Runnable afterSerialization) -
Method Summary
Modifier and TypeMethodDescriptionrender(ReportDocument document, RenderOptions options) 產生到 renderer 的暫存檔並回傳產物render(ReportDocument document, OutputStream out, RenderOptions options) 輸出文件
-
Constructor Details
-
PdfRenderer
-
PdfRenderer
- Parameters:
afterSerialization- 序列化完成、最後一次取消檢查之前呼叫;供測試模擬序列化期間的取消
-
-
Method Details
-
render
Description copied from interface:ReportRenderer輸出文件- Specified by:
renderin interfaceReportRenderer- Parameters:
document- 文件out- 輸出目的地;不會被關閉options- 單次 render 的選項- Returns:
- 結果,只含 INFO 與 WARNING diagnostic
-
render
Description copied from interface:ReportRenderer產生到 renderer 的暫存檔並回傳產物
回傳的 artifact 由呼叫者擁有,必須關閉(或交給會接手 ownership 的 helper,例如
StoredReports.save(FileStorage, String, ReportArtifact)與ReportResponses);關閉後刪除暫存檔。失敗或取消時不回傳 artifact,暫存檔已刪除。- Specified by:
renderin interfaceReportRenderer- Parameters:
document- 文件options- 單次 render 的選項- Returns:
- 完整、可讀取的產物
-