0
我使用下面的代碼將我的JavaFx應用程序中的ScrollPane的內容保存爲PDF文件。將JavaFX ScrollPane內容保存爲PDF文件
button.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent event) {
File pdfFile = fileChooser.showSaveDialog(primaryStage);
try {
BufferedImage bufImage = SwingFXUtils.fromFXImage(scrollPane.snapshot(new SnapshotParameters(), null), null);
FileOutputStream out = new FileOutputStream(new File("../temp.jpg"));
javax.imageio.ImageIO.write(bufImage, "jpg", out);
out.flush();
out.close();
com.itextpdf.text.Image image =com.itextpdf.text.Image.getInstance("../temp.jpg");
Document doc = new Document(new com.itextpdf.text.Rectangle(image.getScaledWidth(), image.getScaledHeight()));
FileOutputStream fos = new FileOutputStream(pdfFile);
PdfWriter.getInstance(doc, fos);
doc.open();
doc.newPage();
image.setAbsolutePosition(0, 0);
doc.add(image);
fos.flush();
doc.close();
fos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
} });
在scrollpane中,我有一個很長的VBox,其中包含幾乎40-50個標籤。因此,此代碼最初將其保存爲jpg文件,然後將其添加到pdf文件中。
最初創建temp.jpg時,由於其長度的緣故,jpg文件看起來非常薄。它應該放大以查看實際內容。
當pdf文件被寫入時,它是空白的,只是它很長,因爲它實際上已經轉換爲PDF文件。
任何人都可以幫我解決這個問題嗎?用它的實際大小/比例將ScrollPane的快照轉換爲PDF?