PDF to text/HTML/XML converter – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PDF to text/HTML/XML converter – PHP – Fórum – Programujte.comPDF to text/HTML/XML converter – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
m->29+6
Super člen
1. 12. 2010   #1
-
0
-

Čau, práve pracujem na jednom projekte a potreboval by som vhodný converter PDF dokumentov do nejakého textového formátu. Ide mi len o to, vytiahnuť z PDF abstrakt a kľúčové slová, ktoré väčšinou bývajú na prvých stránkach.

Na googli je toho plno, ale nemám možnosť volať z PHP externé aplikácie tak by to malo byť priamo v PHP, prípadne nejaký online konverter. Google ponúkal kedysi v prílohách mailov odkaz "Zobraziť ako HTML", ale to už nahradil svojim Google Docs, kde text nejde vytiahnuť.

Zatiaľ najlepšie výsledky dáva ZohoViewer http://viewer.zoho.com/home.do. Ten ale rozhádže diakritiku. Skúšal som toho plno a tento je najlepší čo sa týka rýchlosti a kvality. Ak by ste mali ale nejaké riešenie priamo v podobe PHP skriptu tak rád vyskúšam. Vopred dík

Nahlásit jako SPAM
IP: 83.208.112.–
hulk
~ Anonymní uživatel
7 příspěvků
7. 7. 2011   #2
-
0
-

#1 m->29
Zdravím,

Momentálne mám rovnaký problém, ak si prišiel na riešenie alebo niekto iný, bol by som naozaj veľmi vďačný :)

Nahlásit jako SPAM
IP: 213.151.218.–
z_moravec
~ Redaktor
+3
Posthunter
7. 7. 2011   #3
-
0
-

Toto je pro php asi neřešitelný problém, zvlášť, když pdf obsahuje české texty. Já jsem to vždy řešil externími aplikacemi, ale to na klasickém webhostingu většinou nejde.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
m->29+6
Super člen
7. 7. 2011   #4
-
0
-

No tak tu si môžeš prezrieť nejaké veci čo som k tomu našiel: http://www.stud.fit.vutbr.cz/~xbelic02/ITU/TODO29.php

Ja som používal Zoho Viewer lebo dával najlepšie výsledky. Dám sem kus kódu čo mi asi fungoval.

class PDFExtracter {
  const URL_OF_ONLINE_CONVERTER = 'http://viewer.zoho.com/api/urlview.do';
  const URF_OF_CONVERTED_CONTENT = 'http://viewer.zoho.com/gettempcontent.do';

  static function getPDFContent($fileURL) {
    $queryString = '?url=' . urlencode($fileURL) . '&embed=true';
    $content = file_get_contents(
      PDFExtracter::URL_OF_ONLINE_CONVERTER . $queryString
    );
//echo PDFExtracter::URL_OF_ONLINE_CONVERTER . $queryString.'<br />';
    if($content === false) { return false; }
    
    $matchCount = preg_match(
      '#http://viewer\.zoho\.com/gettempcontent\.do\?genurl=[^>]+#', 
      $content, 
      $matches
    );
    if(!$matchCount) { return false; }
//echo "{$matches[0]}<br />";

    $content = file_get_contents($matches[0]);
    if($content === false) { return false; }
    
    return PDFExtracter::repairDiacritic( 
      strip_tags(iconv('UTF-8', 'ISO-8859-2//IGNORE', $content))
    );
  }
  
  static function repairDiacritic($string) {
    //preg_replace('/z\s*ˇ/', '', $string, -1, $count);
    //if($count > 0) {
      //$string = preg_replace('/a\s*´/', 'á', $string);
      //$string = preg_replace('/A\s*´/', 'Á', $string);
      //$string = preg_replace('/e\s*´/', 'é', $string);
      //$string = preg_replace('/E\s*´/', 'É', $string);
      //$string = preg_replace('/i\s*´/', 'í', $string);
      //$string = preg_replace('/I\s*´/', 'Í', $string);
      //$string = preg_replace('/l\s*´/', 'ĺ', $string);
      //$string = preg_replace('/L\s*´/', 'Ĺ', $string);
      //$string = preg_replace('/o\s*´/', 'ó', $string);
      //$string = preg_replace('/O\s*´/', 'Ó', $string);
      //$string = preg_replace('/u\s*´/', 'ú', $string);
      //$string = preg_replace('/U\s*´/', 'Ú', $string);
      //$string = preg_replace('/y\s*´/', 'ý', $string);
      //$string = preg_replace('/Y\s*´/', 'Ý', $string);
//      
      //$string = preg_replace('/c\s*ˇ/', 'č', $string);
      //$string = preg_replace('/C\s*ˇ/', 'Č', $string);
      //$string = preg_replace('/d\s*ˇ/', 'ď', $string);
      //$string = preg_replace('/D\s*ˇ/', 'Ď', $string);
      //$string = preg_replace('/e\s*ˇ/', 'ě', $string);
      //$string = preg_replace('/E\s*ˇ/', 'Ě', $string);
      //$string = preg_replace('/n\s*ˇ/', 'ň', $string);
      //$string = preg_replace('/N\s*ˇ/', 'Ň', $string);
      //$string = preg_replace('/r\s*ˇ/', 'ř', $string);
      //$string = preg_replace('/R\s*ˇ/', 'Ř', $string);
      //$string = preg_replace('/s\s*ˇ/', 'š', $string);
      //$string = preg_replace('/S\s*ˇ/', 'Š', $string);
      //$string = preg_replace('/z\s*ˇ/', 'ž', $string);
      //$string = preg_replace('/Z\s*ˇ/', 'Ž', $string);
//      
      //$string = preg_replace('/a\s*¨/', 'ä', $string);
      //$string = preg_replace('/A\s*¨/', 'Ä', $string);
//      
      //$string = preg_replace('/\S-\s+/', '', $string);
//      
      //$string = str_replace('´', 'í', $string);
    //} 
    //else {
      $string = preg_replace('/´\s*a/', 'á', $string);
      $string = preg_replace('/´\s*A/', 'Á', $string);
      $string = preg_replace('/´\s*e/', 'é', $string);
      $string = preg_replace('/´\s*E/', 'É', $string);
      $string = preg_replace('/´\s*i/', 'í', $string);
      $string = preg_replace('/´\s*I/', 'Í', $string);
      $string = preg_replace('/´\s*l/', 'ĺ', $string);
      $string = preg_replace('/´\s*L/', 'Ĺ', $string);
      $string = preg_replace('/´\s*o/', 'ó', $string);
      $string = preg_replace('/´\s*O/', 'Ó', $string);
      $string = preg_replace('/´\s*u/', 'ú', $string);
      $string = preg_replace('/´\s*U/', 'Ú', $string);
      $string = preg_replace('/´\s*y/', 'ý', $string);
      $string = preg_replace('/´\s*Y/', 'Ý', $string);
      
      $string = preg_replace('/ˇ\s*c/', 'č', $string);
      $string = preg_replace('/ˇ\s*C/', 'Č', $string);
      $string = preg_replace('/ˇ\s*d/', 'ď', $string);
      $string = preg_replace('/ˇ\s*D/', 'Ď', $string);
      $string = preg_replace('/ˇ\s*e/', 'ě', $string);
      $string = preg_replace('/ˇ\s*E/', 'Ě', $string);
      $string = preg_replace('/ˇ\s*n/', 'ň', $string);
      $string = preg_replace('/ˇ\s*N/', 'Ň', $string);
      $string = preg_replace('/ˇ\s*r/', 'ř', $string);
      $string = preg_replace('/ˇ\s*R/', 'Ř', $string);
      $string = preg_replace('/ˇ\s*s/', 'š', $string);
      $string = preg_replace('/ˇ\s*S/', 'Š', $string);
      $string = preg_replace('/ˇ\s*z/', 'ž', $string);
      $string = preg_replace('/ˇ\s*Z/', 'Ž', $string);
      
      $string = preg_replace('/¨\s*a/', 'ä', $string);
      $string = preg_replace('/¨\s*A/', 'Ä', $string);
      
      $string = preg_replace('/\S-\s+/', '', $string);
      
      $string = str_replace('´', 'í', $string);
    //}
    
    return $string;
  }
}
Nahlásit jako SPAM
IP: 78.141.66.–
z_moravec
~ Redaktor
+3
Posthunter
7. 7. 2011   #5
-
0
-

#4 m->29
Někdy otestuju, zajímalo by mě, jestli se to dá v reálu použít. Zvládne to i naskenované materiály (tzn. je tam nějaké OCR)?

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
m->29+6
Super člen
7. 7. 2011   #6
-
0
-

Dole sú vypísané podporované formáty: Microsoft Office: doc, docx, xls, xlsx, ppt, pptx, pps; OpenDocument: odt, ods, odp; OpenOffice:sxw, sxc, sxi; Other Formats: wpd, pdf, rtf, txt, html, csv, tsv

Myslím, že to parsuje z toho PDF a nefunguje tam OCR. Preto to aj rozhádže diakritiku. V PDF je totiž tá diakritika zle a ono to zoberie z toho. Takto to robí aj Google a ten dával dokonca horšie výsledky ako Zoho. OCR sa používa asi len na obrázky, ale to myslím Zoho nepodporuje. Na tom linku je veľa nástrojov. Jeden (už neviem ktorý) vracal pekný súvislý text, ale vyradil som ho kvôli tomu, že skenovanie trvalo aj minútu čo som si nemohol dovoliť.

Nahlásit jako SPAM
IP: 78.141.66.–
hulk
~ Anonymní uživatel
7 příspěvků
7. 7. 2011   #7
-
0
-

z_moravec: ake externe aplikacie si používal? ...lebo všade nájdem len informácie o tom ako vytvárať pdf, ale nie ako ich čítať. Išlo by to napr. z pdfLib??

Nahlásit jako SPAM
IP: 213.151.218.–
z_moravec
~ Redaktor
+3
Posthunter
7. 7. 2011   #8
-
0
-

Většinou používám utilitky z TeXu. Na OCR máme udělané vlastní udělátko.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Zdeněk
~ Anonymní uživatel
28 příspěvků
21. 7. 2011   #9
-
+1
-
Zajímavé

Co třeba vyzkoušet mPDF nebo FPDF :)

Nahlásit jako SPAM
IP: 80.90.129.–
m->29+6
Super člen
21. 7. 2011   #10
-
0
-

Tieto nástroje ponúkajú len opačný prevod: HTML -> PDF 

Nahlásit jako SPAM
IP: 78.141.66.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

PDF v XML — založil Brano

[C#,WinForms] html do pdf — založil motorcb

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý