Electron: Activer la visionneuse PDF

Créé le 17 mars 2018  ·  133Commentaires  ·  Source: electron/electron

Il a été désactivé lors de la mise à niveau de Chromium 63 dans # 11459.
Veuillez activer le drapeau enable_pdf_viewer dans features.gypi , corriger la compilation et les tests.

app-feedback-program bug chromium componenpdf-viewer platforall upgrade-follow-u63

Commentaire le plus utile

Cela devrait être prêt à être testé dans la prochaine nuit 10.x. J'espère également effectuer un backport vers 9.x, même si cela risque de ne pas coller si cela pose des problèmes.

Tous les 133 commentaires

@sethlu @gnahzak l' un de vous a-t-il eu le temps de travailler là-dessus?

C'est toujours un bloqueur 3.0.0

@ckerr Nous n'avons pas fait beaucoup de progrès depuis l'ouverture de https://github.com/electron/electron/pull/13760 .

Comment une version "stable" peut-elle être publiée sans que cela ne soit corrigé? Je passe des heures à essayer de découvrir pourquoi mon application n'a pas fonctionné après la mise à jour.

3.0.0 est une nouvelle version majeure, par définition, elle peut contenir des «changements qui brisent la compatibilité descendante». Ils ont peut-être leurs raisons pour lesquelles ils ont exclu cela pour la version 3.0.0, mais oui, je pense que supprimer des fonctionnalités comme celle-ci n'est pas aussi cool ...

Comment une version "stable" peut-elle être publiée sans que cela ne soit corrigé? Je passe des heures à essayer de découvrir pourquoi mon application n'a pas fonctionné après la mise à jour.

C'est horrible! Même jusqu'à présent, ils n'ont pas réparé ...

Nous avons choisi de supprimer la prise en charge du rendu PDF natif de la version 3.0.0 car nous n'avons pas assez de personnes pour continuer à le maintenir, et ce n'est pas une fonctionnalité largement utilisée. Cela a été noté dans les notes de publication . Nous sommes toujours intéressés à le ramener, mais personne dans l'équipe principale n'a le temps disponible pour y travailler actuellement, il est donc bloqué dans un avenir prévisible. Si vous voulez le voir revenir, essayez de faire un PR!

J'apprécierais vraiment que cela fonctionne à nouveau. Comment puis-je aider?

Y a-t-il un moyen de le faire fonctionner dans mon application sans avoir à utiliser une version obsolète?
Dois-je utiliser https://github.com/electron/electron/tree/enable-pdf-plugin ? Si oui, comment?

La meilleure façon de commencer serait de lancer une construction locale d'électrons et de spécifier l'option de construction enable_pdf_viewer = true dans l'étape gn gen , par exemple

$ gn gen out/Debug --args='import("//electron/build/args/debug.gn") enable_pdf_viewer=true'

(ou de manière équivalente, éditez out/Debug/args.gn après avoir exécuté l'étape normale gn gen et ajoutez l'argument enable_pdf_viewer = true .)

La meilleure façon de commencer serait de lancer une construction locale d'électrons et de spécifier l'option de construction enable_pdf_viewer = true dans l'étape gn gen , par exemple

$ gn gen out/Debug --args='import("//electron/build/args/debug.gn") enable_pdf_viewer=true'

(ou de manière équivalente, éditez out/Debug/args.gn après avoir exécuté l'étape normale gn gen et ajoutez l'argument enable_pdf_viewer = true .)

Comment puis-je faire cela avec électron-builder?

électron-builder, malgré son nom, n'est pas un outil pour construire l'électron lui-même. Vous devrez suivre les instructions pour construire l'électron lui-même .

(la référence ci-dessus était une erreur; je nettoyais mon presse-papiers et il s'est éteint.)

électron-builder, malgré son nom, n'est pas un outil pour construire l'électron lui-même. Vous devrez suivre les instructions pour construire l'électron lui-même .

S'il ne s'agit que d'un drapeau, pourquoi n'est-il pas activé dans la version officielle?

S'il ne s'agit que d'un drapeau, pourquoi n'est-il pas activé dans la version officielle?

L'activation du drapeau ne le fait pas réellement fonctionner, dans son état actuel, il ajoute simplement les deps et les fichiers requis au processus de construction Electron. Ces fichiers ont des erreurs de compilation et provoquent des plantages lors de l'exécution, ces problèmes de compilation et plantages doivent être corrigés avant de pouvoir être activés dans la version officielle.

Pour votre information ... si vous avez besoin de la prise en charge de la visionneuse PDF dans 3-0-x maintenant, vous pouvez utiliser https://github.com/gerhardberger/electron-pdf-window. Je viens de le tester sur Electron 3.0.8 et cela fonctionne parfaitement.

Merci @jkleinsc, malheureusement, votre solution ne fonctionnera pas avec une iframe.
Dans mon fork de 3-0-xi, j'ai essayé de corriger la visionneuse PDF avec ce commit .

Cela compile et lie, malheureusement le PDF ne fonctionne toujours pas, j'ai débogué et j'ai trouvé que:
Dans AtomResourceDispatcherHostDelegate :: ShouldInterceptResourceAsStream ()
GetAssociatedRenderFrame renvoie -1 et -1.

Lorsque je débogue sur la branche 2-0-x, je n'obtiens pas -1 valeurs et le PDF fonctionne.
Quelqu'un peut-il m'aider? Peut-être que vous @ deepak1556 ?

Nous avons choisi de supprimer la prise en charge du rendu PDF natif de la version 3.0.0 car nous n'avons pas assez de personnes pour continuer à le maintenir, et ce n'est pas une fonctionnalité largement utilisée. Cela a été noté dans les notes de publication . Nous sommes toujours intéressés à le ramener, mais personne dans l'équipe principale n'a le temps disponible pour y travailler actuellement, il est donc bloqué dans un avenir prévisible. Si vous voulez le voir revenir, essayez de faire un PR!

Salut @nornagon Ce que je peux voir dans les notes de version, c'est que "PDF Viewer ne fonctionne pas actuellement mais est en cours de travail et sera à nouveau fonctionnel bientôt".
Ce message était plutôt positif, bien plus que "ce n'est pas une fonctionnalité largement utilisée". Au fait, avez-vous des statistiques sur cette dernière déclaration?

Je sais que ce n'est pas StackOverflow mais pour le moment j'utilise

shell.openItem(fullPath)

pour utiliser le visualiseur de pdf système qui est installé sur la plupart des systèmes de toute façon et qui a également une option d'impression qui semble manquer même à [email protected]

Y a-t-il des travaux prévus pour la prochaine version majeure? Nous sommes toujours sur électron v2.0.16 cause de la visionneuse PDF.

v4.0.0 vient de sortir et selon Support Doc vous ne supportez que les 3 dernières branches de version. Ce serait bien si nous pouvions récupérer la visionneuse PDF dans la v5 pour continuer à obtenir des correctifs de sécurité.

@jkleinsc Est-ce que cela est activement travaillé? Sinon, je vais travailler sur un correctif.

@chriswald Je travaille là-dessus mais je ne l'ai pas encore terminé, donc si vous avez un correctif prêt à partir, faites-le moi savoir; sinon je terminerai le travail que j'ai commencé.

J'ai résolu la plupart des erreurs de construction, mais j'ai raccroché ce matin à la génération des fichiers pdf_viewer_resources. Pouvons-nous discuter dans Slack pour ne pas spammer tout le monde dans ce fil?

@chriswald est sûr que nous pouvons discuter dans Slack.

@jkleinsc Avez-vous fait des progrès? Je n'ai pas pu vous contacter sur Slack, mais je cherche à savoir si je dois continuer à investir du temps dans un correctif.

Oui s'il vous plaît faites @chriswald!

Il s'agit d'un bêta-bloquant 3.0, 4.0 et 5.0 pour nous, nous sommes donc bloqués avec 2.0. @walltex pour plus de détails.

@chriswald Je travaille sur la résolution du problème pour 5-0-x et 4-0-x. À ce stade, je n'ai pas l'intention de traiter 3-0-x, donc si c'est quelque chose qui vous intéresse, allez-y.

@jkleinsc Parfait! Avez-vous une date estimée à laquelle le correctif sera prêt?

@chriswald bonne question. Je devrais être en mesure de trouver une ETA cette semaine. En raison du changement que nous avons fait dans 4-0-x pour utiliser GN pour la construction, le support PDF 4-0-x et 5-0-x va être une réécriture plutôt que d'essayer de caler ce que nous avons fait précédemment. versions.

@jkleinsc "va être une réécriture"> C'est ce que j'avais vu aussi, c'est bon de savoir que j'étais sur la bonne voie. L'achèvement des objectifs est le dernier facteur dont j'ai besoin pour décider si je dois continuer à travailler là-dessus pour respecter nos propres délais. Merci pour votre mise à jour! S'il vous plaît, tenez-moi au courant!

@chriswald après avoir creusé un peu plus loin et examiné mon emploi du temps,

@jkleinsc Merci pour la mise à jour! Cela me semble bien et s'inscrit bien dans notre propre calendrier. Je garderai mon environnement de développement configuré au cas où quelque chose se produirait, donc si cette estimation est repoussée, veuillez me le faire savoir et je pourrai peut-être revenir. Merci!

Une mise à jour sur le statut de cela?

Y a-t-il un jalon?
Je vais probablement déplacer mon projet vers la branche 2.0.x car j'ai vraiment besoin du visualiseur. Mais l'avoir corrigé dans stable 3.x serait bien mieux.

@jkleinsc combien avez-vous progressé? De bons résultats?

@vsvipul ça arrive mais malheureusement d'autres responsabilités ont ralenti ma progression. J'espère y travailler cette semaine et la prochaine

Peut-être que quelqu'un peut m'aider avec cette solution de contournement ici. Je suis un peu perdu.
J'ai un projet angulaire qui utilise l'électron avec le conditionneur d'électrons pour obtenir un exécutable. J'ai cherché le features.gypi dans mon package electron et dans mes node_modules locaux sans succès. Quelqu'un pourrait-il dire où trouver cela?

@Corebee Tout, y compris toutes les solutions actuellement possibles, est résumé dans la réponse acceptée à cette question:

https://stackoverflow.com/q/52844135/7910454

@Corebee Tout, y compris toutes les solutions actuellement possibles, est résumé dans la réponse acceptée à cette question:

https://stackoverflow.com/questions/52844135/view-pdf-in-electron-browserwindow

Ah merci, je n'ai pas vu ça. Je vais essayer, jusqu'à ce qu'il y ait une solution appropriée. Merci @ MiXT4PE

@jkleinsc y a-t-il des nouvelles concernant la mise à jour? De plus, s'il y a un moyen pour que je puisse vous aider, je serai heureux de le faire.

@DmitryMK, il s'avère que la mise en œuvre dans 5-0-x et les activer le service réseau. Des travaux sont en cours ici pour permettre cela: # 15791

@jkleinsc merci pour la mise à jour. Il semble que l'activation du service réseau lui-même soit une tâche ardue. Juste pour clarifier, cela signifie-t-il que la visionneuse PDF ne sera pas dans les versions 3 et 4?

@DmitryMK Le travail que je fais est centré sur le faire fonctionner dans master, qui sera probablement à ce stade 6-0-x. Si nous pouvons rétroporter, nous le ferons, mais étant donné l'exigence de service réseau, je doute que cela atteigne 3 et 4.

@jkleinsc - Y a-t-il une estimation quand il y aura une version électronique contenant le correctif?
D'après votre réponse à DmitryMK, je comprends que nous ne devrions pas compter sur le rétroportage du correctif vers Electron 4?
C'est une grande régression qui affecte de nombreuses applications et empêche la mise à niveau d'électron 2.0.X jusqu'à ce qu'il y ait une version qui contiendra le correctif

@jkleinsc comment pouvons-nous vous aider? https://github.com/electron/electron/pull/17163

@arnaudbud merci d'avoir demandé. J'ai essayé de le faire fonctionner, mais je pense que mon approche consistant à essayer de rester fidèle à ce que fait Chromium ne fonctionnera pas tant que nous n'aurons pas un support plus robuste pour les extensions. Il y a un PR ici # 17440 qui tente de le faire. À ce stade, je vais faire un saut sur ce point, donc si quelqu'un d'autre veut y aller (peut-être dans une approche qui ne nécessite pas de support d'extension), n'hésitez pas à le faire.

@jkleinsc , cela signifie-t-il qu'il n'y a aucune chance pour le visualiseur PDF natif d'être implémenté dans la v6.x?

Exécution d'Electron 6.0.0-beta.4
Toujours pas de support pdf 👎

@ mailtokartik1 il est possible que cela

curieux, un c ++ est-il nécessaire pour contribuer à Electron?

Que prend en charge la visionneuse PDF intégrée qui ne peut pas être obtenue avec PDF.js?

Rien pour autant que je sache, mais cela éviterait d'avoir à refactoriser la base de code dans les anciennes applications.

Il semble qu'il serait relativement facile de créer un BrowserWindow qui charge le PDF requis dans la visionneuse PDF.js. Voici un exemple que j'ai trouvé pour faire cela.

Assurez-vous simplement d'inclure tous les fichiers PDF.js pertinents.

Nous utilisons PDF.js pour charger des aperçus dans notre interface utilisateur principale et n'avons que de bonnes choses à dire à ce sujet. C'est le visualiseur utilisé dans Firefox donc il est bien testé.

@beig réfs # 12337

"Il a été désactivé lors de la mise à niveau de Chromium 63 dans # 11459.
Veuillez activer le drapeau enable_pdf_viewer dans features.gypi, corriger la compilation et les tests. "

Pourrions-nous obtenir cela dans la prochaine version bêta?

Cela laisse de côté les pdf intégrés, pas besoin d'une toute nouvelle ouverture de fenêtre -

@Nashorn, l'exemple

Semble que maintenant ne fonctionne pas trop ...
J'essaye d'utiliser la balise d'objet avec application / pdf et non ...

@dalexhd Si vous êtes d'accord avec son ouverture dans une nouvelle fenêtre, consultez cette réponse: https://stackoverflow.com/q/52844135/7910454

Vous voulez dire, définir les plugins sur true? Si tel est le cas, cela ne fonctionne toujours pas ...
Sinon, allez-y un peu plus loin ...
¿Comment puis-je afficher un pdf comme dans Chrome, dans Electron?

Est-il possible d'obtenir exactement le même comportement que le visualiseur PDF intégré, en utilisant pdf.js?
Avant même que la visionneuse intégrée ne devienne une chose (je pense que l'électron v1 ou même au début de la v2), j'ai essayé une solution utilisant pdf.js mais cela me semblait trop compliqué.

Le rendu des PDF via pdf.js fonctionnait bien lorsque je savais à l'avance que le type de contenu était application/pdf , car je pouvais saisir l'URL de la ressource et la transmettre via le paramètre de requête à une copie locale de pdf.js, puis afficher que dans sa propre fenêtre ou simplement en ligne dans un <iframe> .

Mais je n'ai pas trouvé de solution intéressante pour rendre un PDF qui fait partie du contenu rendu dans un <iframe> (ou un <iframe> intérieur d'un <iframe> plusieurs couches de profondeur, etc. .), car je ne pense pas pouvoir réécrire ces iframe src pour pointer vers pdf.js

Existe-t-il un moyen de détecter tout le contenu de type application/pdf et de le rendre via. pdf.js, même s'il s'agit d'un contenu intégré à plusieurs couches dans des éléments <iframe> ?

C'est quelque chose qui fonctionne juste avec le visualiseur intégré et c'est ma principale objection à ce que PDF.js devienne la «solution» permanente à moins que quelqu'un ne puisse m'aider avec mes difficultés ci-dessus :) :) :)

@ chris-ls dans mon cas, mes pdf sont avec des entrées dynamiques, donc mon entreprise ne peut pas les remplir avec pdf.js.

J'ai aussi des pages avec un affichage PDF en ligne, je ne peux pas modifier des centaines de pages pour faire ce type de câblage, en plus je n'ai pas d'accès ou autorisé à modifier le HTML / js entrant

Le PDF intégré / en ligne fournit à nos applications le contexte indispensable
Il est utile de jeter un œil au contenu PDF dans une vue plus large.

Le plugin PDF de Chrome est supérieur à toutes les implémentations de React pdf.js que j'ai prises pour un essai routier jusqu'à présent, à la fois en termes de performances et de simplicité / robustesse.

Pouvons-nous s'il vous plaît activer le support PDF intégré / en ligne dans Electron Chrome dans une prochaine version, ou avoir une configuration PATCH à suivre pour l'intérim.

bravo à ça

C'est vraiment un problème bloquant pour moi, mon application est conçue pour une utilisation en entreprise avec la génération de certificat pdf à partir de la base de données.
C'est une fonctionnalité indispensable pour moi.

@jkleinsc , vous avez supprimé votre devoir - ce problème est-il toujours en cours de

@ MiXT4PE que je sache, personne ne travaille actuellement là-dessus.

@jkleinsc C'est vraiment décevant. Quelles sont les difficultés?

Je voudrais vraiment savoir. Toutes les solutions de contournement données par l'équipe et d'autres sont loin d'être acceptables. Nous avons besoin d'une manière native et transparente d'utiliser l'objet et / ou l'iframe pour afficher les PDF incorporés.

@ MiXT4PE, la principale chose que j'ai rencontrée en essayant de porter sur la visionneuse de Chromium était sa dépendance au système d'extension de chrome. Electron ne prend en charge qu'une partie de ce système, ce qui a rendu difficile l'intégration du spectateur.

@jkleinsc Pourquoi a-t-il fonctionné avec Electron 2.x et a cessé de fonctionner avec 3.x et versions ultérieures? La visionneuse PDF de Chromium 61 (Electron 2.x) ne dépendait-elle pas du système d'extension Chromium?

Lorsque 2.XX cessera bientôt de recevoir des mises à niveau de sécurité, cette situation passera de terrible à désastreuse ...

Je cite les notes de version 3.0.0 :

PDF Viewer ne fonctionne pas actuellement mais est en cours de développement et sera à nouveau fonctionnel bientôt

@ MiXT4PE Open source est en grande partie axé sur les bénévoles et collaboratif. Pour cette raison, le temps et l'énergie nécessaires pour faire avancer les choses sont souvent les ressources les plus rares. Nous voulons qu'Electron soit le meilleur possible, mais nous devons également être réalistes quant à ce que l'équipe chargée de la maintenance d'Electron peut accomplir. Cela signifie que:

  • Nous n'avons peut-être pas d'ETA pour le moment où un problème sera examiné ou résolu.
  • Quelque chose que vous souhaitez implémenter peut ne pas l'être.
  • Une modification que vous souhaitez fusionner peut ne pas être fusionnée.
  • Insister sur ou faire des demandes pour l'un des éléments ci-dessus est considéré comme contraire au Code de conduite Electron

@jkleinsc I Je suis d'accord avec vous ... Mais
Merci pour toute patience ^^.

@dalexhd, malheureusement, ce n'est pas une priorité pour les entreprises qui paient les principaux mainteneurs d'Electron et je ne connais aucun bénévole qui

Tous: C'est le jeu Open Source. Si vous voulez une fonctionnalité: faites- le, payez -la ou attendez ;)

@jkleinsc Qu'en est-il de l'ajout de ce dépôt à issueHunt ou à Github Sponrors comme je le suggère dans ce numéro # 18113? Cela pourrait motiver les gens à travailler sur des fonctionnalités comme celle-ci.

@popod oui, ce problème conviendrait parfaitement à quelque chose comme IssueHunt. Je vais le transmettre aux autres responsables.

avec. ?
Vous voulez dire, nous pouvons être payés pour ajouter des fonctionnalités / corrections de bogues (~~ bombardé cérébral)?

Je suis prêt à mettre 1000 $ pour cette fonctionnalité. Quelqu'un d'autre?

Je suis actuellement absent du bureau. Je serai de retour le 5 août 2019.
Je répondrai à votre message à mon retour.

La réponse concerne un mail avec le sujet suivant:
Re: [électron / électron] Activer la visionneuse PDF (# 12337)


Envoyé (c) GRZ / RACON Linz 2019 Agent 'Absence'


Raiffeisen Software GmbH
Numéro de registre du commerce: 86804d, Landesgericht Linz
DVR: 0572934, UID: ATU 36961105

L'échange de messages avec l'expéditeur susmentionné par e-mail
est à titre informatif uniquement. Déclarations légales
ne peuvent pas être échangés via ce support.
La correspondance avec l'expéditeur mentionné ci-dessus par e-mail est uniquement pour
à des fins d'information. Ce support ne doit pas être utilisé pour l'échange de

communications juridiquement contraignantes.

@jkleinsc Maintenant qu'une meilleure prise en charge des extensions est en cours avec # 17440 - pensez-vous que le travail sur ce problème sera repris?

@ MiXT4PE, espérons-le. Je vais au moins mettre à jour # 17163 pour intégrer les modifications de # 17440 et voir si le travail actuel débloque des choses.

@jkleinsc Merci!

Merci 👍

Je ne sais pas à quel point cela vous aidera, mais il peut y avoir une solution temporaire au problème du PDF en utilisant Mozilla pdfjs jusqu'à ce qu'Electron viewer.html pour pdfjs pour ouvrir et charger le pdf dans le visualiseur PDF de Mozilla.

Un petit extrait de code de travail peut être comme suit:

function createWindow () {
  // Create the browser window.
  session.defaultSession.on('will-download', onDownload);
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      webviewTag: true
    }
  })

function onDownload(event, item, webContents) {
  console.log('onDownload');
  // Prevent from downloading pdf file.
  if (item.getMimeType() == 'application/pdf' && item.getURL().indexOf('blob:file:') != 0) {
    event.preventDefault();
    BrowserWindow.getFocusedWindow().loadFile(path.resolve(__dirname, "pdfjs/web/viewer.html"));
    //mainWindow.loadUrl(path.resolve(__dirname, "pdfjs/web/viewer.html"));
  }
}

J'ai une démonstration de travail de la même chose ici: https://github.com/mailtokartik1/sampleElectron.
Évidemment, vous pouvez ajouter les pdfjs en tant que télécommande, mais ce n'est qu'une démo fonctionnelle. J'espère que cela aide quelqu'un.

@ mailtokartik1 Mozilla pdf.js ne prend pas en charge la complétion de champ. C'est le principal problème.

@dalexhd oui mais je me suis dit qu'il n'y avait pas de code de contournement pour ce problème sur ce fil et peut-être que certaines personnes recherchent simplement une solution de contournement.

Salut @ mailtokartik1
pourriez-vous expliquer comment cette solution de contournement fonctionnera à un niveau élevé? On dirait qu'il intercepte la demande et redirige vers une visionneuse, mais je ne vois pas le var "encodedUrl" utilisé. ?

Salut @Nashorn
Oui, le encodeUrl n'est pas utilisé ici, j'essayais d'obtenir l'URL encodée de la page Web et de l'afficher à l'utilisateur, mais cela fonctionnait bien sans cela et je ne pensais pas que c'était nécessaire (Modifié le commentaire btw). À propos de l'explication, le comportement par défaut d'Electron est de télécharger les liens pdf, donc, fondamentalement, si nous écoutons l'événement will-download et vérifions s'il s'agit d'un PDF, nous pouvons acheminer le contenu vers le visualiseur pdfjs.

@ mailtokartik1 Je ne pense pas que cela fonctionne pour les fichiers PDF incorporés.

Je veux avoir des fichiers PDF incorporés dans le HTML via un iframe et il redirige simplement vers un écran blanc lorsque j'implémente ce que vous avez fait.

@teckwrek Je suis prêt à mettre 1000 $ pour cette fonctionnalité. Quelqu'un d'autre?

J'ajouterai facilement 500 $ à ce pot. @jkleinsc : Quelqu'un a-t-il mis en place un Issuehunt?

Je suis prêt à ajouter ma gratitude insensée parce que je suis pauvre.

@jkleinsc Avez-vous fait des progrès? Aussi: quelle serait la procédure pour payer cette fonctionnalité?

@ MiXT4PE malheureusement non. IssueHunt semble vouloir plus d'autorisations GitHub que nous ne sommes à l'aise, mais n'importe qui est libre d'ouvrir une prime sur BountySource ou une plate-forme similaire.

@jkleinsc Y a-t-il des problèmes plus importants actuellement ou est-il bloqué par autre chose?

@ DanielJackson-Oslo @teckwrek Vous pouvez mettre une prime sur ce problème sur https://www.bountysource.com/issues/56240517-enable-pdf-viewer

@teckwrek @ MiXT4PE a ajouté mes 500 $

@jkleinsc Est -ce que nous pouvons vous aider autrement?

@ DanielJackson-Oslo Le moyen le plus simple de contourner ce problème est de loin d'ajouter simplement le code de la visionneuse pdf.js à partir d' ici [cliquez sur Stable (v2.1.266)] dans un dossier statique de votre application d'électrons et de le charger dans une iframe src="statics/pdfjs/web/viewer.html?file=file:///path/to/some.pdf" ou même un pdf encodé en base64 comme src="statics/pdfjs/web/viewer.html?file=data:application/pdf;base64,<data>"

[modifier] Ce dernier est probablement soumis à une limite d'URL de 2 Mo, à moins que cela n'ait été levé dans le chrome ou l'électron récent.

@ mosu-forge Merci. Pour l'instant, il y a des problèmes avec pdf.js et Create react app, que je n'ai pas réussi à résoudre la dernière fois. J'y reviendrai plus tard, mais cela ressemble toujours à un hack. Résoudre ce problème et l'obtenir auprès de Chromium constituerait une solution beaucoup plus intéressante.

Voir https://github.com/wojtekmaj/react-pdf/issues/413 et https://github.com/wojtekmaj/react-pdf/issues/291 ainsi que https://github.com/mozilla/pdf .js / issues / 10813

Je n'ai pas essayé de l'ajouter moi-même comme vous le décrivez ici, je le mettrai dans le backlog :)

Des solutions existent pour afficher les documents PDF, mais l'implémentation de Chrome est de loin supérieure, d'où notre poids sur cette question; Le plugin PDF de Chrome est supérieur à toutes les implémentations de React pdf.js que j'ai prises pour un essai routier jusqu'à présent, à la fois en termes de performances et de simplicité / robustesse.

@ mosu-forge

De plus, inclure pdf.js semble être un "hack" inutile lorsque Chromium prend en charge la lecture native de PDF.

Il est beaucoup plus facile de laisser Chromium s'en occuper au lieu d'avoir à numériser toute la page pour tout cadre contenant une source PDF et à le remplacer par une visionneuse pdf.js, du moins à mon avis. (Exemple basé sur mes besoins d'utilisation.)

@teckwrek > Je suis prêt à mettre 1000 $ pour cette fonctionnalité. Quelqu'un d'autre?

Il est disponible ici: https://www.bountysource.com/issues/56240517-enable-pdf-viewer
Juste un rappel!

@ MiXT4PE @ DanielJackson-Oslo a ajouté mon 1000 $

@jkleinsc S'il vous plaît!

J'ai des problèmes lors de l'exécution des tests, quelqu'un pourrait m'aider? Je veux essayer de le résoudre

Mes tests échouent sur une nouvelle installation. Je suppose que je dois le faire fonctionner jusqu'à ce que je commence mes modifications - pourriez-vous m'aider à les exécuter?

Version du nœud utilisé: v8.16.0
Système d'exploitation: noyau Linux x64 5. * (néon KDE)
toutes les bibliothèques installées et les outils compilés comme dans la documentation

Running: Main process specs
Unhandled exception in main spec runner: electron/spec-main/api-net-spec.ts(1055,29): error TS2345: Argument of type 'ClientRequest' is not assignable to parameter of type 'WritableStream'.
  Property 'writable' is missing in type 'ClientRequest' but required in type 'WritableStream'.

Traceback (most recent call last):
  File "/home/tcd/electron-gn/src/electron/script/dbus_mock.py", line 28, in <module>
    subprocess.check_call(sys.argv[1:])
  File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/tcd/electron-gn/src/out/Debug/electron', 'electron/spec-main']' returned non-zero exit status 1
✗ Electron tests failed with code 1.
npm ERR! Test failed.  See above for more details.

Les mises à jour? @jkleinsc

Quelqu'un peut-il fournir une estimation raisonnable de ce qu'il faudrait en dollars pour en faire une priorité? Est-il possible de l'avoir prêt d'ici avril 2020?

Quelqu'un peut-il fournir une estimation raisonnable de ce qu'il faudrait en dollars pour en faire une priorité? Est-il possible de l'avoir prêt d'ici avril 2020?

Apparemment> 1600 $ (https://www.bountysource.com/issues/56240517-enable-pdf-viewer)

Je vois que c'est ce qui a été commis, je demande à quelqu'un d'écrire ce code que faudrait-il. À 1600 $, nous attendons toujours une solution. Est-ce que 4000 $ est une meilleure cible? 16 000 $? Je ne connais pas le niveau d'effort impliqué dans ce qui doit être fait, il m'est donc difficile de savoir ce qui est raisonnable.

Envoyé de mon iPhone

Le 8 décembre 2019 à 9h31, Leon Heess [email protected] a écrit:


Quelqu'un peut-il fournir une estimation raisonnable de ce qu'il faudrait en dollars pour en faire une priorité? Est-il possible de l'avoir prêt d'ici avril 2020?

Apparemment> 1600 $ (https://www.bountysource.com/issues/56240517-enable-pdf-viewer)

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, affichez-le sur GitHub ou désabonnez-vous.

@namotco Vous pouvez définir une prime qui expire. Sélectionnez simplement l'expiration dans 3 mois et promettez tout ce que vous êtes prêt à payer pour cette fonctionnalité. Soit vous obtenez la fonctionnalité jusque-là, soit vous récupérez votre argent.

Cela devrait être prêt à être testé dans la prochaine nuit 10.x. J'espère également effectuer un backport vers 9.x, même si cela risque de ne pas coller si cela pose des problèmes.

OH MON DIEU MERCI BEAUCOUP VOUS BELLE BELLE PERSONNE !!

Je peux confirmer que dans la dernière version nocturne (10.0.0-nightly.20200216), la visionneuse PDF fonctionne à nouveau. Merci pour le travail acharné à toutes les personnes impliquées.

Merci pour cette fonctionnalité tant attendue!
Cela inclut-il en quelque sorte la possibilité d'imprimer?

Merci pour cette fonctionnalité tant attendue!
Cela inclut-il en quelque sorte la possibilité d'imprimer?

Dans mon application, l'impression PDF ne fonctionne toujours pas. J'obtiens ces erreurs "ipc_message_attachment_set.cc MessageAttachmentSet détruit avec des pièces jointes non consommées"

Salut @nornagon .... J'ai confirmé que la visionneuse PDF fonctionne et que ma part de la prime est à vous!

Puis-je demander que les fonctionnalités de téléchargement et d'impression soient également corrigées?

@godza @teckwrek C'est un problème connu pour le moment. @nornagon voulait d'abord lancer une visionneuse PDF fonctionnelle, puis relier le reste par la suite. Merci encore @nornagon !

Voir les problèmes de suivi:

22179

22178

22180

@nornagon merci d'avoir

@ Order256 Ah, oui, je vois la même chose. Ouvert https://github.com/electron/electron/issues/22286 pour suivre le problème.

Je ne sais pas quoi faire avec la prime de mon côté, quand je l'ai essayé avec [email protected] et je suppose que j'ai frappé le bogue # 22286

@pbmzero avez-vous un lien vers le pdf avec lequel vous rencontrez des problèmes? https://gist.github.com/248085f4c2376e9211479f2d09634050 cela fonctionne pour moi dans 10.0.0-nightly.20200218.

@nornagon Ok, cela fonctionnait si je chargeais le PDF directement comme vous l'avez montré dans votre extrait de code.

Je m'attendais à ce que cela fonctionne dans l'iframe selon cet exemple: https://www.w3docs.com/tools/code-editor/1087

Cet exemple fonctionne pour moi dans une iframe: https://gist.github.com/c097b618d2c1cfccf99c6a80fb15c550

@nornagon En effet, cela fonctionne. Je vais aller de l'avant et libérer la prime. En espérant que ça colle!

Pour moi, [email protected] fonctionne parfaitement pour six cas d'affichage PDF que j'ai - c'est un excellent travail, merci beaucoup! J'espère juste obtenir la fonction d'impression.

J'ai essayé la dernière version de 9.0.0 (beta 3) et l'aperçu pdf fonctionne pour moi maintenant. Merci encore!

Une idée quand la version 9.0.0 beta 3 ou supérieure (même la version 10) deviendra une version officielle?

La date stable @waltder Electron 9 a été déplacée vers la date stable M83 de Chromium, le 19 mai. Il y a un PR en cours ici https://github.com/electron/electronjs.org/pull/3770 pour mettre à jour le site Web.

@jkleinsc Merci pour l'info.

Les fonctionnalités d'impression et de téléchargement seront-elles bientôt corrigées?

Bonne nouvelle que la visionneuse de pdf fonctionne à nouveau. Merci beaucoup!
Il existe déjà deux tickets ouverts pour l'impression # 22179 et le téléchargement # 22178

@nornagon Allez-vous aussi travailler sur ces tickets? Ou pouvez-vous donner une estimation de l'effort?

salut! J'utilise Electron 9.0.5 stable mais quand j'essaye d'ouvrir un pdf c'est un écran gris. Est-ce que je manque quelque chose?

Salut,
De mon côté, ce mauvais comportement était dû à ce simple morceau de code app.commandLine.appendSwitch('disable-site-isolation-trials');
Je ne comprends pas la relation entre la fonctionnalité PDF et cette partie du code, mais lorsque je la supprime, cela fonctionne comme prévu.

Cette page vous a été utile?
0 / 5 - 0 notes