2016-04-21 37 views
0

テーブルビューを横向きのA4形式で印刷したいと思います。 また、このA4ページでtableViewをスケールアップしたいと思っています。PrinterJobでJavaFXテーブルビューを印刷

私はこれを行うために管理:

Printer printer = Printer.getDefaultPrinter(); 
PrinterJob printerJob = PrinterJob.createPrinterJob(); 


//set layout to A4 and landscape 
PageLayout pageLayout = printer.createPageLayout(Paper.A4, 
     PageOrientation.LANDSCAPE, Printer.MarginType.DEFAULT); 

printerJob.getJobSettings().setPageLayout(pageLayout); 

System.out.println(pageLayout.getPrintableWidth()); 
System.out.println(pageLayout.getPrintableHeight()); 

final double scaleX = pageLayout.getPrintableWidth()/_menuPlanTable.getBoundsInParent().getWidth(); 
final double scaleY = pageLayout.getPrintableHeight()/_menuPlanTable.getBoundsInParent().getHeight(); 
_menuPlanTable.getTransforms().add(new Scale(scaleX, scaleY)); 

if(printerJob.showPrintDialog(_controlStage) && printerJob.printPage(_menuPlanTable)) { 
     _menuPlanTable.getTransforms().remove(getTransforms().size()); 
     printerJob.endJob(); 
} 
else{ 
     _menuPlanTable.getTransforms().remove(getTransforms().size()); 
} 

結果は次のようになります。 IMAGE

あなたは私のテーブルが切断され、結合右が左よりたくさん大きいされていることをはっきりと見ることができます。
tipps?

答えて

0

チェックこの答えは、これはのJavadocから hardware limitation issue

を助けるかもしれない:

法的何であるかのマージンの値を知る必要があり、クライアントが最初HARDWARE_MINIMUMマージンを使用してレイアウトを取得する必要があります。指定されたプリンタがレイアウトをサポートできない場合

、それがサポートされる構成

編集に戻ってレイアウトを調整します:私は同じ問題を抱えていたとthis Solution

Result私のために素晴らしい仕事しました私は得た。

関連する問題