当前位置: 首页 > 面试题库 >

使用angularjs在浏览器的新窗口中打开PDF

詹高畅
2023-03-14
问题内容

我是angular js的新手,我希望在按下按钮后在浏览器的新窗口中打开PDF文档。

$http.get()在前端发出GET请求,在后端有一个Java Rest服务,该服务响应GET并生成PDF。我希望在浏览器中打开此PDF。

如果无法以这种方式打开PDF,那么至少要使用AngularJs打开任何PDF,我该怎么做?

@GET
@Path("/printPdf")
public Response printService(){

//generates the pdf

File reportFile = new File(filePath);
String name = reportName + "." + "pdf";
ResponseBuilder response = Response.ok(new     TemporaryFileInputStream(reportFile));
response.header("Content-Disposition", "attachment; filename=" + name);
response.header("Content-Type", "application/pdf");
response.header("Access-Control-Expose-Headers", "x-filename");
response.header("x-filename", name);

return response.build();
}

这就是后端在其余服务中生成响应的内容。


问题答案:

如果您有这样的事情:

var myPdfUrl = 'something'
$http.get(myPdfUrl);

而是这样做:

var myPdfUrl = 'something'  
$window.open(myPdfUrl);

相反,如果您有这样的事情:

$http
    .get(generatePdfUrl)
    .then(function(data){
        //data is link to pdf
    });

做这个:

$http
    .get(generatePdfUrl)
    .then(function(data){
        //data is link to pdf
        $window.open(data);
    });


 类似资料:
  • 语言-JAVA IDE-Eclipse工具-Selenium Web驱动程序

  • 问题内容: 我正在尝试使用selenium for python在浏览器中打开一个新选项卡或一个新窗口。如果打开新的选项卡或新窗口并不重要,仅打开浏览器的第二个实例才很重要。 我已经尝试了几种不同的方法,但都没有成功。 切换到一个不存在的窗口,希望它在找不到该窗口时会打开一个新窗口: 通过打开的窗口进行迭代(尽管目前只有一个) 尝试模拟键盘按键 driver.send_keys(Keys.CONT

  • 我不知道为什么我为下面的示例打开了2个火狐浏览器。有人能告诉我下面的代码有什么问题吗?我是cucumber新手,我正在尝试使用页面对象模型开发cucumberpoc。 特征文件: 步骤定义文件: 步骤定义文件的实际实现:(首页.java) BasePage.java CustomerDetails.java 打开2个火狐浏览器:首先它打开一个空白浏览器。后来它打开另一个浏览器,并在此浏览器中打开应

  • 在我的脚本中,我打开浏览器的私有窗口来验证网站中的某些内容。下面是示例代码: 当我在本地(mac)机器上执行这些测试用例时,或者当Jenkins在Windows服务器上本地执行这些测试用例时,这些代码可以正常工作。但现在,当我在browserstack虚拟机上运行脚本时,我面临的挑战是。我的本地机器是Mac,当我尝试在Windows(虚拟)机器上运行某些东西时,它会尝试在键盘上查找命令按钮,测试用

  • 问题内容: 我遇到的情况是,单击按钮打开带有搜索结果的新浏览器窗口。 有什么方法可以连接并聚焦到新打开的浏览器窗口吗? 并使用它,然后返回到原始(第一个)窗口。 问题答案: 您可以在以下窗口之间切换:

  • 我不清楚为什么我在以下示例中打开了3个chrome浏览器。我有一个@Before(cucumber版本)注释,只需在方案运行之前设置一个chrome webdriver实例。据我所知,它应该打开一个浏览器,运行场景(步骤定义),然后使用@Aftercucumber钩关闭。在第三个也是最后一个窗口实际执行步骤之前,打开2个窗口: 步骤定义: 当我单步执行Intellij中的代码时,将调用以下方法: