Lecteur SumatraPDF
(github.com/sumatrapdfreader)- SumatraPDF est un lecteur de documents multiformat pour Windows, prenant en charge les formats PDF, EPUB, MOBI, CBZ, CBR, FB2, CHM, XPS et DjVu
- La licence est (A)GPLv3, avec certaines parties du code sous licence BSD
- Plus d'informations sont disponibles sur le Website, le Manual et les Developer Information
1 commentaires
Avis de Hacker News
Comme Adobe pousse plus agressivement la monétisation d’Acrobat, certaines tâches liées aux PDF sont en train d’être remplacées par des outils open source. SumatraPDF fait partie des outils utilisés ; qpdf sert à supprimer les mots de passe, déverrouiller et convertir, et peut être installé sous WSL avec
apt-get install qpdfOn peut supprimer le mot de passe avec
qpdf --decrypt --password="" input.pdf output.pdf, et PDF4QT est un éditeur PDF open source pour supprimer, réordonner et extraire des pages, mais il n’a pas encore de release Chocolatey et doit donc être installé manuellementInkscape et LibreOffice Draw servent à modifier des PDF et ajouter du texte ; MuPDF est disponible sous forme d’outils en ligne de commande et de package Python pour le parsing, le remplissage de formulaires et l’ajout de texte ; SumatraPDF sert à la consultation ; et pdfplumber, avec Jupyter Lab, est utile pour extraire des tableaux PDF vers des pipelines de données
Excellent billet rétrospectif écrit par l’auteur de SumatraPDF : https://blog.kowalczyk.info/article/2f72237a4230410a888acbfc...
Le vrai sens est plutôt qu’on peut confier les tests aux utilisateurs, pas que les tests ou les revues de code sont inutiles
L’auteur teste probablement lui-même son code. Lancer l’application est déjà une forme de test. Mais ce n’est sans doute pas une méthode assez stricte ou systématique pour parler de la sécurité apportée par les tests de régression
Presque personne ne soutient sérieusement qu’il est impossible d’écrire du code complexe sans tests automatisés. Je suis un fervent partisan des tests automatisés, mais à la fin des années 90 et au début des années 2000, j’ai construit un renderer multiplateforme assez conséquent sans le moindre test automatisé ; cela a pris longtemps, et chaque changement devenait de plus en plus inquiétant
Discussion lors de la republication du même billet en 2023 : https://news.ycombinator.com/item?id=35065785 - mars 2023, 173 commentaires
J’aimerais que tous les développeurs de lecteurs PDF implémentent la fonction d’aperçu de sioyek[0]. Quand on survole un élément de référence croisée, le contenu référencé s’ouvre dans une petite fenêtre de prévisualisation
Pour lire des manuels et des articles techniques, c’est une fonctionnalité qui change complètement la donne, et on n’insistera jamais assez sur son utilité
[0] https://github.com/ahrm/sioyek#overview
Et si cette fonctionnalité amenait un lecteur PDF à exécuter du code distant arbitraire, ce serait un risque sérieux, non ?
https://en.m.wikipedia.org/wiki/Transclusion
Je viens de l’installer pour la première fois, et ses performances écrasent non seulement Adobe Reader, mais même Foxit. Battre Adobe Reader n’a rien d’extraordinaire, mais battre Foxit est assez impressionnant.
La taille d’installation ne représente aussi qu’environ 10 % de celle de ces programmes. Je me demande ce qu’Adobe peut bien faire pour que son logiciel soit aussi insupportablement lent et pénible à utiliser.
Sumatra est excellent et c’est quasiment le seul lecteur PDF que j’utilise sous Windows, mais il n’a qu’environ 10 % des fonctionnalités d’Adobe Acrobat. Cela dit, ces 10 % sont celles dont presque tout le monde a besoin.
Bénédiction à la personne qui a regardé la spécification PDF et s’est dit : « Sympa, j’aimerais écrire un parseur pour ça ».
Au début j’utilisais poppler, puis je suis passé à MuPDF. À l’époque, MuPDF était plus actif, et il semble que poppler ait aussi accéléré depuis.
Le cœur des fonctionnalités PDF n’est pas si mal à implémenter. D’après ce que j’ai vu, les parties mauvaises et complexes sont les ajouts ultérieurs comme le XML, le JavaScript dans les formulaires, les fonctions de graphismes vectoriels complexes comme le masquage vectoriel, la prise en charge de multiples espaces colorimétriques et des séparations CMYK, ainsi que la gestion des polices et le rendu du texte.
Il est aussi difficile de devoir rendre rapidement des PDF mal formés ; il est facile de rater la création d’un PDF, et les gens les cassent de toutes les manières imaginables. Si Adobe ou Chrome peuvent l’ouvrir, on ne peut pas simplement dire que c’est un « PDF invalide », donc les développeurs de MuPDF ont ajouté beaucoup d’heuristiques pour parvenir à afficher aussi des documents PDF cassés.
https://tcpdf.org/examples/example_014/
Je n’ai aucune idée de la façon dont ce truc fonctionne.
La spécification d’origine est un peu laide, avec par exemple des clés de dictionnaire d’une seule lettre pour économiser des octets dans le format, mais certaines parties sont réellement bien pensées. Les Appearance Streams sont excellents pour la compatibilité ascendante et descendante, et c’est probablement l’une des principales raisons pour lesquelles rien n’a remplacé le PDF.
Mais comme beaucoup de fichiers PDF ne respectent pas la spécification, il faut aussi accepter avec indulgence les fichiers PDF mal formés, comme le fait le parseur d’Adobe.
Une grosse mise à jour de SumatraPDF est sortie hier [1]. La liste des travaux en retard [2] contient beaucoup de corrections de bugs et d’améliorations.
[1] https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/...
[2] https://github.com/sumatrapdfreader/sumatrapdf/issues/3672
MainWindowBackground = #191919FixedPageUI [TextColor = #282828BackgroundColor = #ebdbb2SelectionColor = #2d938f...Jusqu’ici, je passais d’un mode à l’autre avec AutoHotkey en écrasant
SumatraPDF-settings.txt. J’aimerais partager un petit script, mais il s’est soudainement cassé il y a quelque temps.Comme d’autres l’ont dit, Sumatra fait partie de ces rares utilitaires exclusifs à Windows qui me manquent toujours quand j’utilise un Mac ou Linux. En particulier, il y a deux manipulations simples qui me manquent au quotidien pour consulter des schémas électriques, des plans mécaniques/techniques et des fiches techniques :
Alt + molette pour zoomer/dézoomer, et clic droit + glisser pour se déplacer. Je me demande s’il existe un visualiseur sur Mac ou Linux qui propose ces deux fonctions. Sur Mac, Skim prend en charge Option + molette et clic gauche + glisser pour se déplacer, mais on ne peut pas les réassigner à une autre touche ou à un autre bouton de souris.
Une fonction que j’adore vraiment, c’est que Page Down va en haut de la page suivante. C’est très pratique quand on veut parcourir rapidement un document avec un niveau de zoom qui ne correspond pas exactement à la taille de la page.
Ça me semble suffisamment proche. Si tu veux vraiment aller jusqu’au bout, il doit exister des apps shareware qui font de l’émulation clavier par application et du remappage d’entrées à la volée.
À ma connaissance, https://www.keyboardmaestro.com/main/ est la solution classique.
Ce qui est très pratique avec SumatraPDF, c’est qu’il recharge automatiquement les fichiers image ordinaires quand ils sont modifiés. Il est donc facile d’afficher une sortie graphique dans une fenêtre en enregistrant un fichier image.
J’adore vraiment SumatraPDF. Je l’utilise depuis des années, et il est excellent. Quand j’écris du LaTeX dans vim avec le document ouvert à côté dans Sumatra, il se met à jour immédiatement après compilation.
Le rechargement instantané des pages rend le flux de travail très fluide.
Il y a de fortes chances que ce soit ce que tu utilises. Il s’intègre nativement avec Sumatra, ainsi qu’avec MuPDF, Skim, etc. C’est ce qui est chouette.
J’ai utilisé Sumatra brièvement avant de passer à Linux ; il était plutôt bon et réactif.
Pendant mon doctorat, quand j’écrivais des manuscrits et des articles, Sumatra PDF était mon outil principal pour voir les changements dans les PDF en temps réel. La version payante d’Acrobat et la version gratuite de Foxit ont plus de fonctionnalités, mais elles verrouillent le fichier en cours de modification.