Domanda

Ho un requisito di progetto per il rendering HTML e catturare l'immagine renderizzata come un file su un server CentOS 5.4 senza testa. I miei requisiti specifici sono i seguenti:

1) Ingresso sarà un URL della pagina per rendere (o file: // URL di un file HTML locale), l'uscita sarà un file immagine contenente l'immagine di rendering della pagina
 2) CSS deve essere supportata dal renderer fino al livello-1 CSS
 3) Le immagini statiche nella pagina devono essere visualizzati correttamente nell'immagine di rendering, compresa qualsiasi colore trasparente in .GIF o .PNG file
 4) Deve essere in grado di girare su un senza testa CentOS 5.4 del server.
 5) Soluzione non deve dipendere qualsiasi prodotto o componente che non è libero per uso commerciale

Non ho bisogno di fare qualcosa con la pagina diversa da ottenere la cattura dello schermo e salvarlo in un'immagine. La parte più difficile sembra stia facendo questo in un ambiente senza testa. Alcune delle soluzioni che ho visto discusso necessità di un display al fine di lavoro.

Qualche suggerimento?

Grazie in anticipo, Jim

SOLUZIONE: Ho finito per usare la libreria Standard Widget Toolkit (www.eclipse.org/swt) per le sue capacità browser incorporato. Questo mi ha permesso di aprire una finestra di programmazione con un controllo del browser in esso, il rendering della pagina, quindi acquisire il contenuto della finestra in un file immagine (di solito un PNG). L'unico lato negativo di questo approccio che non può essere evitato è un "sfarfallio" quando la finestra deve essere reso visibile per un momento al fine di fare la cattura dello schermo. Ci posso convivere. Il resto era solo codice per inizializzare gli oggetti SWT che ottengono le risorse di sistema, un listener per verificare la presenza di un positivo completamento del caricamento della pagina, e un po 'di codice per ripulire una connessione appeso (quando il caricamento della pagina non viene completata per qualsiasi motivo).

Ho avuto un compagno di squadra per giocare con Xvfb (framebuffer X virtuale) su CentOS Linux. I test iniziali sembrano funzionare, così sembra che il consiglio dal manifesto qui sotto (che ha detto di provare Xvfb) può essere una soluzione valida per la parte server senza testa del mio problema.

È stato utile?

Soluzione

È possibile avviare un ambiente di X-windows virtuale utilizzando Xvfb. È ora possibile avviare un normale browser per il rendering della pagina e utilizzare un programma di utilità screencapture per catturare il contenuto della finestra. Non è abbastanza, ma straghtforward da fare.

WebKit è open-source e integrabile, forse è possibile utilizzare questo in una piccola applicazione nativa per il rendering su una tela e salvarlo su disco?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top