这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
zwyyy456

如何开发一款自己的 PDF 阅读器

  •  
  •   zwyyy456 · Jul 6, 2022 · 3813 views
    This topic created in 1410 days ago, the information mentioned may be changed or developed.

    开发原因

    目前的本地的 PDF 阅读器不能满足自己阅读英文 PDF 时,“划词选中英文单词并添加该单词和单词所在的句子到 anki”并生成卡片的需求,所以准备自己开发一个 PDF 阅读器,顺便锻炼自己的开发能力。

    目前会的

    楼主准研二,本科学机械的,只会一点 C++和 python ,Java 会非常小的一点,毕设的时候写了一点 Qt ,不懂前端,C#。

    预期功能

    • 基础的 PDF 阅读功能
    • 添加英文生词到 anki
    • mac 与 win 双平台
    • 待定

    楼主码力很弱,基本只用 keil 写过嵌入式的项目和刷 leetcode 写单独的 cpp 文件,没有单独开发过这种项目,所以还请各位指点一下技术路线,或者有什么推荐的开源项目可以参考吗?

    18 replies    2024-04-10 15:46:32 +08:00
    noe132
        1
    noe132  
       Jul 6, 2022 via Android   ❤️ 1
    给个思路
    用 pdfjs 做二次开发会相对比较简单
    8bryo4p5qn758Dmv
        2
    8bryo4p5qn758Dmv  
       Jul 6, 2022
    macOS 右键菜单有个 services 列表,可以自己开发功能
    zwyyy456
        3
    zwyyy456  
    OP
       Jul 6, 2022
    @noe132 好的,我去研究一下,因为之前用过 Firefox 自带的 pdf.js 看 PDF ,效果不好,所以自己开发时就没想到这个
    singerll
        4
    singerll  
       Jul 6, 2022 via Android
    exec “adobe pdf”
    SorryChen
        5
    SorryChen  
       Jul 6, 2022
    感觉如果码力欠缺还是研究研究绕一步,如果用 raycast utools 这种类似工具的话,写对应的插件比较好。PDF.js 体验属实不太好。PDF 阅读器市面上一票票公司写出来的,体验都不咋地,更不用说咱自己从头捣鼓了是不是。
    darklights
        6
    darklights  
       Jul 6, 2022
    PDFium

    不过我觉得做个 chrome 扩展更为现实。
    kkocdko
        7
    kkocdko  
       Jul 6, 2022
    用 PDF.js 应该是最方便的了,稍微学点 JS 就行。
    我用它弄了一个自用的小 Demo ,可以自动检测并隐藏 PDF 页面边距(宽边距很浪费屏幕空间)。思路是检测页面的 TextLayer 位置。
    注意不要手动用 PDF.js 的 API 去渲染,只要拿它给的 PDF Viewer 修改下就行了,省事。
    jorneyr
        8
    jorneyr  
       Jul 6, 2022
    OCR 截图识别文本,然后在鼠标出弹出操作菜单,不需要去识别 PDF ,只与界面上的文本相关,这样难度会降低很多。
    greatghoul
        9
    greatghoul  
       Jul 7, 2022
    zwyyy456
        10
    zwyyy456  
    OP
       Jul 7, 2022
    @greatghoul 如果只是 anki 扩展的话,online dictionary helper 更好用,只是用浏览器看本地 PDF 效果很糟糕
    SeanTheSheep
        11
    SeanTheSheep  
       Jul 7, 2022
    “划词选中英文单词并添加该单词和单词所在的句子到 anki”并生成卡片的需求。听上去不是太难,你需要自动添加到 windows 端的 anki 吗?我竟然有点想试试(我有点 C#经验)
    SeanTheSheep
        12
    SeanTheSheep  
       Jul 7, 2022
    OP 如果码力不太行我不建议上来就搞双平台,当然坚持双平台 Electron 一把梭好像也没毛病。如果单走一个 win, 你可以试试 winform 快速写一个 demo, 看看能不能正常跑通功能。还有就是如果你双平台都需要支持自动导入到 anki ,你需要确认 win 和 mac 两边不同版本的 anki 功能的实现方式是不是不一样,如果一样还好说,如果不一样那你的实现也大概率需要写两遍。
    zwyyy456
        13
    zwyyy456  
    OP
       Jul 7, 2022
    @SeanTheSheep 目前是打算用 Qt+pdf.js 写来着,双平台倒不是算必须,严格来说 mac 优先级可能还高一点,功能的话其实就是参照 chrome 上的"online dictionary helper"这个扩展;不过你说的对,确实应该先弄好单独一个平台再考虑跨平台的事情。
    SpecterShell
        14
    SpecterShell  
       Jul 7, 2022
    沙拉查词,既有 PDF 阅读器也有 Anki Connect 。
    用 Qt 的话,可以看看 MuPDF 。
    Daiwf
        15
    Daiwf  
       Jul 8, 2022
    如果打算从头撸一个也太难了吧。。你看下 pdf 结构的描述文档。直接就劝退你了。还是用 pdf.js 二次开发比较靠谱
    b4115Z4mRAz9P8EA
        16
    b4115Z4mRAz9P8EA  
       Jul 8, 2022
    好奇楼主最后采用的技术
    oreoiot
        17
    oreoiot  
       Aug 4, 2022 via iPhone
    插眼。目前在用 marginnote
    clemente
        18
    clemente  
       Apr 10, 2024
    还在开发吗~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2880 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 02:16 · PVG 10:16 · LAX 19:16 · JFK 22:16
    ♥ Do have faith in what you're doing.