Frage

Ich habe ein Projekt Anforderung HTML zu rendern und das gerenderte Bild als Datei auf einem kopflos CentOS 5.4 Server zu erfassen. Meine spezifischen Anforderungen sind:

1) Geben Sie eine URL zur Seite zu machen (oder file: // URL an einer lokalen HTML-Datei) ausgegeben werden, um eine Bilddatei mit dem gerenderten Bild der Seite
enthält  2) CSS muss vom Renderer bis zu CSS Level-1 | unterstützt werden  3) Statische Bilder auf der Seite müssen ordnungsgemäß in dem gerenderten Bild angezeigt werden, einschließlich der transparenten Farbe in GIF- oder PNG-Dateien
 4) Muss in der Lage auf einem kopflos CentOS 5.4 Server ausführen.
 5) Lösung darf nicht von einem Produkt oder eine Komponente, die nicht frei für die kommerzielle Nutzung ist

Ich brauche nichts mit der Seite zu tun, außer dass die Screen-Capture erhalten und es auf ein Bild zu speichern. Der schwierige Teil scheint in einer Made Umwelt tut dies zu werden. Einige der Lösungen, dass ich eine Anzeige, um Arbeit diskutiert Notwendigkeit gesehen.

Irgendwelche Vorschläge?

Vielen Dank im Voraus, Jim

LÖSUNG: mit der Standard Widget Toolkit-Bibliothek (www.eclipse.org/swt) für seine eingebetteten Browser-Funktionen Ich landete. Das erlaubte mir, programmatisch mit einem Browser-Steuerelement in ein Fenster zu öffnen, machen Sie die Seite, dann den Inhalt des Fensters in eine Bilddatei erfassen (in der Regel ein PNG). Der einzige Nachteil an diesen Ansatz, der nicht vermieden werden kann, ist ein „Flackern“, wenn das Fenster für einen Moment, um sichtbar gemacht werden muß die Bildschirmaufzeichnung zu tun. Ich kann damit leben. Der Rest war nur Code, um die SWT Objekte zu initialisieren, die Systemressourcen zu erhalten, ein Zuhörer für einen erfolgreichen Abschluss der Seite zu laden, um zu überprüfen, und einige Code einer hängengebliebenen Verbindung zu bereinigen (wenn die Seite Last nie aus irgendeinem Grund beendet).

habe ich einen Mitspieler mit xvfb zu spielen, um (X virtueller Framebuffer) auf CentOS Linux. Die ersten Tests scheinen zu arbeiten, so dass es wie der Rat von dem Plakate schaut unten (der sagte versuchen xvfb) kann eine tragfähige Lösung für den Headless-Server Teil meines Problems sein.

War es hilfreich?

Lösung

Sie können eine virtuelle X-Windows-Umgebung mit xvfb starten. Sie können nun einen regelmäßigen Browser die Seite und verwenden Sie ein Screencapture-Dienstprogramm zu erfassen den Inhalt des Fensters zu machen beginnen. Es ist nicht schön, aber straghtforward zu tun.

WebKit ist Open-Source und bündig, vielleicht haben Sie dies in einer kleinen native App auf einer Leinwand machen verwenden können, und speichern Sie es auf der Festplatte?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top