2017-03-31 2 views
0

J'utilise un script ruby ​​pour générer des fichiers PDF, que j'ouvre toujours à la main pour les imprimer.Ouvrir le fichier PDF sur Acrobat depuis le script ruby?

Existe-t-il un moyen de le faire automatiquement à partir du script (pour les ouvrir)?

Je googlé un peu et exec trouvé(), mais cela ne semble pas fonctionner pour les fichiers non-exe:

generate.rb:624:in `exec': Exec format error - test.pdf (Errno::ENOEXEC) 
     from generate.rb:624:in `<main>' 

En outre, le PDF généré est un dossier ci-dessus où le script est. Comment pourrais-je traiter le fichier d'une manière relative? exec ("../ whatever.pdf")? Cette approche s'est terminée en:

generate.rb:624:in `exec': No such file or directory - ../test.pdf (Errno::ENOENT) 
     from generate.rb:624:in `<main>' 

J'ai aussi essayé le spawn, même résultat. J'utilise Windows 10 et je voudrais que le PDF soit démarré par n'importe quel outil défini comme standard dans Windows. Y a-t-il un moyen de faire cela? Toute aide est très appréciée.

Merci

Répondre

1

Si votre fichier est un dossier au-dessus du dossier en cours alors nous avons besoin pour obtenir le dossier parent du répertoire courant, puis ajoutez le nom du fichier à it.To obtenir le chemin du fichier que vous pouvez utiliser

file_path = File.expand_path("..", Dir.pwd) + '/filename.pdf' 

Et je suppose que vous voulez ouvrir le pdf dans le lecteur PDF après l'avoir créé en utilisant ruby. Essayez cette option.

system ('start "" "file_path\filename.pdf"') 

Le code final serait comme ce

filepath = File.expand_path("..", Dir.pwd) + "/filename.pdf" 
str = 'start "" "' + "#{filepath}" + '"' 
system (str) 
+0

fonctionne parfaitement. Merci beaucoup! :-) – Howard