2009-06-24 6 views
1

Nous faisons une application pour gérer et imprimer des fichiers Word, Excel, PowerPoint et PDF ...Comment utiliser les arguments de ligne de commande pour imprimer des fichiers MS Office?

Aucune application ne peut être montrée à l'utilisateur lors de l'impression.

Pour ce faire, nous trouvons des arguments de ligne de commande qui fonctionnent bien:

(en utilisant openoffice.org)

"C:\Program Files\OpenOffice.org 3\program\soffice.exe" -norestore -nofirsts tartwizard -nologo -headless -pt MicrosoftXPSDocumentWriter doc1.doc 

(en utilisant MS Word)

"C:\Program Files\Microsoft Office\Office\WINWORD.EXE" doc1.doc /q /n /mFilePrintDefault /mFileExit 

Mais nous ne trouve pas d'option pour définir la plage de pages à imprimer ...

Est-ce possible? Une autre option pour imprimer ces documents sans rien montrer à l'utilisateur?

Merci d'avoir lu.

toutes les idées seraient appréciées

+0

Pourquoi avez-vous tagué votre question "java"? Êtes-vous à la recherche d'une solution Java? Ou est-ce que quelque chose va bien? –

+0

@divo, je pense que son point est qu'il utilise la ligne de commande pour être en mesure d'exécuter l'impression à partir d'une application Java. – Yishai

+0

@divo juste comme @Yishai a dit. – Hector

Répondre

3

Je repenser vraiment faire cette application en Java. Si l'application doit gérer des documents Word, et que votre interaction avec Word est constituée de suppositions que Word est installé sur la machine locale, alors Java n'ajoute rien à la partie. .NET est probablement le bon moyen d'aller ici (où vous pourriez facilement interagir avec les objets com office pour obtenir ce dont vous avez besoin). Cela étant dit, pour l'open office, regardez le open office SDK que vous auriez à faire dans le cadre de votre installateur pour cette application.

Pour Microsoft Office, je regarderais un pont Java-COM (tel que Jacob) pour appeler les objets COM. Si ce n'est pas une option, vous pouvez, dans le cadre de votre processus d'installation, installer une macro dans Word que vous pouvez appeler avec le paramètre/m et transmettre les valeurs de plage dont vous avez besoin - mais cela devient très horrible très rapidement.

Questions connexes