在REST Web服务上流文件并在桌面应用程序上启动打印作业

时间:2015-11-21 23:02:30

标签: java web-services rest

我已经创建了一个用于获取文件的Web服务:

@Stateless
@Path("/print")
public class PictureWebservice {

    @GET
    @Path("/startPrint")
    @Produces(MediaType.APPLICATION_OCTET_STREAM)
    public Response getFile() {

        String path = "/mypath.JPG";
      File file = new File(path);
      return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM)
          .header("Content-Disposition", "attachment; filename=\"" + file.getName() + "\"" ) //optional
          .build();
    }
}

我将从另一台PC(运行其他桌面应用程序)调用REST Web服务,因为我需要此文件(或流)才能在此桌面应用程序上打印。

这是我的工作流程:

1)调用webservice获取文件(图像)test.png

2)运行Desktop应用程序的PC获取文件(可能是流?)

3)桌面应用程序将在此PC中启动打印作业

首先:

1)我该怎么做?

2)我应该将文件存储在桌面应用程序PC上吗?因为我不需要仅用于prinint的文件吗?

请帮助我。

1 个答案:

答案 0 :(得分:0)

  1. 这取决于您选择使用何种语言编写桌面应用程序。我将假设Java。
    1. 使用REST服务的URL创建HttpURLConnection
    2. HttpURLConnection
    3. 获取输入流
    4. 使用BufferedImage将数据从流解码为ImageIO.read(),并使用Graphics2D和Print API进行打印。
  2. 通过“物理存储”,您的意思是将其保存到磁盘吗?根据您对这些图像需要做什么 - 以及在什么时间范围内 - 答案应该相当清楚。
  3. 希望有所帮助。