当前位置: 首页 > 知识库问答 >
问题:

在JavaFX2.2中拍摄场景或场景的一部分的屏幕截图

薛栋
2023-03-14

WritableImage快照=obj.getScene().snapshot(null);

现在我想在一个pdf文件上输出这个屏幕截图。我已经使用Apache pdfbox库通过以下代码将文本输出到pdf:

PDDocument单据=空;PDPage页=空;

   try{
       doc = new PDDocument();
       page = new PDPage();

       doc.addPage(page);
       PDFont font = PDType1Font.HELVETICA_BOLD;

       PDPageContentStream content = new PDPageContentStream(doc, page);
       content.beginText();
       content.setFont( font, 12 );
       content.moveTextPositionByAmount( 100, 700 );
       content.drawString("Hello World");

       content.endText();
       content.close();
      doc.save("PDFWithText.pdf");
      doc.close();
    } catch (Exception e){
    System.out.println(e);
    }

还有,如何对场景内的某些节点进行截图呢?

谢谢

共有1个答案

百里沛
2023-03-14

拍摄一个场景的截图

您的问题中已经有了这方面的工作代码。

WritableImage snapshot = stage.getScene().snapshot(null);

截图一个。JavaFX2.2中场景的...部分

WritableImage snapshot = node.snapshot(null, null);

现在我想在一个pdf文件上输出这个屏幕截图。当使用WritableImage而不是使用基本的字符串文本时,我如何做到这一点?

我没有使用您在问题中提到的pdfbox工具包。该工具包可能使用基于awt的图像,而不是JavaFX图像,因此需要使用SwingFXUTILS.FromFXImage将JavaFX快照图像转换为awt缓冲图像。

要真正将awt编码的图像转换成pdf文件,请参阅pdfbox工具包的文档。Kasas给PDFBox文档添加BufferedImage的回答似乎为这个操作提供了一个代码段。看起来相关的代码(而且我还没有尝试过这个)是:

PDPageContentStream content = new PDPageContentStream(doc, page);
PDXObjectImage ximage = new PDJpeg(doc, bufferedImage);
content.drawImage(ximage, x, y);
 类似资料:
  • 问题内容: 我有一个使用javafx Scene来渲染某些东西的应用程序,并且我想将该渲染结果放入我在Javafx中创建的某些GUI中。我该怎么做? 基本上,有一些容器可以放入场景,然后将其放入GUI。 抱歉,如果是新手问题,我是JavaFX的新手 问题答案: 该场景只有一个顶级父节点作为根。您可以获取它并放入另一个场景。

  • 接口说明 获取场景的分屏信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/scene/v1.0.0/getSplitScreenInfo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN mainSceneI

  • 接口说明 获取场景的分屏信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/scene/v1.0.0/g

  • 我找了很多,但找不到解决办法。这里有一个类似的问题,在java中有一个可能的解决方案。 Python中有类似的解决方案吗?

  • 我在这里阅读了几个与我的问题相关的问题/解决方案。但似乎什么都不管用。 所以我有一个全屏模式的primarystage,比如说,如果我点击一个按钮,它会改变场景。但舞台似乎显示了任务栏。我还通过将此添加到所有场景方法中解决了此问题。。 但是,场景中的过渡不是那么流畅。首先,它进入桌面,然后回到全屏...这不是理想的解决方案。 以下是我的初级阶段代码: 这是我改变场景的代码: 我不知道这是虫子还是什

  • 我是JavaFX的新手。我有我的主要场景和次要场景;当我从第一个场景切换到第二个场景时,窗口的条形图变得可见。我该怎么解决呢?