【问题标题】:Java - Read from and write into Pdf which renders inside browser windowJava - 读取和写入在浏览器窗口中呈现的 Pdf
【发布时间】:2014-03-07 01:07:04
【问题描述】:

我有一个使用 Selenium WebDriver Java 自动化的场景:
网页包含一些客户数据。它有一个链接 Convert to PDF 以将该客户列表转换为安全的 pdf 格式。我必须验证 PDF 文档中列出的客户列表是否与网页中显示的列表一致。

Selenium WebDriver 能够与浏览器 DOM 中的元素进行交互。因此,要与浏览器窗口中呈现的 PDF 文档进行交互,我需要一些其他 Java 实用程序来检索该 PDF 文档中存在的数据。如果有人以前遇到过类似的情况,请提供帮助。提前致谢。

谢谢,
暹罗

【问题讨论】:

  • 您的意思是在将pdf提供给客户端浏览器之前,您必须在服务器中进行验证?还是在渲染时在客户端上?还是pdf包含客户端浏览器发布到服务器的表单,您必须验证发布的数据?
  • 我必须在客户端浏览器上验证 pdf。基本上情况是:浏览器页面上有一个打印链接。单击后,它会在浏览器窗口中呈现 pdf 文档。我必须验证该 pdf 文档中的内容。
  • 您希望如何在客户端浏览器中执行 Java 程序?不同选项卡或窗口中的 servlet?一个单独的Java程序? (或者您实际上是指浏览器中的 Java Script?还是 PDF 中的?)
  • 对不起!我想我的问题不是很清楚!已编辑:)
  • 应该使用哪个 PDF 查看器? Adobe Reader 插件?浏览器内置的查看器?还有什么?

标签: java pdf selenium adobe-reader


【解决方案1】:

要从 pdf 文件中读取,您可以使用传统的 FileReader API。

import java.io.*;    

public class FileRead {


    public static void main(String[] args) throws IOException {


        File f=new File("C:\\Documents and Settings\\abc\\Desktop\\abc.pdf");

        OutputStream oos = new FileOutputStream("test.pdf");

        byte[] buf = new byte[8192];

        InputStream is = new FileInputStream(f);

        int c = 0;

        while ((c = is.read(buf, 0, buf.length)) > 0) {
            oos.write(buf, 0, c);
            oos.flush();
        }

        oos.close();
        System.out.println("stop");
        is.close();

    }
}

您可以将此流传递给 UI,也可以直接将文件路径传递给 UI,通过它可以访问文件。 要编写或更新 PDF 文件,您可以使用 itext/pd4ml 库。两者都工作得很好。

链接:

Itext

PD4ML

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 2017-03-23
    • 2014-04-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2014-04-03
    相关资源
    最近更新 更多