Markdown 在线转 PDF - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
rookiebulls
V2EX    分享创造

Markdown 在线转 PDF

  •  
  •   rookiebulls 142 天前 2090 次点击
    这是一个创建于 142 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Markupdown 在线转 PDF

    背景

    随着 AI 技术的普及,我们越来越频繁地使用 AI 工具润色方案和文章,这些内容通常以Markdown格式输出。然而,Markdown在分享时并不理想。

    市面上现有的 Markdown 在线转 PDF 工具大多要求将文件保存到本地后再上传转换,操作繁琐且缺乏灵活性,无法调整字体大小、页面边距等细节,隐私也无法保障。于是我就开发了这款工具。

    这款工具旨在利用浏览器(基于 Chromium)的打印功能,将标记语言在线直接转换为 PDF ,目前已支持Markdown格式。

    立即体验: https://ml2pdf.xyz

    功能

    • 实时预览:支持类 PDF 的分页式预览,所见即所得
    • 样式自定义:可调整字体、字号及页面边距
    • 页面美化:支持插入页码及自定义页眉页脚
    • 安全可靠:纯前端实现,无需担心隐私泄露
    • 便捷高效:复制粘贴,无需本地存储和上传步骤
    第 1 条附言    141 天前
    ## 更新

    - 支持代码高亮

    ```python
    def quick_sort(arr):
    if len(arr) <= 1:
    return arr # 基线条件:空数组或单元素数组已经有序
    pivot = arr[0] # 选择第一个元素作为基准
    left = [x for x in arr[1:] if x <= pivot] # 小于等于 pivot 的放左边
    right = [x for x in arr[1:] if x > pivot] # 大于 pivot 的放右边
    ```

    - 支持 mermaid

    ```mermaid
    graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
    ```

    - 支持 LaTex 数学公式

    $$
    \begin{align}
    \tag{1.1}
    V_{sphere} = \frac{4}{3}\pi r^3
    \end{align}
    $$
    第 2 条附言    141 天前
    - 支持手动分页

    插入
    <!-- page break -->

    <div class="page-break"></div>
    23 条回复    2025-05-21 15:24:17 +08:00
    touchwithe
        1
    touchwithe  
       142 天前 via iPhone
    建议加入代码高亮。
    一般我是用 sublime 的插件 markdownPreview 在浏览器预览然后 cmd+p 打印为 pdf 。
    qqqyh
        2
    qqqyh  
       142 天前 via iPhone
    Obsidian 导出 pdf 秒了
    foufoufm
        3
    foufoufm  
       142 天前
    @qqqyh 正好遇到一个 obsdian 用户, 我想问问如何增加空白行,默认会给我导出的话移除掉我的空白行
    line
        4
    line  
       142 天前
    好像 latex, mermaid 都不支持。
    tedding
        5
    tedding  
       142 天前
    我是使用 vscode 插件在浏览器预览,然后打印到 pdf ,可以手动微调 dom 影响打印的 pdf
    rookiebulls
        6
    rookiebulls  
    OP
       142 天前 via iPhone
    @line 现在只是支持了 markdown
    rookiebulls
        7
    rookiebulls  
    OP
       142 天前 via iPhone
    @touchwithe 我以前也这么干的,也是觉得有点麻烦,而且我想加页脚不好加
    rookiebulls
        8
    rookiebulls  
    OP
       142 天前 via iPhone
    @qqqyh 有时就是想在线快速转一下,不然很多工具都可以做
    rookiebulls
        9
    rookiebulls  
    OP
       142 天前 via iPhone
    @tedding 调 dom 也太麻烦了吧
    rookiebulls
        10
    rookiebulls  
    OP
       142 天前 via iPhone
    @touchwithe 代码高亮支持了
    VtoEXL
        11
    VtoEXL  
       142 天前
    开源吗,想学习下
    tedding
        12
    tedding  
       142 天前
    @rookiebulls 毕竟不是每一个主题渲染出来的格式都满意,我就算使用你这个配置在某些时候也不够灵活
    dallaslu
        13
    dallaslu  
       142 天前
    似乎一些细节还可以优化:

    * 创建打印友好型网页: https://blog.baoshuo.ren/post/printer-friendly-webpage/
    * 网页打印样式: https://dallas.lu/how-to-write-print-styles-for-webpages/
    BerniLin
        14
    BerniLin  
       142 天前
    老哥牛的,请问开源吗?
    rookiebulls
        15
    rookiebulls  
    OP
       142 天前 via iPhone
    @dallaslu 好的,下来看下
    rookiebulls
        16
    rookiebulls  
    OP
       142 天前 via iPhone
    @tedding 这个确实是的,要灵活性就得牺牲便利性
    qqqyh
        17
    qqqyh  
       142 天前
    @foufoufm 用 html 语法<br><br>即可。另外 Ob 编辑模式和预览模式渲染效果不一致,以预览模式为准。
    foufoufm
        18
    foufoufm  
       141 天前
    @qqqyh 那也没有自动添加<br>的方案诶。。。
    mokecc
        19
    mokecc  
       141 天前
    给你找个葫芦 https://tool.lu/markdown/
    rookiebulls
        20
    rookiebulls  
    OP
       141 天前
    @mokecc 他这个没有分页效果,页边,页头,页码这些也不能设,而且这个是后端渲染的
    mokecc
        21
    mokecc  
       141 天前
    @rookiebulls 好像是前端。我刚刚断网,也可以正常渲染,生成 PDF
    rookiebulls
        22
    rookiebulls  
    OP
       141 天前
    @mokecc 那估计是 jsPDF 之类的库渲染的
    rookiebulls
        23
    rookiebulls  
    OP
       141 天前
    @line 支持了,但只支持 latex 公式
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     891 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 20:01 PVG 04:01 LAX 13:01 JFK 16:01
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86