在html中显示数据,从php中提取pdf文档


Display data in html extracted from pdf document in php

我正在尝试显示从PDF文档中提取的数据。这是我从pdf 55.0 450.0 320.0 GA350C CARDS 4 21 90.0 4 1 DIGCLR获得的原始格式的样本数据。这是一行,每个空格代表一列。我可以在PHP中提取substr()函数的每一列,但我不确定如何显示数据时,有三或五行数据在那里,因为不要紧,它的一行或五行数据将显示在单行。

我只能计算没有空格的行,这里只有一件事是固定的,那就是没有列,所以需要有效地迭代循环。如果谁有更好的主意,请告诉我。

这是我在PdfParser的帮助下从pdf文档中提取的字符串。

5284 25/10/16 DATE JOB REC'D: DATE DUE: 26/10/16 JOB NUMBER: The Print Group CUSTOMER NAME: 30 days CONTACT: Tanya Bulley PHONE: (07) 3395 7248 FAX: (07) 3395 9462 ORDER NUMBER: 234456/277458 ADDRESS: The Print Group 88 Webster Road Geebung Qld 4034 Australia 5,289 QUOTE NO: PREVIOUS JOB NO: 0 2,000 Business Cards - Shed Company 2 KINDS JOB: DESCRIPTION: PRE-PRESS: Supplied Print Ready Files/ No Proof Required SIZE: BC 90 x 55mm PRINTED: CMYK 2/sides STOCK: 350gsm Gloss Art FINISH:Trim to size QTY: 2000 (1,000 each name) PACK: Carton Pack DELIVERY: 1 Point ACT [1]SPECIAL INSTRUCTIONS: Artwork Received SPECIAL INSTRUCTIONS: Out on Proof Approved Stock TYPE/ART CUTTING Proofing Pre Press Proofing 0.50 TRIMMING CARDS TRIM MAKE READY CARDS TRIM 90 x 55 STOCK 96.00 CARDS Sovereign Gloss 450x320/350 FINISHING PACK/DELIVERY PACK A4 Cartons 305x215/280 Standard Local Delivery (by we INK/CHEMICALS OUTSIDE WORK Delivery: The Print Group 88 Webster Road Geebung Qld 4034 Press Sheet Press Code Stock Code No. of Work & Turn No Up No. of Colours Front Back Description Ink Code Front Back Trim Size Depth Width Ink Notes 55.0 450.0 320.0 GA350C CARDS 4 21 90.0 4 1 DIGCLR 

这基本上是打印机的作业顺序,最后一行是作业详细信息。现在只有一行是实际的作业详细信息,但在某些顺序中,它可以增加到10行,因此很难用正确的列名将其保存在数据库中。为了获取单词或细节,我使用:

function GetBetween($content,$start,$end)
{
    $r = explode($start, $content);
    if (isset($r[1])){
        $r = explode($end, $r[1]);
        return $r[0];
    }
    return '';
}

这个函数。我像$cust_name = GetBetween($a,'JOB NUMBER:','CUSTOMER NAME:');一样使用这个函数,我也使用substr() php函数来获取一些细节,有了这些,我得到了除了主数据之外的一切,这是最后的字符串(我上面提到过)。

对不起,我试图用大量代码和长描述来解释,但是stackoverflow不允许我这样写。我很沮丧,因为我花了两个小时用我的记事本做这件事

现在我会给你一个简单的提示

  1. 避免使用<*table>标记,尝试使用<*div>(只有abbyy可以近乎完美地转换<*table>)。此可选要求

  2. 将PDF转换为DOM树,我建议转换为HTML,这必须通过PHP自动化。付费软件:Abbyy Fine阅读器或Abbyy变压器(精简版)免费软件:pdftohtml from poppler

根据我大约5年的经验,我建议您使用Abbyy。以及所有提供数字服务的印尼公司剪报使用这个软件(我很确定这一点)。如果你没有钱,你必须知道怎么弄到钱。)我不能说)

  • 使用正则表达式(regex)或http://simplehtmldom.sourceforge.net/抓取HTML DOM
  • 另一个提示:

    如果你使用regex/htmldom抓取内容有问题,1. 尽量摆脱你不需要的DOM。您可以使用preg_replace

    [trash]
    [YOUR_TABLE]
    [trash]
    

    然后开始从这个片段

    中抓取内容
  • 如果您可以编辑PDF创建过程,请尝试在您的内容周围添加唯一的单词/字符串
  • [trash]
    <div>this is title</div>
    [YOUR TABLE]
    <div>this is footer</div>
    [trash]

    所以你可以围绕word搜索内容这是title,这是footer