Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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
在php中以html格式显示从pdf文档提取的数据_Php_String - Fatal编程技术网

在php中以html格式显示从pdf文档提取的数据

在php中以html格式显示从pdf文档提取的数据,php,string,Php,String,我正在尝试显示从PDF文档中提取的数据。这是我从pdf55.0 450.0 320.0 GA350C卡4 21 90.0 4 1 DIGCLR获取的原始格式的示例数据这是一行,其中每个空格代表一列。我可以用PHP中的substr()函数提取每一列,但我不确定当其中有三行或五行数据时如何显示数据,因为它的一行或五行数据将以单行显示并不重要 我只能计算没有空间的行,这里只有一件事是固定的,那就是没有列,所以需要高效地迭代循环。 如果有人有更好的主意,请告诉我 下面是我在PdfParser的帮助下从p

我正在尝试显示从PDF文档中提取的数据。这是我从pdf
55.0 450.0 320.0 GA350C卡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不允许我这样写。我很沮丧,因为我花了两个小时用记事本做这件事

现在,我将给你做这件事的简单线索

  • 避免使用标签,尝试使用(只有abbyy可以近乎完美地转换)。这是一项可选要求

  • 将PDF转换为DOM树,我建议将其转换为HTML,这必须通过PHP实现自动化。 对于付费软件:或(精简版) 对于自由软件:pdftohtml来自

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

  • 使用正则表达式(regex)或
  • 另一个线索:

    如果您在使用regex/htmldom获取内容时遇到问题, 1.试着摆脱你不需要的东西。您可以使用preg_替换

    [trash]
    [YOUR_TABLE]
    [trash]
    
    然后开始从这个片段中获取您的内容

  • 如果您可以编辑PDF创建过程,请尝试在内容周围添加唯一的单词/字符串
  • [垃圾]
    这是标题
    [你的桌子]
    这是页脚
    
    [垃圾]
    您好-您可以添加一些代码来说明您到目前为止所做的尝试吗?感谢您的关注,我已经编辑了我的问题。希望这有助于将问题形象化。感谢您的关注,我已编辑了我的问题。请检查。提取pdf数据时也有问题,在开始提取之前,我需要在Acrobat中打开pdf文件并再次保存,而不是只有PdfParser可以读取该文件。可能是版本问题,原始版本是旧格式的,我想在我的回答中有1.4条评论。所以我可以问更多的问题来解决这个问题。我需要你的pdf,而不是从你的pdf中提取的字符串。您可以使用mediafire或其他地方连接此文件。您可以在此处查看和下载此文件。对不起,我忘了您的服务器操作系统是什么?是否具有root/administrators权限?