2013-02-08 35 views
7

Chcę móc przekonwertować plik PDF do pliku HTML za pośrednictwem PHP, ale mam pewne problemy.Konwersja plików PDF na HTML w PHP?

Znalazłem podstawowy sposób, aby to zrobić przy użyciu Saaspose, który pozwala konwertować pliki PDF na HTML. Są jednak pewne problemy, takie jak użycie SVG, obrazów, pozycjonowania, czcionek itp.

Potrzebna mi tylko możliwość przechwycenia tekstu z pliku PHP i wszelkich związanych z nim obrazów, a następnie wyświetlić go w formacie liniowym, w przeciwieństwie do formatowania z pozycjonowaniem absolutnym.

Co mam na myśli to, że jeśli PDF wygląda następująco:

enter image description here

chciałbym, aby przekształcić go w pliku HTML pojedynczy projekt kolumny. Gdyby były obrazy, chciałbym, żeby też zostały zwrócone.

Czy to możliwe w PHP? Wiem, że mogę po prostu pobrać tekst z pliku PDF, ale co z chwytaniem obrazów?

Innym problemem jest to, że chcę, aby wszystko było wstawiane, ponieważ jest podawane klientowi w jednym pliku. Obecnie, można zrobić to z mojej konfiguracji przez jakiegoś kodu:

for ($i = 0; $i < $object_number; $i++) { 
       $object = $html->find("object")->find("embed")->eq($i); 
       $embed = file_get_contents("Output/OutputHtml/" . $object->attr("src")); 
       array_push($converted_obj, $embed); 
       array_push($original_obj, $object); 
      } 

      for ($i = 0; $i < $object_number; $i++){ 
       pq($original_obj[$i])->replaceWith($converted_obj[$i]); 
      } 

Który chwyta wszystkie SVG plików i wyświetla je inline. Obrazy byłyby łatwiejsze, ponieważ mógłbym użyć base64.

Odpowiedz

6

1) pobierz i rozpakuj plik.exe plik do folderu: http://sourceforge.net/projects/pdftohtml/

2) utworzyć plik .php, i umieścić ten kod (zakładając, że pdftohtml.exe jest wewnątrz tego folderu, a sample.pdf źródłem zbyt):

<?php 
$source_pdf="sample.pdf"; 
$output_folder="MyFolder"; 

    if (!file_exists($output_folder)) { mkdir($output_folder, 0777, true);} 
$a= passthru("pdftohtml $source_pdf $output_folder/new_file_name",$b); 
var_dump($a); 
?> 

3) wprowadzić MójFolder, a zobaczysz przekonwertowane pliki (w zależności od liczby stron ..)

ps Nie wiem, ale istnieje też wiele komercyjnych lub próbnych apisów.

+0

To zadziałało dla mnie i bardzo dziękuję. Ale jak nadać zakresowi strony tutaj, aby dokonać konwersji? Próbowałem dodać ** passthru ("pdftohtml $ source_pdf 3-5 $ output_folder/new_file_name", $ b) ** i nie zadziałało. Czy możesz powiedzieć? – Hydrogirl

+1

może to konwertuje pełny plik PDF i musisz dodać polecenie phte delta (po wykonaniu skryptu), aby usunąć wszystkie niechciane strony ... w jakiś sposób podobna do tej koncepcji: '$ unwanted_pages = array (5,6,7,8); foreach ($ unwanted_pages jako $ eachPageIndex) {unlink ("nazwa_pliku". $ EachPageIndex);} ' –

+1

Istnieje argumentacja dotycząca skryptu pdf, który określa strony: http://linux.die.net/man/1/pdftohtml $ a = passthru ("pdftohtml -f pierwsza strona -l ostatnia strona $ źródło_pdf $ katalog_wyjściowy/nazwa_pliku nowego", $ b); Sprawdź również opcje kodowania – mameluc

2

Co zasadniczo zamierzasz zrobić, to przywrócić plik PDF. Nie jestem pewien, czy to istnieje i jest w najlepszym razie bardzo trudne.

Byłoby możliwe napisanie kodu, aby zrobić to, czego potrzebujesz dla konkretnego pliku, ale aby zrobić to w ogólnym przypadku uważam, że byłoby to niemożliwe.

napisałem artykuł, który wyjaśnia, dlaczego uważam, że napływające PDF jest błędna „Użyjmy historię gazety do zilustrowania problemu” http://www.planetpdf.com/enterprise/article.asp?ContentID=PDF_Reflow_in_Microsoft_Word_2012_Is_it_any_good

Szczególnie interesujące jest rozpoczynających akapit

Możesz zajrzeć do tego, co ma do zaoferowania IDRsolutions (które dla przejrzystości, to gdzie pracuję!).

Jesteśmy obecnie w trakcie oddawania naszego PDF do HTML5 i oprogramowaniem do konwersji PDF w chmurze: http://www.idrsolutions.com/cloud-pdf-converter/

Co może być lepsze dopasowanie dla Ciebie jest funkcjonalność ekstrakcja ekstrakcja tekst PDF i PDF obraz JPedal. Prawdopodobnie przyjrzymy się także umieszczeniu tego w chmurze, jeśli PDF do HTML5 pójdzie dobrze.

Tekst ekstrakcji: http://www.idrsolutions.com/pdf-to-text-conversion/

Ekstrakcja Obrazek: http://www.idrsolutions.com/extract-images-from-pdf/

+0

Produkty IDR wyglądają interesująco, ale licencje są bardzo drogie. Nie nadaje się do konwersji na małą skalę potrzebnych w przypadku pojedynczej witryny. – squarecandy