Hướng dẫn pdf to html php - PDF và htmlphp

Giới thiệu

Bạn có 1 file tài liệu PDF. Bạn muốn hiển thị nội dung của nó lên website của mình dưới dạng text/html giống như một số trang tài liệu như tailieu.vn đang làm. Việc website của bạn hiển thị nội dung của file PDF dưới dạng text thì sẽ có nhiều lợi ích về SEO.

Nó làm cho nội dung bài viết của bạn ngoài việc sử dụng

brew install poppler
6 hoặc
brew install poppler
7 để chèn file PDF thì còn có text nữa, làm tăng chất lượng cho bài viết của bạn. Tính năng này phù hợp với những website về tài liệu, sách.

Hôm nay mình xin giới thiệu đến các bạn cách để convert file PDF sang HTML bằng PHP. Đó là sử dụng package

brew install poppler
8. Nó hoạt động dựa trên thư viện Poppler. (Poppler là một thư viện rendering PDF dựa trên base là thư viện xpdf-3.0.). Mình sẽ cài đặt và sử dụng nó trên Laravel 5.5.Laravel 5.5.

Cài đặt

Cài đặt Poppler

Trước hết, các bạn phải cài đặt thư viện Poppler (bắt buộc phải cài để convert PDF to HTML).

Debian/Ubuntu

sudo apt-get install poppler-utils

Mac OS X

brew install poppler

Windows

Các bạn download và cài đặt theo hướng dẫn sau: http://blog.alivate.com.au/poppler-windows/

Thư viện PDF to HTML nằm ở đâu?

Sau khi cài đặt

brew install poppler
9, bạn vào thư mục
$ whereis pdftohtml
0 (mình sử dụng Ubuntu) sẽ thấy nó có rất nhiều tính năng, ví dụ như:
$ whereis pdftohtml
1,
$ whereis pdftohtml
2,
$ whereis pdftohtml
3,
$ whereis pdftohtml
4,...
Hướng dẫn pdf to html php - PDF và htmlphp

Bạn có thể kiểm tra thư viện PDF to HTML nó nằm ở đâu bằng command như dưới đây:

  • Debian/Ubuntu
$ whereis pdftohtml

pdftohtml: /usr/bin/pdftohtml

$ whereis pdfinfo

pdfinfo: /usr/bin/pdfinfo

  • Mac OS X
$ which pdfinfo

/usr/local/bin/pdfinfo

$ which pdftohtml

Windows

  • Các bạn download và cài đặt theo hướng dẫn sau: http://blog.alivate.com.au/poppler-windows/

Thư viện PDF to HTML nằm ở đâu?

Sau khi cài đặt

brew install poppler
9, bạn vào thư mục
$ whereis pdftohtml
0 (mình sử dụng Ubuntu) sẽ thấy nó có rất nhiều tính năng, ví dụ như:
$ whereis pdftohtml
1,
$ whereis pdftohtml
2,
$ whereis pdftohtml
3,
$ whereis pdftohtml
4,...

  composer require tonchik-tm/pdf-to-html:~1

Bạn có thể kiểm tra thư viện PDF to HTML nó nằm ở đâu bằng command như dưới đây:

{
  "tonchik-tm/pdf-to-html":"~1"
}

pdftohtml: /usr/bin/pdftohtml

pdfinfo: /usr/bin/pdfinfo

/usr/local/bin/pdfinfo

  • Windows Nó ở trong thư mục
    $ whereis pdftohtml
    
    5.
// initiate
$pdf = new \TonchikTm\PdfToHtml\Pdf('pdf-sample.pdf', [
    'pdftohtml_path' => '/usr/bin/pdftohtml', // đường dẫn của `pdf to html` sau khi cài đặt
    'pdfinfo_path' => '/usr/bin/pdfinfo', // đường dẫn của `pdf info` sau khi cài đặt
    'clearAfter' => false, // xóa file pdf sau khi convert - mặc định là true
    'outputDir' => storage_path('app/ebooks'), // thư mục output của file html
]);

Cài đặt package



$full_settings = [
    'pdftohtml_path' => '/usr/bin/pdftohtml', // path to pdftohtml
    'pdfinfo_path' => '/usr/bin/pdfinfo', // path to pdfinfo

    'generate' => [ // settings for generating html
        'singlePage' => false, // we want separate pages
        'imageJpeg' => false, // we want png image
        'ignoreImages' => false, // we need images
        'zoom' => 1.5, // scale pdf
        'noFrames' => false, // we want separate pages
    ],

    'clearAfter' => true, // auto clear output dir (if removeOutputDir==false then output dir will remain)
    'removeOutputDir' => true, // remove output dir
    'outputDir' => '/tmp/'.uniqid(), // output dir

    'html' => [ // settings for processing html
        'inlineCss' => true, // replaces css classes to inline css rules
        'inlineImages' => true, // looks for images in html and replaces the src attribute to base64 hash
        'onlyContent' => true, // takes from html body content only
    ]
]

Trong project của bạn, chạy command:

  • Hoặc thêm vào
    $ whereis pdftohtml
    
    6 và run
    $ whereis pdftohtml
    
    7
brew install poppler
0

Hướng dẫn pdf to html php - PDF và htmlphp

  • Sử dụng
brew install poppler
1

Hướng dẫn pdf to html php - PDF và htmlphp

  • Sau khi cài đặt thư viện xong, chúng ta có thể convert PDF to HTML trên máy thật của mình bằng việc chạy command của
    brew install poppler
    
    9. Nhưng chúng ta đang muốn convert bằng code PHP, cụ thể là Laravel. Giờ thì chúng ta bắt đầu code nào!
Ví dụ ban đầu mình có file PDF có tên
$ whereis pdftohtml
9. Mình sẽ convert file này sang HTML:

Hướng dẫn pdf to html php - PDF và htmlphp

  • Config
brew install poppler
3

Hướng dẫn pdf to html php - PDF và htmlphp
Ngoài các config trên, bạn có thể tham khảo full list setting của nó như sau:

Kết quả

Lấy thông tin file pdf:

Hướng dẫn pdf to html php - PDF và htmlphp

  • Đếm số trang:
  • routes/web.php
brew install poppler
4
  • Lấy nội dung HTML của trang đầu tiên:
brew install poppler
5

brew install poppler
2

Lấy nội dung của tất cả các trang:

Nó sinh ra đoạn code html kèm css luôn. Các bạn có thấy nó giống y hệt với file pdf ban đầu không? Rất đẹp nữa phải không nào?