Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Josef 24. 06. 2014, 12:03:43

Název: Bash - dávkový převod HTML do PDF
Přispěvatel: Josef 24. 06. 2014, 12:03:43
Ahoj,
snazim se udelat prevod asi 100 souboru pomoci wkhtmltopdf, ale mam problem, ze jak je v souboru pouzit base64, tak se ve vyslednem pdf snimek neukaze. Da se to nejak obejit? Nebo zna nekdo jinou moznost jak davkove prevest soubor s base64 do PDF?
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: dword 24. 06. 2014, 12:42:36
no napad by byl, pak uz jen to provest  ::)

Napsat si HTML konvertor, ktery kdyby nasel tag <img> s atributem src obsahujici base64 data, nahradil by src atribut cestou a vytvoril z base64 dat obrazek a ulozil ho do dane cesty, kde by se pak nacetl externe. Tim vznikne sada, ktera uz by se mela dat prevest i tim co neumi base64 kodovane obrazky.

Uznavam, ze je to to kanon na vrabce, mozna dobre jako posledni zalozni varianta, kdyby vse ostatni selhalo.

Predtim bych mozna zkusil latest devel build wkhtmltopdf, jestli to tam treba neni opraveno.
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: Josef 24. 06. 2014, 13:01:49
program je podle stranek aktualni a to s tim obrazkem je celkem vrazda .... nebo aspon klidne i neco pro Widle co mi hromadne prevede vsechny html do pdf bych uvital
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: karel 24. 06. 2014, 13:52:24
program je podle stranek aktualni a to s tim obrazkem je celkem vrazda .... nebo aspon klidne i neco pro Widle co mi hromadne prevede vsechny html do pdf bych uvital

zas takova vrzda to neni v pythonu celkem rychle, jinak taky se mi stava ze kdyz uz nevim kudy kam obracim se na win  :D
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: Filip Jirsák 24. 06. 2014, 14:17:46
Nerozumím tomu, co znamená „v souboru je pouzit base64“, a o jakém snímku v PDF je řeč. Chcete tím říct, že máte v HTML vložený obrázek (tag img), a tento obrázek není vložený přes odkaz, ale přímo Data URI jako např.
Kód: [Vybrat]
<img alt="snímek" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
Data URI je nestandardní rozšíření, podle mne je nejjednodušší to, co popisoval kolega – zkonvertovat to na normální obrázek vložený odkazem. Shánět další a další programy pro konverzi z HTML do PDF nemá podle mne smysl, protože to nestandardní rozšíření nejspíš také nebudou podporovat. Lepší je sehnat něco, co vám ta Data URI zkonvertuje na klasický odkaz – třeba Data URI Image Extractor (http://www.codeproject.com/Articles/221284/Data-URI-Image-Extractor).
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: Josef 24. 06. 2014, 15:46:02
OK, zkousel jsem

Kód: [Vybrat]
define('UPLOAD_DIR', 'images/');
$img = $db['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';

ale soubor se mi nedari ulozit jako obrazek. NEmate nekdo funkcni kod?
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: wamba 24. 06. 2014, 15:53:58
mě wkhtmltopdf (0.12.0), tento html soubor
Kód: [Vybrat]
<html>
  <head>
<title>pokus obrazek base64</title>
</head>
<body>
<h1>pokus obrazek base64</h1>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">
</body>
</html>

převede i s obrázkem
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: Josef 24. 06. 2014, 16:07:23
Tenhle se mi nedari prevest

me se to prenest nedari ... nemuzu to sem ani pastnout, protoze je tu limit 20000 znaku

Kód: [Vybrat]
<img alt="" style="max-width:100%; max-height:100%;" src="data:image/png;base64,/9j/4AAQSkZJRgzacatek je ale stejnej
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: karel 24. 06. 2014, 17:14:43
A je nutne pdf nestacil by obrazek ?
pac by to slo treba pres toto
http://xmodulo.com/2013/07/how-to-take-full-length-screenshot-of-web-page-in-linux.html
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: karel 24. 06. 2014, 17:18:31
A je nutne pdf nestacil by obrazek ?
pac by to slo treba pres toto
http://xmodulo.com/2013/07/how-to-take-full-length-screenshot-of-web-page-in-linux.html

jen dodam ze jsem si vyjel napovedu a je tam i

-p, --printer=PRINTER      Print page on PRINTER (default: none, save as PDF)

takze by to melo take umet pdf
Název: Re:Bash davkovy prevod HTML do PDF
Přispěvatel: Josef 25. 06. 2014, 09:01:37
Vyreseno...
V img tagu jsem pouzil stylovani, ktere se asi "neprelozilo". Misto style=... ted pouzivam primo definici vysky a sirky a funguje jak ma