我需要的是成品呈現頁面與當前風格的HTML(也許內聯),並完成了運行腳本,使用服務器端應用程序將只有一個URL(沒有額外的信息,如餅乾,沒有POST,沒有阻礙形式等)。HTML內容與完成呈現頁面的當前樣式(也許內聯),並完成運行腳本
使用瀏覽器庫的臨時運行的瀏覽器或獨立實用程序的網橋/代理是可接受的解決方案(但是,所選的瀏覽器或瀏覽器庫必須在所有主要平臺上可用,並且必須能夠無需運行一個OS GUI存在或安裝)。
一個可選的要求是事後刪除所有腳本(已經有代表這個單獨的解決方案,將其添加在這裏,因爲也許給出的答案就能去除的腳本,同時渲染或類似的東西)。
如何獲取(使用data URI)在CURENT HTML文檔的當前樣式(也許內聯)和當前圖像的單個.html文件在HTML + CSS的快照?
如果可以使用純PHP這將是一個加號來實現(雖然我懷疑這一點,我還沒有發現什麼有趣的事)。
編輯:我知道如何加載HTTP資源,並得到HTML一個URL,這不是我要找的;)
編輯2 例輸入HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<link rel="stylesheet" type="text/css" href="/css/example.css">
<script type="text/javascript" src="/javascript/example.js"></script>
<script type="text/javascript">
window.addEventListener("load",
function(event){
document.title="New title";
document.getElementById("pic_0").style.border="0px";
}
);
</script>
<style type="text/css">
p{
color: blue;
}
</style>
</head>
<body>
<p>Hello world!</p>
<p>
<img
alt=""
style="border: 1px"
id="pic_0"
src="http://linuxgazette.net/144/misc/john/helloworld.png"
>
</p>
</body>
</html>
輸出示例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>New title</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
b{font-weight: bold}
</style>
<style type="text/css">
p{
color: blue;
}
</style>
</head>
<body>
<p>Hello world!</p>
<p>
<img
alt=""
style="border: 0px"
id="pic_0"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAK3RFWHRDcmVhdGlvbiBUaW1lAFYgMzEgYXVnLiAyMDEyIDE3OjU4OjU1ICswMjAwWMdbPwAAAAd0SU1FB9wIHw8ABeoUyU4AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAAABlBMVEX///8AAABVwtN+AAAAXklEQVR42uWQUQ6AMAhD6Q3a+19WqsawwMf+NLEfy3iDlC7idTGQp/YglFAsUMqSwjlQOhN3mIMTHDq70SeEWBbt0EG8POWkDySvmCh/SssvNfwIfb+hFmgjFKPf6gDQBAQ368m09AAAAABJRU5ErkJggg=="
>
</p>
</body>
</html>
通知如何<title>
標記已更改,border: 1px
如何變爲border: 0px
,圖像URL如何轉換爲data URI。
例如,一些這些變換(內聯的CSS和<title>
標籤)可以檢查使用谷歌瀏覽器檢查器中的文檔時觀察到的。
編輯3:使用頁面內容(樣式和圖像)替換外部資源並刪除javascript是一個簡單的部分。最難的部分是在運行javascript之後計算CSS樣式。
編輯4也許這可以使用注入的JavaScript來完成(仍然需要瀏覽器控制)?
您需要綁定到一個渲染引擎[例如: Webkit] - 這可能是一個不錯的開始:http://stackoverflow.com/questions/4362855/php-read-an-http-url-and-write-it-to-pdf – moonwave99
@ moonwave99是的我知道wkhtmltopdf: )如果這是開始,我有很多工作要做...... :( –
嗯,我認爲渲染爲PDF是一個加號 - 應該有一個步驟,當他們在代碼中獲得純html + css時,如果你敢潛入圖書館,你可能會得到你需要的數據^^ – moonwave99