QQ聊天记录导出并进行编辑(打印成书送人啊)

最近惹女票生气了,刚谈的温柔可人的女票不能就这么吹了啊!!!想着搞些什么东西补偿一下。想起来我俩QQ聊天记录应该挺有意义的,打算打印成书籍送给她,然后她必定痛哭流涕,非我不嫁也是有可能的。
但是制作过程中的到处是难点,不过作为一个程序员渣渣,除了练好ctrl+c和ctrl+v的技能,熟练召唤度娘和谷哥也是必要的。做程序员,一定要不耻下问。接下来开始制作。

1.首先从QQ消息管理器中选择你要导出的信息.
2.导出后进行mht文件的修改。
3.接下来就是对htm文件进行修改了。
4.进行PDF文件的生成。
5.PDF文件的修改。

第一步

导出的格式有三种:txt、bak、mht文件。txt文件没有图片文件,bak文件好像只能在恢复本地聊天记录的时候才能用,目光只能锁定在mht文件上。此时选择生成mht文件

第二步

mht文件不知道怎么编辑,问了度娘好久她也不告诉我,可能是嫉妒我有女票了。
这个时候我使用浏览器发现可以打开文件,然后就进行了文件的另存为命令保存成了htm格式的文件。

第三步

接下来就是对htm文件进行修改了。由于聊天记录中的图片占了很大的篇幅,又很不爽文件中文字的排版,鄙人又不是h5 coder,简直是天妒英才。只能硬着头皮瞅了瞅html的代码, 看不懂的地方特地跟公司的前端大佬进行了不可见人的交易 ,虽然问题很弱鸡,还牺牲了午休和下午的工作时间(希望同事看不到我的博客,要是有人打小报告,我的实习生涯可就要结束了。。。。) 。由于聊天记录中有的图片小有的图片大,因此在STYLE标签中设置了

IMG{max-width:200px; max-height:400px}

至少现在里边的图片看起来是比较舒服的大小了。 然后一行中有的文字太长,因此加上了自动换行的代码

DIV{width: 200px;word-wrap:break-word; word-break:break-all;}

然后又觉得姓名跟时间占一行比较省篇幅,就手撸了一段java代码对这个HTML文件进行了正则处理

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();
    //对时间进行匹配  并把左边的</DIV>标签删掉
    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("替换后的内容为     " + content);
        }

        bufferedWriter.write(content);
        content = bufferedReader.readLine();
    }
    bufferedWriter.flush();
    bufferedWriter.close();
    bufferedReader.close();
}
}

这步看起来麻烦,其实主要是对HTML文件的编辑和正则表达式加上java IO流的运用。

第四步

再次使用浏览器打开刚刚编辑好的文件matchFile.htm,浏览器中包含打印功能。 但是我又发现文字只占用了文档一半的空间,如果能两页合成为一页就好了,生成PDF文件对页面合成应该是可以的。此时选择

浏览器界面
另存为PDF

这个时候pdf文件就生成了。

第五步

生成的PDF文件有点大,找了半天发现一个网站可以对PDF进行操作,安利一下 https://smallpdf.com/
通过这个网站我对生成的PDF文件进行了压缩(吐槽一下这个网站速度是真的慢)。我们也可以对PDF进行文件的处理比如:把文件转换为图片格式的然后进行图片的拼接;或者也可以将PDF文件转换为word文档然后进行文件的修改。
分享个编辑PDF的神器
链接:https://pan.baidu.com/s/1ql8ahm_mJgopQAPECvidSw 密码:cqdw
可以把PDF转换成word文档然后进行编辑、对PDF文件进行压缩、生成图片等骚操作,是不是很强

其实主要是对mth文件进行修改,改成自己喜欢的样式。

差不多就这些步骤吧,终于搞完了,累死爸爸了。接下来我们可以把这个PDF发给女票啊,打印成书籍当做礼物。美滋滋的人生。完蛋,忘了女票也关注我的博客了,希望在我送出礼物之前她看不到这篇文章。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文件格式(或文件类型)是指电脑为了存储信息而使用的对信息的特殊编码方式,是用于识别内部储存的资料。比如有的储...
    一只不靠谱的猿_阅读 3,917评论 0 10
  • Windows文件 一、注册表(Registry) 注册表是Microsoft Windows中的一个重要的数据库...
    YBshone阅读 1,205评论 0 6
  • ★Windows环境下的文件后缀名绝大多数DOS文件名后缀在Windows下继续有效,但Windows本身也引出了...
    jianghu000阅读 1,554评论 0 5
  • 文宋鑫源 没有四方铜钱的石墩子,也没有镇宅辟邪的麒麟与狮子,很普通的两块是石头叠在一起,形成了左右极其不对称的石凳...
    宋鑫源阅读 241评论 0 0
  • 01 我们小团队一共10个人,销售,技术、工程,大家在一起工作,互相协作,互相配合,也互相夸奖,吐槽…曾经我以为这...
    佳子萋萋阅读 1,135评论 0 3