从MATLAB运行JavaScript命令以获取PDF文件
我目前正在编写一些代码,以便与公司的内部报告数据库进行交互。到目前为止,我可以使用如下代码访问HTML摘要页面:从MATLAB运行JavaScript命令以获取PDF文件,java,javascript,matlab,Java,Javascript,Matlab,我目前正在编写一些代码,以便与公司的内部报告数据库进行交互。到目前为止,我可以使用如下代码访问HTML摘要页面: import com.mathworks.mde.desk.*; wb=com.mathworks.mde.webbrowser.WebBrowser.createBrowser; wb.setCurrentLocation(ReportURL(8:end)); pause(1); s={}; while isempty(s) s=char(wb.getHtmlText);
import com.mathworks.mde.desk.*;
wb=com.mathworks.mde.webbrowser.WebBrowser.createBrowser;
wb.setCurrentLocation(ReportURL(8:end));
pause(1);
s={};
while isempty(s)
s=char(wb.getHtmlText);
pause(.1);
end
desk=MLDesktop.getInstance;
desk.removeClient(wb);
我可以从HTML文本中提取出各种信息,这些信息最终出现在变量s
中,但是报告的PDF是通过我认为是一个命令(onClick=“gotoFulltext(“”,“[report Number]”)访问的
关于如何执行这个JavaScript命令并将PDF文件的内容转换成MATLAB变量,有什么想法吗
(MATLAB位于Java之上,因此我相信Java解决方案会起作用……我认为您应该看看正在调用的JavaScript,看看对Web服务器的最终请求是什么样子的 您可以在Firefox中使用FireBug插件轻松完成这项工作
一旦找到真正的服务器请求,您就可以请求此URL或发布到此URL,而不是尝试运行JavaScript。一旦获得正确的URL(la),您的下一个问题是“将PDF文件的内容放入MATLAB变量”。这是否可能取决于你所说的“内容”
如果您想获取PDF文件中的原始数据,我认为目前在MATLAB中没有办法做到这一点。该函数是我想到的将URL中的内容读入字符串的第一件事,但文档中有如下注释:
s=urlread('url')
读取内容
将URL插入字符串s
。如果
服务器返回二进制数据,s
将
不可读
事实上,如果您尝试阅读以下示例中的PDF,s
包含一些文本,其中大部分是垃圾:
s = urlread('http://samplepdf.com/sample.pdf');
如果您想从PDF文件中获取文本,您有一些选项。首先,您可以使用将URL的内容保存到文件:
urlwrite('http://samplepdf.com/sample.pdf','temp.pdf');
然后,您应该能够使用上的两个提交中的一个从PDF中提取文本:
- 借
- 借
open('temp.pdf');
pjp是唯一明智的方法。您还应该让内部数据库的web界面开发人员进行拍摄,或者至少让他们了解渐进增强;-)这看起来是一个非常有前途的途径-我现在有一个URL,它可以让我得到PDF-我现在需要做的就是找出如何将它放入一个变量。。。萤火虫相当方便!目前我的问题是URL需要身份验证才能访问内容,而我不知道如何通过urlread提供它。我相信可能有一个使用JavaURL对象的路由。使用上面的webbrowser方法,我可以在屏幕上看到pdf文档,这与我想要的非常接近。PDF函数中的文本看起来很有用,
URLREAD
和URLWRITE
函数允许向它们传递可选参数。您必须找出用于身份验证的参数名称,然后将它们与参数值一起作为单元格数组传递。此文档页面上显示了一个示例:Dimitri Shvorob将PDF文件转换为文本的解决方案nicely@Ian:正如所料。。。Dimitri是文件交换领域备受尊敬的贡献者。=)
wb=com.mathworks.mde.webbrowser.WebBrowser.createBrowser;
wb.executeScript('javascript:alert(''Some code from a link'')');
desk=com.mathworks.mde.desk.MLDesktop.getInstance;
desk.removeClient(wb);