保存使用OLE和Perl在Internet Explorer中打开的pdf文件

itz*_*tzy 5 perl internet-explorer ole

我正在寻找一种方法来使用Perl在Internet Explorer中打开PDF文件,然后保存它.

(我希望用户能够与脚本交互并决定是否发生下载,这就是为什么我想在IE中显示pdf,所以我不能使用类似的东西LWP::Simple.)

作为一个例子,这段代码加载(显示)一个pdf,但我无法弄清楚如何让Perl告诉IE保存文件.

use Win32::OLE;
my $ie = Win32::OLE->new("InternetExplorer.Application");
$ie->{Visible} = 1;
Win32::OLE->WithEvents($ie);

$ie->Navigate('http://www.aeaweb.org/Annual_Meeting/pdfs/2014_Registration.pdf');
Run Code Online (Sandbox Code Playgroud)

我想我可能需要使用OLE方法execWB,但我无法弄明白.

Gal*_*llo 5

您要做的是自动化Internet Explorer UI.有很多图书馆可以做到这一点.您告诉库找到您感兴趣的窗口,然后您可以向窗口发送击键或命令(在您的情况下为CTRL-S).

有关如何在Perl中执行此操作的详细信息,请访问此处.

示例语法:

my @keys = ( "%{F}", "{RIGHT}", "E", );
for my $key (@keys) {
    SendKeys( $key, $pause_between_keypress );
}
Run Code Online (Sandbox Code Playgroud)

代码以包含按键的数组开头.注意前三个元素的格式.按键是:Alt + F,右箭头和E.打开应用程序,这将导航菜单以打开编辑器.

另一种选择是使用LWP:

use LWP::Simple;

my $url = 'http://www.aeaweb.org/Annual_Meeting/pdfs/2014_Registration.pdf';
my $file = '2014_Registration.pdf';

getstore($url, $file);
Run Code Online (Sandbox Code Playgroud)