如何从浏览器保存 .pdf?

2023-11-30

我尝试使用在 stackoverflow 上找到的不同方法来保存 .pdf 文件,包括FileUtils IO然而,我总是会把它弄坏。当我使用记事本打开损坏的文件时,我得到以下内容:

<HEAD>

    <TITLE>
        09010b129fasdf558a-
    </TITLE>

</HEAD>


<HTML>

<SCRIPT language="javascript" src="./js/windowClose.js"></SCRIPT>

<LINK href="./theme/default.css" rel="stylesheet" type="text/css">
<LINK href="./theme/additions.css" rel="stylesheet" type="text/css">

<BODY leftmargin="0" topmargin="0">

<TABLE cellpadding="0" cellspacing="0" width="100%">
    <TR>
        <TD class="mainSectionHeader">
            <A href="javascript:windowClose()" class="allLinks">
                CLOSE
            </A>
        </TD>

    </TR>

</TABLE>

                <script language='javaScript'>
                    alert('Session timed out. Please login again.\n');
                    window.close();
                </script>



</BODY>

</HTML>

后来我尝试保存一个.pdf使用@BalusC 提供的答案从浏览器下载文件。这个解决方案非常有帮助:我能够摆脱session问题。但是,它也会生成损坏的 .pdf。但当我用记事本打开它时,它完全不同。不过,不再有登录问题:

<HTML>

    <HEAD>

        <TITLE>
            Evidence System
        </TITLE>

    </HEAD>

<LINK href="./theme/default.css" rel="stylesheet" type="text/css">

<TABLE cellpadding="0" cellspacing="0" class="tableWidth760" align="center">
    <TR>
        <TD class="headerTextCtr">
            Evidence System
        </TD>
    </TR>
    <TR>
        <TD colspan="2">
            <HR size="1" noshade>
        </TD>
    </TR>
    <TR>
        <TD colspan="2">



<HTML>
<HEAD>
<link href="./theme/default.css" rel="stylesheet" type="text/css">
<script language="JavaScript">

function trim(str)
{
    var trmd_str

    if(str != "")
    {
        trmd_str = str.replace(/\s*/, "")
        if (trmd_str != ""){

            trmd_str = trmd_str.replace(/\s*$/, "")
        }

    }else{
        trmd_str = str
    }
    return trmd_str
}  

function validate(frm){
    //check for User name 
    var msg="";
    if(trim(frm.userName.value)==""){
        msg += "Please enter your user id.\n";
        frm.userName.focus();
    }

    if(trim(frm.password.value)==""){
        msg += "Please enter your password.\n";
        frm.userName.focus();
    }

    if (trim(msg)==""){
        frm.submit();
    }else{
        alert(msg);
    }
}

function numCheck(event,frm){
    if( event.keyCode == 13){
            validate(frm);  
    }
}

</script>
</HEAD>

<BODY onLoad="document.frmLogin.userName.focus();">

<FORM name='frmLogin' method='post' action='./ServletVerify'>
    <TABLE width="100%" cellspacing="20">
        <tr>
            <td class="mainTextRt">
                Username
                <input type="text" name="userName" maxlength="32" tabindex="1" value="" 
                onKeyPress="numCheck(event,this.form)" class="formTextField120">
            </TD>
            <td class="mainTextLt">
                Password
                <input type="password" name="password" maxlength="32" tabindex="2" value="" 
                onKeyPress="numCheck(event,this.form)" class="formTextField120">
            </TD>
        </TR>

        <tr>                    
            <td colspan="2" class="mainTextCtr" style="color:red">
                Unknown Error
            </td>
        </tr>

        <tr>
            <td colspan="2" class="mainTextCtr">
                <input type="button" tabindex="3" value="Submit" onclick="validate(this.form)" >
            </TD>
        </TR>
    </TABLE>

    <INPUT TYPE="hidden" NAME="actionFlag" VALUE="inbox">
</FORM>

</BODY>
</HTML>

        </TD>
    </TR>
    <TR>
        <TD height="2"></TD>
    </TR>
    <TR>
        <TD colspan="2">
            <HR size="1" noshade>
        </TD>
    </TR>
    <TR>
        <TD colspan="2">
            <LINK href="./theme/default.css" rel="stylesheet" type="text/css">

<TABLE width="80%" align="center" cellspacing="0" cellpadding="0">
    <TR>
        <TD class="footerSubtext">
            Evidence Management System
        </TD>
    </TR>

    <!-- For development builds, change the date accordingly when sending EAR files out to Wal-Mart -->
    <TR>
        <TD class="footerSubtext">
            Build:&nbsp;&nbsp;v3.1
        </TD>
    </TR>

</TABLE>
        </TD>
    </TR>
</TABLE>

</HTML>

我还有什么其他选择?

PS:当我尝试使用手动保存文件时CTRL+Shift+S,文件保存成功。


从看起来只是 HTML 错误页面的错误响应中可以看出:

alert('会话超时,请重新登录。\n');

因此,下载 PDF 文件似乎需要在有效的 HTTP 会话中进行。 HTTP 会话由 cookie 支持。 HTTP 会话通常在服务器端包含有关当前活动和/或登录用户的信息。

Selenium Web 驱动程序完全透明地自行管理 cookie。您可以通过编程方式获取它们,如下所示:

Set<Cookie> cookies = driver.manage().getCookies();

当手动摆弄时java.net.URL在 Selenium 的控制之外,您应该确保自己的 URL 连接使用相同的 cookie(从而也维护相同的 HTTP 会话)。您可以在 URL 连接上设置 cookie,如下所示:

URLConnection connection = new URL(driver.getCurrentUrl()).openConnection();

for (Cookie cookie : driver.manage().getCookies()) {
    String cookieHeader = cookie.getName() + "=" + cookie.getValue();
    connection.addRequestProperty("Cookie", cookieHeader);
}

InputStream input = connection.getInputStream(); // Write this to file.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从浏览器保存 .pdf? 的相关文章

  • java中的csv到pdf文件

    我正在尝试获得一个csv文件解析为pdf 到目前为止我所拥有的内容附在下面 我的问题是这段代码最终出现在 pdf 中的文件在 csv 文件的第一行被截断 我不明白为什么 附示例 本质上我想要一个没有任何操作的 csv 文件的 pdf 版本
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • 在 Python 中使用 Selenium 处理“接受 Cookie”弹出窗口

    我一直在尝试用硒抓取这个房地产网站的一些信息 但是 当我访问该网站时 我需要接受 cookie 才能继续 这仅在机器人访问网站时发生 而不是在我手动执行时发生 当我尝试通过 xpath 或 id 查找相应的元素时 正如我在手动检查页面时找到
  • 使用 Checkstyle Plugin 时从插件调用代码时出现问题:“org.eclipse.jface”

    我正在尝试在 Rational Software Architect 7 0 0 4 上使用 eclipse cs 插件 我最近卸载了旧的 beta2 版本并安装了 beta3 插件本身按照之前的配置工作 但是每当我尝试通过 Windows
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • JavaFX - setVisible 隐藏元素但不重新排列相邻节点

    在 JavaFX 中 如果我有一个场景有 2VBox元素和每个VBox有多个Label in it 如果我设置顶部VBox to 无形的 为什么底部VBox 不向上移动顶部的场景VBox was The VBox is 无形的但我希望其他物
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • 使用 java 按电子邮件发送日历邀请

    我正在尝试使用 java 发送每封电子邮件的日历邀请 收件人收到电子邮件 但不会显示接受或拒绝的邀请 而是将该事件自动添加到他的日历中 我正在使用 ical4j jar 构建活动 邀请 private Calendar getInvite
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这

随机推荐

  • 在 iOS 上使用 OAuth2 进行身份验证

    我目前正在尝试使用 OAuth2 授权我的用户 我目前正在使用以下库 https github com p2 OAuth2 let oauth2 OAuth2CodeGrant settings client id my id author
  • 模块可以将关系和named_scopes添加到Rails模型中吗

    如何创建一个模块 当包含在模型中时会自动添加一些关系和named scopes 这是我现在所拥有的 module Resource has many permissions named scope acl check lambda do u
  • 在 Woocommerce 订单编辑页面中替换 BACS 付款方式的特定单词

    我是 woocommerce 的新手 通过使用 gettext 挂钩 我能够将文本 paid 替换为 placed 但我想根据一个条件显示此文本 即当客户选择电汇 bacs 时 因为当时没有收到付款文本需要替换为放置的 I ve attac
  • CastError:模型的路径“_id”处的值“route-name”转换为 ObjectId 失败

    我似乎无法解决这个问题 当我点击此 URL 时收到此错误消息http localhost 5000 sysaccess test 节点 34256 UnhandledPromiseRejectionWarning 未处理的承诺拒绝 拒绝ID
  • 如何在 JTextArea 中添加可点击的 URL?

    我正在编写一个应用程序 并且我正在使用JTextArea显示一些文本 现在我想在文本区域中显示一些可点击的 URL 以及普通文本 并且我希望如果用户单击该 URL 则该 URL 引用的网页应在新的 Web 浏览器窗口中打开 将 JEdito
  • C# WebClient 内存使用情况

    我正在使用 WebClient DownloadString http example com string txt 当我调用它时 内存会跳起来 但再也不会下降 而且由于我需要从网上下载 2 3 个不同的字符串 所以内存会跳得很多 我是 C
  • 无法使用 fopen (php) 打开文件

    我正在尝试打开一个文件以在 php 脚本中读取 但遇到问题 这是我的代码 fileHandle fopen 1234 main csv r or die Unable to open if file exists fileHandle ec
  • 播放系统声音而不导入自己的声音

    是否可以在不导入自己的系统声音的情况下播放现有的系统声音 我发现这个 systemSoundID 列表对于直接访问声音 ID 非常有用 http iphonedevwiki net index php AudioServices 例如 播放
  • 如何从文件中读取变量,每行多个变量?

    我正在尝试从一个文件中读取数据 该文件有多行 每行都有 3 个我想要分配给变量并使用的信息 我想出了如何在终端上简单地显示它们 但无法弄清楚如何实际将它们分配给变量 while read i do for j in i do echo j
  • 使用 graphviz 绘制大图的最佳方法是什么

    我需要在图像上绘制大型数据集 我使用 graphvis 命令行和所有可用的工具 dot neato twopi 等 但结果不可读并且包含重叠 我需要的是显示边缘带有标签的节点 重叠最小化 以便图形可读并且可以打印在 A4 或 A3 纸上 我
  • jquery Ajax 使用 Internet Explorer 响应“未定义”

    我遇到了 jquery ajax 请求的情况
  • 'WCHAR* 类型的参数与“const char*”不兼容'

    DWORD ProcMem Module LPSTR ModuleName HANDLE hModule CreateToolhelp32Snapshot TH32CS SNAPMODULE dwPID MODULEENTRY32 mEnt
  • 为什么Java 8提供方法引用?

    打电话用什么比较好 names stream forEach System out println Than names stream forEach n gt System out println n 尽管事实上你必须编写更少的代码 在
  • sizeof 以及当一个字节大于 8 位时?

    Since sizeof是一个运算符 为什么我们可以使用sizeof something 就像函数调用一样 什么时候一个字节不是8位 此上下文中的字节与无符号字符相同 并且可能大于 8 位 字节有可能小于8位吗 既然 sizeof 是一个运
  • js 异步/等待返回承诺

    只做一个简单的功能 async function doAsync return await test console log doAsync 输出 承诺 PromiseStatus pending PromiseValue undefine
  • Delphi Chromium - 迭代 DOM

    我正在尝试使用 TChromium 迭代 DOM 并且因为我使用 Delphi 2007 所以我无法使用匿名方法 所以我创建了一个继承 TCEFDomVisitorOwn 的类 我的代码如下 但由于某种原因 访问 过程从未被调用 所以什么也
  • 使用bunyan logger登录nodejs

    我正在我的nodejs代码中初始化bunyan记录器 如下所示 var log bunyan createLogger name myapp stream process stdout level info 这是来自 Bunyan 文档ht
  • 将嵌套字典转换为 IReadOnlyDictionary

    我正在尝试给出一个IReadOnly 内部参考Collection对象 这在大多数情况下效果很好 但如果我想将包含集合的字典转换为IReadOnlyDictionary含有一个IReadOnlyCollection 这是一个代码示例 var
  • Python Outlook 获取来自发件人的所有电子邮件

    我正在尝试使用 python 来浏览 Outlook 并获取发件人的所有电子邮件 我已经看过但不知道如何做到这一点 我可以按主题获取电子邮件并返回发件人 但我希望获取所有发件人然后返回主题 这就是我用来按主题获取发件人的方法 import
  • 如何从浏览器保存 .pdf?

    我尝试使用在 stackoverflow 上找到的不同方法来保存 pdf 文件 包括FileUtils IO然而 我总是会把它弄坏 当我使用记事本打开损坏的文件时 我得到以下内容