Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从MATLAB运行JavaScript命令以获取PDF文件_Java_Javascript_Matlab - Fatal编程技术网

从MATLAB运行JavaScript命令以获取PDF文件

从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);

我目前正在编写一些代码,以便与公司的内部报告数据库进行交互。到目前为止,我可以使用如下代码访问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);
    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中提取文本:

如果您只想查看PDF,您可以在Adobe Acrobat中使用以下功能打开它:

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);