Obsidian中Markdown导出PDF的样式设置

工作中会需要导出 PDF 给其他人,特别是现在大家都用微信协作,PDF 不会像 Word、PPT 一样文字和样式错位。

Obsidian 导出 PDF 有 多种方案,我选择默认导出 PDF 的功能,支持双链图片,只是默认样式太丑了。所以专门写一个打印的 CSS 代码片段,满足个性化需求。

/* 文件名可以命名为 print.css */
@media print {

	/* 页边距 */
	@page {
	margin: 0.3in;
	}
	
	body, p, li{
	/* 行间距 */
	line-height: 1.8;
	/* 字体 */
	font-family: Avenir next, -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;
	/* 段后间距 */
	padding-bottom: 3px;
	}
	
	/* callouts行间距 */
	div.callout-title-inner{
	line-height: 1.8;
	}
	
	/* 首行缩进 */
	p{
	text-indent: 2em;
	}
	
	/* 标题居中 */
	h1,h2{
	text-align: center;
	}
	
	/* 标题防页面截断、标题段落间距 */
	h1, h2, h3, h4, h5, h6 {
	page-break-after: avoid;
	padding: 8px 0 ;
	}
	  
	img {
	display:block;
	margin: 1em 0
	}
	
	a img {
	border: none
	}
	
	/* 表格居中 */
	table {
	margin: 1px;
	width: 100%;
	border-collapse: collapse;
	}
	
	/* 表格文字居中 */
	table,tr,th,td{
	text-align: center !important;
	}
}

效果如下。不过需要注意的是,不同人用同一个代码片段可能效果会有些差异,因为它跟使用的 Obsdian 主题也有关系。我用默认主题和 Minimal 都测试过,正常的。如果某些设置不生效,可以加上 !important 试一下。

本文同步发表于个人博客

8 个赞

@uncoverman 你好,请教一下我的操作没有成功,请问可能是什么原因,我的操作步骤是:

  1. 复制你的CSS代码,建立了一个CSS文档
  2. 将CSS文档放入外观CSS代码片段并刷新
  3. 导出PDF仍然是默认格式

请问可以怎样调整?谢谢。

和楼上一样,同求使用方法

不知道你用的什么主题,我用默认的和 minimal 的主题都是可以的,在自己的库和全新的 demo 库都测试过。应该是 CSS 冲突了,可以把主题切换或者其他自定义 CSS 片段关了试试。

不知道你用的什么主题,我用默认的和 minimal 的主题都是可以的,在自己的库和全新的 demo 库都测试过。应该是 CSS 冲突了,可以把主题切换或者其他自定义 CSS 片段关了试一试。

用的bluetopaz,我再研究一下试试看。

最后解决了没有?