Преобразование документов PDF (.pdf) в документ EXCEL (.XLXS) с использованием PHP - PullRequest
0 голосов
/ 21 июня 2020

У меня есть набор PDF-документов, и мне нужно преобразовать файлы в Excel. Когда я попытался преобразовать тех, кого не мог преобразовать, это было объявлено неудачным. Поэтому я попытался преобразовать в тег HTML все данные, которые преобразуются, но при этом весь документ был преобразован в теги P. Я приложил образец ответа HTML тегов. Пожалуйста, предложите мне несколько идей для преобразования PDF в Excel в php.

Я использовал эту библиотеку

<p class="ft00" style="margin: 0; padding: 0; font-size: 11px; font-family: Times; color: #000000; position: absolute; top: 863px; left: 683px; white-space: nowrap;"><b>10</b></p>
<p class="ft01" style="margin: 0; padding: 0; font-size: 9px; font-family: Times; color: #000000; -moz-transform: matrix(         0,         -1,  0.9999875,          0, 0, 0); -webkit-transform: matrix(         0,         -1,  0.9999875,          0, 0, 0); -o-transform: matrix(         0,         -1,  0.9999875,          0, 0, 0); -ms-transform: matrix(         0,         -1,  0.9999875,          0, 0, 0); -moz-transform-origin: left 75%; -webkit-transform-origin: left 75%; -o-transform-origin: left 75%; -ms-transform-origin: left 75%; position: absolute; top: 207px; left: 63px; white-space: nowrap;"><b>THE</b></p>

Library: PdfToHtml


$pdf = new \TonchikTm\PdfToHtml\Pdf($pdf_file , [
    'pdftohtml_path' => $bindir,
    'pdfinfo_path' => $binexe,
    'outputDir' => getcwd().'/excelfile/'.uniqid() // output dir 
]);

$newpage = '';
foreach ($pdf->getHtml()->getAllPages() as $page) {
    $newpage .= $page . '<br/>';
  
}

1 Ответ

0 голосов
/ 22 июня 2020

У меня никогда не было варианта использования для преобразования PDF в Excel, но какие еще библиотеки вы пробовали?

PDFTables выглядит многообещающим:

https://pdftables.com/pdf-to-excel-api#php

https://github.com/pdftables/php-pdftables-api

Если это нужно сделать с помощью библиотеки PDF в HTML, которую вы используете, я не знаю простого / чистого способ сделать это.

В зависимости от вопроса каждая страница возвращает строку, содержащую все элементы абзаца?

Если возвращается массив элементов, вы должны иметь возможность l oop больше каждый абзац и используйте strip_tags () для получения отдельных значений.

Если это строка, попробуйте использовать Simple HTML Dom для синтаксического анализа элементов HTML из строкового формата, чтобы вам будет проще работать с HTML.

$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');
...