最近惹女票生氣了刮吧,剛談的溫柔可人的女票不能就這么吹了昂ァ!I蹦怼井厌!想著搞些什么東西補(bǔ)償一下。想起來(lái)我倆QQ聊天記錄應(yīng)該挺有意義的致讥,打算打印成書籍送給她仅仆,然后她必定痛哭流涕,非我不嫁也是有可能的垢袱。
但是制作過(guò)程中的到處是難點(diǎn)墓拜,不過(guò)作為一個(gè)程序員渣渣,除了練好ctrl+c和ctrl+v的技能请契,熟練召喚度娘和谷哥也是必要的咳榜。做程序員,一定要不恥下問(wèn)爽锥。接下來(lái)開始制作涌韩。
1.首先從QQ消息管理器中選擇你要導(dǎo)出的信息.
2.導(dǎo)出后進(jìn)行mht文件的修改。
3.接下來(lái)就是對(duì)htm文件進(jìn)行修改了氯夷。
4.進(jìn)行PDF文件的生成臣樱。
5.PDF文件的修改。
第一步
導(dǎo)出的格式有三種:txt腮考、bak雇毫、mht文件。txt文件沒(méi)有圖片文件踩蔚,bak文件好像只能在恢復(fù)本地聊天記錄的時(shí)候才能用棚放,目光只能鎖定在mht文件上。此時(shí)選擇生成mht文件
第二步
mht文件不知道怎么編輯寂纪,問(wèn)了度娘好久她也不告訴我席吴,可能是嫉妒我有女票了。
這個(gè)時(shí)候我使用瀏覽器發(fā)現(xiàn)可以打開文件捞蛋,然后就進(jìn)行了文件的另存為命令保存成了htm格式的文件孝冒。
第三步
接下來(lái)就是對(duì)htm文件進(jìn)行修改了。由于聊天記錄中的圖片占了很大的篇幅拟杉,又很不爽文件中文字的排版庄涡,鄙人又不是h5 coder,簡(jiǎn)直是天妒英才。只能硬著頭皮瞅了瞅html的代碼搬设, 看不懂的地方特地跟公司的前端大佬進(jìn)行了不可見人的交易 穴店,雖然問(wèn)題很弱雞撕捍,還犧牲了午休和下午的工作時(shí)間(希望同事看不到我的博客,要是有人打小報(bào)告泣洞,我的實(shí)習(xí)生涯可就要結(jié)束了忧风。。球凰。狮腿。) 。由于聊天記錄中有的圖片小有的圖片大呕诉,因此在STYLE標(biāo)簽中設(shè)置了
IMG{max-width:200px; max-height:400px}
至少現(xiàn)在里邊的圖片看起來(lái)是比較舒服的大小了缘厢。 然后一行中有的文字太長(zhǎng),因此加上了自動(dòng)換行的代碼
DIV{width: 200px;word-wrap:break-word; word-break:break-all;}
然后又覺得姓名跟時(shí)間占一行比較省篇幅甩挫,就手?jǐn)]了一段java代碼對(duì)這個(gè)HTML文件進(jìn)行了正則處理
class HtmlFileMatch {
public static void main(String[] args) throws IOException, InterruptedException {
File newFilePath = new File("E:\\html\\qqMessage\\matchFile.htm");
newFilePath.createNewFile();
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(newFilePath));
File filePath = new File("E:\\html\\qqMessage\\QQ Message1.htm");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
String content = bufferedReader.readLine();
//對(duì)時(shí)間進(jìn)行匹配 并把左邊的</DIV>標(biāo)簽刪掉
Pattern pattern = Pattern.compile("</DIV>([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])</DIV>");
while (content != null) {
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
String matchString = matcher.group(0);
String replaceString = "\r" + matchString.substring(6, matchString.length()) + "</br>";
content = content.replace(matchString, replaceString);
System.out.println("替換后的內(nèi)容為 " + content);
}
bufferedWriter.write(content);
content = bufferedReader.readLine();
}
bufferedWriter.flush();
bufferedWriter.close();
bufferedReader.close();
}
}
這步看起來(lái)麻煩贴硫,其實(shí)主要是對(duì)HTML文件的編輯和正則表達(dá)式加上java IO流的運(yùn)用。
第四步
再次使用瀏覽器打開剛剛編輯好的文件matchFile.htm,瀏覽器中包含打印功能伊者。 但是我又發(fā)現(xiàn)文字只占用了文檔一半的空間英遭,如果能兩頁(yè)合成為一頁(yè)就好了,生成PDF文件對(duì)頁(yè)面合成應(yīng)該是可以的删壮。此時(shí)選擇
這個(gè)時(shí)候pdf文件就生成了贪绘。
第五步
生成的PDF文件有點(diǎn)大,找了半天發(fā)現(xiàn)一個(gè)網(wǎng)站可以對(duì)PDF進(jìn)行操作央碟,安利一下 https://smallpdf.com/
通過(guò)這個(gè)網(wǎng)站我對(duì)生成的PDF文件進(jìn)行了壓縮(吐槽一下這個(gè)網(wǎng)站速度是真的慢)税灌。我們也可以對(duì)PDF進(jìn)行文件的處理比如:把文件轉(zhuǎn)換為圖片格式的然后進(jìn)行圖片的拼接;或者也可以將PDF文件轉(zhuǎn)換為word文檔然后進(jìn)行文件的修改亿虽。
分享個(gè)編輯PDF的神器
鏈接:https://pan.baidu.com/s/1ql8ahm_mJgopQAPECvidSw 密碼:cqdw
可以把PDF轉(zhuǎn)換成word文檔然后進(jìn)行編輯菱涤、對(duì)PDF文件進(jìn)行壓縮、生成圖片等騷操作洛勉,是不是很強(qiáng)
其實(shí)主要是對(duì)mth文件進(jìn)行修改粘秆,改成自己喜歡的樣式。
差不多就這些步驟吧收毫,終于搞完了攻走,累死爸爸了。接下來(lái)我們可以把這個(gè)PDF發(fā)給女票啊此再,打印成書籍當(dāng)做禮物昔搂。美滋滋的人生。完蛋输拇,忘了女票也關(guān)注我的博客了摘符,希望在我送出禮物之前她看不到這篇文章。