Banner

工作中会需要导出 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 主题也有关系。如果某些设置不生效,可以加上 !important 试一下。

样例