受限环境下Jupyter Notebook导出HTML的打印格式优化求助
刚好帮同事解决过一模一样的问题!因为办公环境受限没法装LaTeX工具,只能靠优化HTML来搞定打印效果,给你几个亲测有效的办法:
1. 先在Notebook里嵌入自定义CSS(一劳永逸)
不用导出后再改,直接在你的Notebook里加一个代码单元格,用%%html魔法命令插入样式,之后导出的HTML自动生效:
%%html <style> /* 1. 彻底消除打印边距 */ @page { margin: 0 !important; } body { margin: 0 !important; padding: 0 !important; } .container { width: 100% !important; max-width: none !important; padding: 0 10px !important; /* 留一点点内边距避免内容贴边 */ } /* 2. 隐藏IN/OUT标识,让代码区域更整洁 */ .prompt { display: none !important; } /* 3. 解决代码截断问题:自动换行+自适应宽度 */ div.input_area pre, div.output_area pre { white-space: pre-wrap !important; word-wrap: break-word !important; max-width: 100% !important; } /* 4. 减少空间浪费:隐藏冗余元素+压缩单元格间距 */ #header, #toolbar { display: none !important; /* 去掉顶部导航栏/工具栏 */ } div.cell { margin: 0.3em 0 !important; /* 缩小单元格上下间距 */ padding: 0 !important; } </style>
运行这个单元格后,再导出HTML,基础优化就完成了。
2. 已经导出HTML?手动修改也很简单
如果已经导出了不想重新跑Notebook,用记事本/VS Code打开HTML文件,找到<style>标签(一般在文件开头),把上面的CSS代码粘贴进去,保存后刷新页面再打印就行。
3. 浏览器打印时的关键设置
最后打印前别忘了调整浏览器的打印参数:
- 勾选无页眉页脚(避免浏览器自动加的网址、页码)
- 缩放选择适合宽度或者100%(根据你的内容调整)
- 如果是Chrome,还可以在“更多设置”里把背景图形打开(如果你的Notebook有代码高亮样式)
这样调整后,打印出来的内容应该就没有多余边距、代码不截断,也看不到IN[1]的标识了,空间利用率也会高很多~
内容的提问来源于stack exchange,提问作者curious




