Weboldal mentés GUI nélkül

Sziasztok!

Egy általános weboldalt szeretnék lementeni PDF / PS formátumba. Kizárólag olyan megoldás jöhet szóba, ami nem igényel GUI-t(firefox, khtml kizárva), tehát sima parancssoros.

Tud valaki ilyenről?

Előre is köszönöm!

Hozzászólások

htmldoc
http://www.easysw.com/htmldoc/

uhu ala keszitettem csomagot belole.

erzekeny a kodra, nem tamogatja az utf-8-at igy konvertalni kell a htmldoc meghivasa elott.

en php-vel igy oldom meg:


exec("iconv -f UTF-8 -t Latin2 < ".$tmpfile." > ".$tmp2file);
header("Content-Type: application/pdf; charset=iso-8859-2");
$options = "-t pdf --top 0cm --left 2cm --bottom 2cm --right 2cm --charset iso-8859-2  --fontsize 9.0 --header . --footer n/N --webpage";
passthru("/usr/bin/htmldoc $options $tmp2file");

tmpfile =utf8 eleresi ut
tmp2file = iso eleresi ut

Azért zártam ki a GUI-t, mert egy webszerveren kellene futnia, amire nem akarok csak ezért X-t felrakni.

Fontos lenne a CSS is, mert elég sok formázás van a doksiban. Amúgy nagy általánosságban: egy riportkészítő rendszerbe kellene. Most HTML és MHT kimenet van, de ügyfelek igénylik a PDF-t is.

Csak egy ötlet:
Qt-ben QTextDocument elég sok html tag-et ismer:
http://doc.trolltech.com/4.2/richtext-html-subset.html

Illetve a QPrintert rá lehet venni, hogy pdf-be mentsen.
Nem hiszem, hogy a progi több lenne 15 sornál....

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

4.0-tól kezdve a Qt több kisebb libből áll, amik közül a QtGUI csak az egyik.
Hogy a konkrét problémához kell-e QtGUI nem tudom, de a logikus az lenne, hogy nem.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

meg nem hasznaltam sokat , de jol mukodott.
html2ps , parncssoros kozvetlen akar tobb urlrol is csinal ps-t

Elozmenyek:
- oo.org feltelepitese
- spadminnal pdf nyomtato letrehozasa nalam "pdfkonv" neven van ez a nyomtato.
- vncserver feltelepit
- vncserver egyszer manual elindit (nem scriptbol) ekkor generalja le jelszot ugyanis
- ha a szerver publikus, akor iptables-vel zard be azokat a portokat amelyeken dolgozni fog.

ha ez meg van akkor johet a script:


#!/bin/bash
vncserver :1
# ITT LEHET CIKLUS VAGY A KOVETKEZO SOR TOBBSZOR
soffice -pt "pdfkonv" /mnt/office_fajl.sxw -display :1
vncserver -kill :1

lenyeg:
- ugyan az a user inditsa el a vncservert mint aki ezt a scriptet.
- ha a vnc server 2-vel indul, akkor a -display kapcsolo az office-nal is 2 legyen.
- nem minden disztron soffice az inditando allomany neve van ahol ooffice vagy mas

végülis elég lenne valami képformátumba is, mert abból már egyszerűbb pdf-be rakni.
erre esetleg ötlet?

nekem az egyik webszerveremen van grafikus felulet is, igaz ez a gep router mogott van es csak par szolgaltatas van portforwardolva. en nem zarkoznek el azert a gui-tol, foleg ha van lehetoseged adsl vagy jobb kapcsolat vegen logatni egy gepet erre a celra. igy nem kell, hogy az eles szervereden legyen ez a szolgvaltatas, es guival pikk-pakk osszedobhatod.

Esetleg próbáld ki ezt :-))

htpml2ps

Pl.:

html2ps -o hup.ps http://www.hup.hu 

/* Elnézést fáradt vagyok :-( */

A dompdf php5 class-t nézted már? A specifikáció és a demó alapján tudja azt, ami neked kell.

Bocs, de tényleg ragaszkodsz azokhoz a css dolgokhoz? Ha html és minimális css megy, bőven jónak kellene lennie. Szerintem írj egy php scriptet, ami a css-sel megformázott oldalt átalakítja egy kevésbé css-esre alakítja, ahol a nem támogatott css elemeket átalakítja html-lé, vagy egyszerűen kihagyja. Vagy biztosan van még más jó megoldás.

Vagy nem létezik mht2pdf progi? :)

"nem támogatott css elemeket átalakítja html-lé, vagy egyszerűen kihagyja"
valószínűleg szeretném h ugyanúgy nézzen ki mint az eredeti.... :D

"Vagy nem létezik mht2pdf progi?"
mht-ban semmi extra nincs: BASE64-ben kódolt(MIME) HTML + IMAGE + CSS fájlok egyben
szóval semmi köze pdf-hez

Ha még nem próbáltad:

http://www.titov.net/2006/03/19/how-to-make-site-screenshots-with-linux…

Nekem import-al nem ment. Egy olyan programot kellett keresnem ami képes volt az x szerver képét menteni. Persze akkor ott lesz a keret, de be kell állítani az operát, hogy mindig teljes képernyőben fusson és akkor jó lesz. Persze ugyan ezt meg lehet csinálni firefox-al is, de ott a valós teljes képernyő elérése kicsit macerásabb.

Persze az is elég necces a megoldásban, hogy x időt vár és utánna készíti el a képet. Vagy betöltődik az oldal, vagy nem. Ezt talán ki lehetne védeni egy operába beépülő kiterjesztéssel, ami onload után csinál valamit a háttérben, ami elindítja a képernyőkép készítését. Ezt firefoxban egyszerű kiterjesztés írásával meg lehet csinálni, de operát nem ismerem annyira. (widget-ekel lehet ilyet?)

ebbe scriptben van sleep, gondolom 25 sec eleg a betolteshez


#!/bin/bash
 
export DISPLAY=":1"
 /usr/bin/opera -display :1 -geometry 1024x768+0+0 -nomail -nosession "$1" > /dev/null 2> /dev/null &
 /usr/bin/sleep 25
 /usr/bin/import -window root -display :1 -crop 1024x768+7+50 "$2"
 /usr/bin/killall opera

forras: http://www.titov.net/2006/03/19/how-to-make-site-screenshots-with-linux…

ha egy korrekt pdf-et akarsz elkesziteni akkor ne html-bol konvertald at, hanem hasznald az fpdf php osztalyt ami pontosan olyan pdf-et fog neked kesziteni amilyet szeretnel, csak ebben nem html-t kell kimenetnek hasznalnod hanem egy pdf objektumhoz kell hozzaadni a reszeit. sok peldaprogramot es osztalykiterjesztest talalsz az oldalan http://www.fpdf.org/