Kirjoittaja Aihe: Miten HTML-sivu PNG-kuvaksi?  (Luettu 3848 kertaa)

snifi

  • Vieras
Miten HTML-sivu PNG-kuvaksi?
« : 31.03.08 - klo:21.49 »
Miten saan kokonaisesta HTML-sivusta tehdyksi PNG-kuvan? Sen pitäisi olla komentoriviltä käynnistettävissä, ja tallentaa koko sivun alue, joko pienemmissä osissa tai kokonaisena.

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #1 : 31.03.08 - klo:21.59 »
Tästä vois olla edes jotain apua tai sitten eil. Ei ole mikään komentorivi ohjelma kyllä. http://html2image-linux.guangming-software.qarchive.org/

Linux user #460798

beh

  • Käyttäjä
  • Viestejä: 154
    • Profiili
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #2 : 31.03.08 - klo:23.02 »
Tästä vois olla edes jotain apua tai sitten eil. Ei ole mikään komentorivi ohjelma kyllä. http://html2image-linux.guangming-software.qarchive.org/
Aika hintava...  $299.95  ???

snifi

  • Vieras
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #3 : 31.03.08 - klo:23.42 »
Löysin tällaisen Ruby-skriptin:
 
http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3AMozEmbed

Koodia: [Valitse]
require 'gtkmozembed'
w = Gtk::Window.new
w.title = "Lean & mean browser"
w.resize(780, 570)
w << Gtk::MozEmbed.new
w.child.chrome_mask = Gtk::MozEmbed::ALLCHROME
w.child.location = "http://www.ruby-lang.org"
w.show_all
Gtk.main

Nyt pitäisi enää saada sivun sisältö talteen.

http://mirko.lilik.it/Ruby-GNOME2/moz-snapshooter.rb

http://ruby-gnome2.sourceforge.jp/hiki.cgi?RubyGecko#MozSnapshooter+%28HTML+page+thumbnailer%29

Osaisiko joku kasata näistä?

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #4 : 31.03.08 - klo:23.49 »
Tästä vois olla edes jotain apua tai sitten eil. Ei ole mikään komentorivi ohjelma kyllä. http://html2image-linux.guangming-software.qarchive.org/
Aika hintava...  $299.95  ???

Katos, en huomannu ees, että oli maksullinen.. Pahoittelen..

Linux user #460798

peran

  • Vieras
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #5 : 01.04.08 - klo:02.51 »
Miten saan kokonaisesta HTML-sivusta tehdyksi PNG-kuvan? Sen pitäisi olla komentoriviltä käynnistettävissä, ja tallentaa koko sivun alue, joko pienemmissä osissa tai kokonaisena.

Jos se mahtuu tulostettaessa 1:lle A4:lle, niin sellaisen voi tulostaa aluksi tiedostoon linukassa.

Tuloste.ps

Sen jälkeen imagemagick:n (-paketti, jonka mahdollisesti joudut lisäämään.) convertilla tulostat sen haluamaasi muotoon. Haluamallasi tarkkuudella.
päätteessä:
Koodia: [Valitse]
convert -density 300 tuloste.ps tuloste.png
Edit - ei tämäkään siis ole täysin komentorivillä automatisoitava.
Samanlaista ohjelmaa hain itsekin. Pari vuotta sitten, mutten löytänyt.

Löytyihän ko. säie: http://forum.ubuntu-fi.org/index.php?topic=3991.0

Tilanne on saattanut muuttua, ja ohjelmat ovat saattaneet kehittyä.
Nyttemmin osaisin tehdä vähän fiksummin kuin silloin, mutta en täydellistä ratkaisua.
« Viimeksi muokattu: 01.04.08 - klo:02.59 kirjoittanut peran »

ilkant

  • Käyttäjä
  • Viestejä: 1275
  • Kubuntu
    • Profiili
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #6 : 01.04.08 - klo:03.01 »
KDE:n Konquerorissa on jopa www-sivun kielenkääntötyökalu. Oliskohan tuolla webbisivu kuvaksi -toiminnolla yleisempää mielenkiintoa yhdeksi selaimen työkaluksi?

UbunTux

  • Käyttäjä
  • Viestejä: 2046
  • KubunTux
    • Profiili
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #7 : 01.04.08 - klo:03.26 »
Koodia: [Valitse]
convert -density 300 tuloste.ps tuloste.png
Edit - ei tämäkään siis ole täysin komentorivillä automatisoitava.

html2ps?
Koodia: [Valitse]
#!/bin/bash
wget $1 -o sivu
cat sivu| html2ps |convert - -density 300  sivu.png
tuota viilailisi?
KDE neon
Uudempaa KDE:tä Ubuntulla

peran

  • Vieras
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #8 : 01.04.08 - klo:04.03 »
KDE:n Konquerorissa on jopa www-sivun kielenkääntötyökalu. Oliskohan tuolla webbisivu kuvaksi -toiminnolla yleisempää mielenkiintoa yhdeksi selaimen työkaluksi?

Sellainen ohjelma on olemassa, joka ottaa snapshotin konquerorista, mutta haluaisin sellaisen lisäyksen, jolla voisi tulostaa sivu tiedostoon komentoriviltä käsin. Jotenkin tällä tavalla. (En tosin tarvitse sitä niin paljoa, että olisin laittanut tikkua ristiin ko. asian puolesta, joten varsinaista haluamisen kynnystä ko. toiminta ei ole osaltani saanut). Minulla ei ole väliä, millä (kunhan ei IE:llä) valtaselaimella ko. ominaisuus olisi. Tai vaikka IE:llä, mikäli se toimisi Linukassa ilman lisenssiongelmia.

Koodia: [Valitse]
coolselain http://minunsite.com  -printtofile:tiedosto.ps
Tietenkin siinä voisi olla myös normaali tulostus:
Koodia: [Valitse]
coolselain http://minunsite.com  -print
Näistä ominaisuuksista olisi lähinnä hyötyä ohjelmien kehittäjille, joten olen yllättynyt, ettei FireFoxissa tai Konquerorissa ole vielä ko. toimintoja. Ehkä niitä ei sitten tarvita.  ;)

peran

  • Vieras
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #9 : 01.04.08 - klo:04.05 »
html2ps?

En usko, että html2ps:n specifikaatio on riittävän täydellinen.  :(

snifi

  • Vieras
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #10 : 01.04.08 - klo:12.20 »
Koodia: [Valitse]
import gtkhtml2
import gtk
import urllib
import urlparse

opener = urllib.FancyURLopener()
currentUrl = None

def is_relative_to_server(url):
    parts = urlparse.urlparse(url)
    if parts[0] or parts[1]:
        return 0
    return 1

def open_url(url):
    uri = resolve_uri(url)
    return opener.open(uri)

def resolve_uri(uri):
    if is_relative_to_server(uri):
        return urlparse.urljoin(currentUrl, uri)
    return uri

def request_url(document, url, stream):
    f = open_url(url)
    stream.write(f.read())

def link_clicked(document, link):
    print 'link_clicked:', link
    global currentUrl
    try:
        f = open_url(link)
    except OSError:
        print "failed to open", link
        return
    currentUrl = resolve_uri(link)
    document.clear()
    headers = f.info()
    mime = headers.getheader('Content-type').split(';')[0]
    if mime:
        document.open_stream(mime)
    else:
        document.open_stream('text/plain')
    document.write_stream(f.read())
    document.close_stream()

document = gtkhtml2.Document()
document.connect('request_url', request_url)
document.connect('link_clicked', link_clicked)

document.clear()
document.open_stream('text/html')
document.write_stream('<html><head></head><body>Hello, World!<br><a href="http://www.gnome.org/">click me</a></body></html>')
document.close_stream()

def request_object(*args):
    print 'request object', args

view = gtkhtml2.View()
view.set_document(document)
view.connect('request_object', request_object)

sw = gtk.ScrolledWindow()
sw.add(view)

window = gtk.Window()
window.add(sw)
window.set_default_size(400, 400)

window.show_all()

gtk.main()

Tämä on Pythonia, ja näyttäisi jotakuinkin renderöivän HTML-sivun sisällön. Komponentit ovat standardeja GTK-kompomentteja, joten tästä ei varmaankaan ole enää pitkä matka kuvaksi tallentamiseen. Asensin aika ison kasan paketteja, mutta luulisin, että tarvittavat ovat lähinnä libgtkhtml2-dev ja python-gtkhtml2, tai ehkä jokin muu libgtk*-alkuinen.


snifi

  • Vieras
Vs: Miten HTML-sivu PNG-kuvaksi?
« Vastaus #11 : 04.04.08 - klo:10.55 »
Yksi vaihtoehto: PyKHTML

http://paul.giannaros.org/pykhtml/

Tämä käyttää Konquerorin elementtejä, joten vaatii joidenkin lisäpakettien asentamista. Uusin virallinen versio PyKHTML 0.2 ei (vielä) sisällä kuvankaappausmahdollisuutta (kts. API -- browser.screenshot("screenshot.png", screenshotFinished)  vaan toimiva versio täytyy asentaa Bazaar Repositorystä (kts. asennusohjeet PyKHTL:n sivulta). Positiivisena puolena on, että tämä renderöi sivun samannäköiseksi kuin Konqueror. Sivun leveys on säädettävissä width-parametrilla ja sivu tallentuu yhtenä kokonaisena kuvana. PyKHTML-sivuilta löytyy valmis esimerkkiohjelma.