当前位置: 首页 > 知识库问答 >
问题:

使用Java和pdfBox在pdf中搜索美元金额

闾丘文昌
2023-03-14

这是为了可以节省我大约10分钟的工作时间,我没有得到报酬。这是Java。自从我触摸Java已经有一段时间了。我正在通过pdfBox搜索PDF以查找使用美元货币形式的数字。这是一个看起来很像的文档。

Activity Report
Business Date: 10/9/2019   Property Code: me.ra777   Shift: 9   User: me.ra777
Reserve 

Account Person Name Start End Days Status Money TypeOfCode Type Location Source GTD Date User
077071543 Smith's, John Middle 9/25/19 9/26/19 1 O 55.50 BAR SNQQ 211 WI MC 9/25/19 me.ra777
877075375 45Lisa, Jo.nes Mid  9/25/19 9/26/19 1 I 99.00 SEG SNKE 138 WI VI 9/25/19 me.ra777
677256813 Jo^hn Wi.ck Ed 9/26/19 9/27/19 1 O 129.00 TRQ SNQQ 132 WI VI 9/26/19 me.ra777
477007406 Guys, Are 9/26/19 9/27/19 1 O 129.00 BAR SNQQ 133 WI VI 9/26/19 me.ra777
977495887 Last, First 9/27/19 9/28/19 1 O 165.00 BAR SNKE 438 WI VI 9/27/19 me.ra777
677472246 Po.or, Rich 9/27/19 9/28/19 1 O 165.00 BAR SNKE 138 WI MC 9/27/19 me.ra777
677457228 Dude, Isn't Here 9/27/19 9/28/19 1 I 180.00 BAR SNQQ 433 WI MC 9/27/19 me.ra777

Date/Time of Printing: 10/10/2019 1:42 PM   Software Version: ssrs7x67    Page 1 of 1

如果我用这样的方法。。。。。。

public static void oneLine(Scanner sc){

    while (sc.hasNextLine()) {   
        String line = sc.nextLine();   
    if(line.contains(" WI ")){    
        displayArea.append("\n"+line + "\n");
        break; 
    }else{}

     }
        sc.close();
    }    

我只会为我的输出得到这个。

077071543史密斯,约翰中间9/25/19 9/26/19 1O 55.50酒吧SNQQ 211 WI MC 9/25/19me.ra777

我想要的结果是公正的

55.50

也许所有的美元金额都是这样

55.50 99.00 129.00 129.00 165.00 165.00 180.00

好的,关于这个文档的更多数据。我只需要这些行中的数据

077071543 Smith's, John Middle 9/25/19 9/26/19 1 O 55.50 BAR SNQQ 211 WI MC 9/25/19 me.ra777
877075375 45Lisa, Jo.nes Mid  9/25/19 9/26/19 1 I 99.00 SEG SNKE 138 WI VI 9/25/19 me.ra777
677256813 Jo^hn Wi.ck Ed 9/26/19 9/27/19 1 O 129.00 TRQ SNQQ 132 WI VI 9/26/19 me.ra777
477007406 Guys, Are 9/26/19 9/27/19 1 O 129.00 BAR SNQQ 133 WI VI 9/26/19 me.ra777
977495887 Last, First 9/27/19 9/28/19 1 O 165.00 BAR SNKE 438 WI VI 9/27/19 me.ra777
677472246 Po.or, Rich 9/27/19 9/28/19 1 O 165.00 BAR SNKE 138 WI MC 9/27/19 me.ra777
677457228 Dude, Isn't Here 9/27/19 9/28/19 1 I 180.00 BAR SNQQ 433 WI MC 9/27/19 me.ra777

这些行中的所有内容都可以更改,除了在源代码下写着“WI”和在用户下写着“me.ra777”,人们可以把名字弄乱,比如你看到的“45Lisa,Jo.nes”和“Jo^hn WI.ck”

最终,在这之后我还有更多的工作要做。我需要加上所有的美元金额,实际上,还有一点,我把它们除以100;在这个例子中,我相信如果我算对了,我会得到9.225......

我真的希望我可以像这里一样更改部分代码......

    if(line.contains(" WI ")){

这样,我至少可以得到我需要的行的输出,然后我可以自己做一点工作,并尝试自己解决其余的问题。

共有1个答案

百里光熙
2023-03-14

解决了。总之我有两个主要方法----

find() Used 
1. A for Loop 
2. A while(String.astNextLine)
3. If line contains("WI" && ! linecontains "Software Version " ) 
4. varable rate = getUSD(String) 
5. doSumMathStuffs'andComplainAboutWhyJavacan'tTellThisIsa#WithoutParseing 
    ;; 
6. print ("\n"+rate);

    getUSD(Final String) used 
1. If/else "Matcher m = Pattern.compile("-?\d+(\.\d+)").matcher(strings);" 
2. while(m.find) 
3 return m.group 
4. There's Actualy some parseing and some other "transfer this variable tYpE to that TyPe " too
 类似资料:
  • 拉平文本 删除文本信息(不删除文本本身) 向文档添加覆盖。 目前,我不知道如何实现这一点。有没有人知道怎么解决这个问题?

  • 问题 我试图通过搜索文本来确定文档是什么类型(例如恳求、通信、传票等),最好使用python。所有的PDF都是可搜索的,但是我还没有找到用python解析它并应用脚本搜索它的解决方案(除了先将它转换为文本文件,但是对于n个文档来说,这可能是资源密集型的)。 到目前为止,我所做的 我已经研究了pypdf、pdfminer、adobe pdf文档,以及我能在这里找到的任何问题(尽管似乎没有一个能直接解

  • 问题内容: 我正在尝试验证Java中经过数字签名的PDF文档。 我使用Apache PDFBox 2.0.6获取签名和已签名的原始PDF,然后使用Bouncy Castle验证分离的签名(计算原始文件的哈希,使用签名者的公钥验证签名并进行比较结果)。 我阅读了这篇文章,并尝试使用以下代码获取签名字节和原始PDF字节: 但是,当我将origPDF保存到文件中时,我注意到它仍然具有签名原始PDF所没有

  • 我正在尝试使用pdfbox库签署pdf。我现在卡住了,真的需要帮助。 这是我的代码: 然后我正在保存我的pdf,但是:1)我注意到sign method从来没有被调用2)我应该在哪里附加CertyFicate?在sign method中? 以下是我保存PDF的方法:

  • 这里有两个代码段,我正在使用它们从具有“From Date”和“To Date”的日历中搜索日期。 错误消息显示:线程“main”组织中出现异常。openqa。硒。NoSuchElementException:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“//table/tbody/tr/a[包含(text(),'十月三十日')]”“}

  • 问题:我想在单元格内容的旁边或下面找到一个单元格的值,一个工作簿的文本值。 示例:在Sheet2中,我有两个随机单元格(假设它的索引未知,并且total不是定义的名称) 我想搜索值“200”站在总数旁边,并把它放在表2(一个活动单元格)。如果有多个单元格包含单词“total”,请列出所有单元格,如果可能,请将包含我正在寻找的单元格的工作表的名称放入。价值200张2 写入结果activeCell.v