Trình đọc SumatraPDF
(github.com/sumatrapdfreader)- SumatraPDF là trình đọc tài liệu đa định dạng dành cho Windows, hỗ trợ các định dạng PDF, EPUB, MOBI, CBZ, CBR, FB2, CHM, XPS, DjVu
- Giấy phép là (A)GPLv3, và một phần mã nguồn áp dụng giấy phép BSD
- Thông tin bổ sung có tại Website, Manual, Developer Information
1 bình luận
Ý kiến trên Hacker News
Khi Adobe đẩy mạnh việc kiếm tiền từ Acrobat một cách quyết liệt hơn, một số tác vụ PDF đang được chuyển sang công cụ mã nguồn mở. SumatraPDF là một trong những công cụ được dùng; qpdf được dùng để gỡ mật khẩu, mở khóa và chuyển đổi, có thể cài trên WSL bằng
apt-get install qpdfCó thể gỡ mật khẩu bằng
qpdf --decrypt --password="" input.pdf output.pdf; PDF4QT là trình biên tập PDF mã nguồn mở để xóa, sắp xếp và trích xuất trang, nhưng hiện chưa có bản phát hành trên Chocolatey nên cần cài thủ côngInkscape và LibreOffice Draw hữu ích cho chỉnh sửa PDF và thêm văn bản; MuPDF hữu ích dưới dạng công cụ dòng lệnh và gói Python để phân tích cú pháp, điền biểu mẫu và thêm văn bản; SumatraPDF để xem; còn pdfplumber hữu ích khi dùng cùng Jupyter Lab để trích xuất bảng PDF vào pipeline dữ liệu
Một bài hồi tưởng rất hay do tác giả SumatraPDF viết: https://blog.kowalczyk.info/article/2f72237a4230410a888acbfc...
Ý nghĩa thực sự gần với việc có thể giao việc test cho người dùng hơn là không cần test hay code review
Có lẽ tác giả cũng test mã. Vì chạy thử ứng dụng cũng là test. Chỉ là nhiều khả năng đó không phải cách nghiêm ngặt hay có hệ thống đến mức đem lại cảm giác an toàn như regression test
Hầu như không ai nghiêm túc tuyên bố rằng không thể viết mã phức tạp nếu không có test tự động. Tôi rất ủng hộ test tự động, nhưng cuối thập niên 90/đầu thập niên 2000 tôi từng làm một renderer đa nền tảng khá lớn mà không có test tự động nào; quá trình đó mất nhiều thời gian và càng thay đổi càng thấy sợ hơn
Thảo luận khi cùng bài được đăng lại năm 2023: https://news.ycombinator.com/item?id=35065785 - tháng 3/2023, 173 bình luận
Ước gì mọi nhà phát triển trình đọc PDF đều triển khai tính năng overview của sioyek[0]. Khi rê chuột lên một mục tham chiếu chéo, nội dung tham chiếu sẽ mở trong một cửa sổ xem trước nhỏ
Đây là tính năng thay đổi hoàn toàn cuộc chơi khi đọc giáo trình và bài báo kỹ thuật; nhấn mạnh bao nhiêu về mức độ hữu ích của nó cũng không đủ
[0] https://github.com/ahrm/sioyek#overview
Ngoài ra, nếu vì tính năng đó mà trình đọc PDF phải chạy mã từ xa tùy ý thì chẳng phải đó là rủi ro nghiêm trọng sao
https://en.m.wikipedia.org/wiki/Transclusion
Vừa thử cài lần đầu, hiệu năng áp đảo không chỉ Adobe Reader mà cả Foxit. Đánh bại Adobe Reader thì không có gì ghê gớm, nhưng vượt Foxit thì khá ấn tượng
Dung lượng cài đặt cũng chỉ khoảng 10% so với mấy chương trình đó. Không hiểu Adobe đang làm gì mà phần mềm của họ lại chậm đến mức không chịu nổi và khó dùng như vậy
Sumatra rất tuyệt và gần như là trình đọc PDF duy nhất tôi dùng trên Windows, nhưng nó chỉ có khoảng 10% tính năng của Adobe Acrobat. Có điều 10% đó lại là những tính năng gần như ai cũng cần
Xin chúc phúc cho ai nhìn vào đặc tả PDF rồi nghĩ “hay đấy, mình muốn viết một parser cho cái này”
Trước đây tôi dùng poppler rồi chuyển sang MuPDF. Khi đó MuPDF hoạt động tích cực hơn, và về sau poppler dường như cũng tăng tốc
Bản thân tập tính năng PDF cốt lõi không quá tệ để triển khai. Theo những gì tôi thấy, các phần tệ và phức tạp là những thứ được thêm vào sau này như XML, JavaScript trong form, các tính năng đồ họa vector phức tạp như vector masking, hỗ trợ nhiều color space và tách màu CMYK, xử lý phông chữ và render văn bản
Việc phải render nhanh cả các PDF được tạo sai cũng khó; PDF rất dễ bị làm hỏng khi tạo, và người ta làm hỏng nó theo mọi cách có thể tưởng tượng. Nếu Adobe hoặc Chrome mở được thì không thể chỉ gọi là “PDF sai”, nên các nhà phát triển MuPDF đã thêm rất nhiều heuristic để hiển thị được cả tài liệu PDF bị lỗi
https://tcpdf.org/examples/example_014/
Tôi không hiểu rốt cuộc thứ này hoạt động kiểu gì
Đặc tả gốc hơi xấu, như dùng khóa dictionary một chữ cái để tiết kiệm byte trong định dạng, nhưng cũng có những phần thật sự được suy nghĩ kỹ. Appearance Streams rất tuyệt cho tương thích tiến/lùi, và có lẽ là lý do lớn nhất khiến chưa có gì thay thế được PDF
Nhưng vì nhiều tệp PDF không tuân thủ đặc tả, bạn phải chấp nhận các tệp PDF sai một cách khoan dung như parser của Adobe
Hôm qua SumatraPDF vừa có bản cập nhật lớn [1]. Danh sách công việc tồn đọng [2] có rất nhiều bản sửa lỗi và cải tiến
[1] https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/...
[2] https://github.com/sumatrapdfreader/sumatrapdf/issues/3672
MainWindowBackground = #191919FixedPageUI [TextColor = #282828BackgroundColor = #ebdbb2SelectionColor = #2d938f...Từ trước đến nay tôi dùng AutoHotkey để ghi đè
SumatraPDF-settings.txtvà chuyển giữa các chế độ khác nhau. Tôi muốn chia sẻ một script nhỏ, nhưng gần đây tự nhiên nó bị hỏngNhư nhiều người đã nói, Sumatra là một trong số ít tiện ích chỉ có trên Windows mà tôi luôn thấy nhớ mỗi khi dùng Mac hoặc Linux. Đặc biệt khi xem sơ đồ mạch, bản vẽ cơ khí/kỹ thuật và datasheet, có hai thao tác đơn giản mà ngày nào tôi cũng nhớ:
Alt + cuộn để phóng to/thu nhỏ, nhấp chuột phải + kéo để di chuyển. Tôi tự hỏi liệu trên Mac hay Linux có trình xem nào cung cấp hai tính năng này không. Skim trên Mac hỗ trợ Option + cuộn và nhấp chuột trái + kéo để di chuyển, nhưng không thể thiết lập lại sang phím hoặc nút chuột khác
Một tính năng tôi thật sự thích là Page Down sẽ chuyển đến đầu trang tiếp theo. Nó rất thực dụng khi muốn lướt nhanh ở mức phóng to không vừa khít với kích thước trang
Tôi nghĩ như vậy cũng đủ tương tự. Nếu thật sự muốn ép cho bằng được, chắc sẽ có ứng dụng shareware nào đó làm mô phỏng bàn phím theo từng ứng dụng và remap input ngay tức thì
Tôi biết https://www.keyboardmaestro.com/main/ là giải pháp tiêu chuẩn
Một điểm rất tiện ở SumatraPDF là khi một tệp ảnh thông thường được chỉnh sửa, nó sẽ tự động tải lại. Vì vậy, rất dễ hiển thị đầu ra đồ họa trong cửa sổ bằng cách lưu vào tệp ảnh
Tôi rất thích SumatraPDF. Đã dùng nhiều năm rồi và nó rất tuyệt. Khi dùng LaTeX trong vim, tôi mở tài liệu song song trong Sumatra; mỗi lần biên dịch là nó cập nhật ngay lập tức
Nhờ tải lại trang tức thì, workflow rất mượt
Khả năng cao là bạn đang dùng nó. Nó tích hợp sẵn với Sumatra, và cũng tích hợp với MuPDF, Skim, v.v. Điểm đó rất hay
Trước khi chuyển sang Linux, tôi từng dùng Sumatra một thời gian ngắn; nó khá tốt và nhanh nhạy
Trong thời gian làm tiến sĩ, khi viết bản thảo và bài báo, tôi đã dùng Sumatra PDF làm công cụ chính để xem thay đổi PDF theo thời gian thực. Bản trả phí của Acrobat và bản miễn phí của Foxit có nhiều tính năng hơn, nhưng lại khóa tệp đang thay đổi