2010-02-01 11 views
1

J'ai un webservice qui a un rapport de cristal qui génère une facture à partir de ma base de données, puis exporte le cristal vers un PDF, dans un flux, puis renvoie une chaîne sur la méthode Web.Impression automatique d'un PDF

Sur le côté client, j'ai une application Winforms C# qui appelle ce service web. Je voudrais être en mesure d'imprimer automatiquement le PDF côté client sans ouvrir Acrobat Reader.

Je ne voudrais de préférence pas enregistrer le PDF soit parce que je dois actuellement enregistrer le PDF puis utiliser un processus pour ouvrir Acrobat Reader, puis imprimer le PDF.

+0

Pourquoi le serveur ne peut-il pas imprimer la facture? –

Répondre

0

Vous pouvez utiliser la ligne de commande:

acrord32 /t "out.pdf" "Acrobat Distiller" "AdobePS Acrobat Distiller" "in.pdf" 

La syntaxe est:

chemin acrord32.exe/t printername drivername nomport

  • Initiés Acrobat Reader, imprime un fichier tout en supprimant la boîte de dialogue d'impression Acrobat, ferme Reader.
+0

Salut John, Ce n'est pas une solution fiable. J'ai essayé avant. En outre, si interrompt les licences Acrobat. J'ai contacté Adobe il y a quelques années à ce sujet, et ils m'ont dit qu'acrobat est une application de bureau pour «visualiser» des fichiers pdf. J'ai opté en utilisant PDFTron à ce moment-là, et il fonctionne toujours comme un charme. – Roberto

+0

Ah, merci pour vos commentaires, Roberto. Je l'avais utilisé plus tôt (il y a trois ans, quand cette réponse a été écrite!) Sans aucun problème, mais je l'ai encore essayé aujourd'hui et il semble floconneux. Merci! –

1

J'ai eu un défi similaire. La solution que j'ai faite était l'achat d'un composant appelé PDFTron. Il a une API pour envoyer des documents pdf à une imprimante à partir d'un service sans surveillance. J'ai posté quelques informations sur mon blog à ce sujet. Regarde!

How to print a PDF file programmatically???

Merci,

Roberto Lopes

+0

L'URL a changé. Il est maintenant http://blog.robertolopes.com/2012/08/16/how-to-print-a-pdf-file-programmatically/ –

4

Il est un utilitaire gratuit appelé SumatraPDF qui vous permet d'imprimer des documents PDF en silence. Je l'ai utilisé avec succès dans une application winform. Pour l'impression automatique, vous pouvez utiliser une minuterie ou une boucle infinie qui exécute la méthode ci-dessus.

+0

SumatraPDF est lent si vous faites beaucoup d'impression dans un lot et vous besoin de vitesse. Du forum de SumatraPDF: «En général, Sumatra n'est pas génial à l'impression, donc je ne recommanderais pas de l'utiliser dans ce scénario.Nous imprimons actuellement en générant un bitmap pour chaque page et en envoyant ces bitmaps à une imprimante.Adobe est plus intelligent. – HK1

+0

Yup. Il y a 6 ans, ça sonnait bien, mais l'expérience a montré qu'il est plutôt lent et qu'il a besoin de beaucoup de ressources dans un scénario batch. – t3b4n

+0

Je ne l'ai pas encore utilisé mais il semble que VeryPDF ait un logiciel d'impression PDF qui pourrait être un meilleur choix. Je ne sais pas à quoi ressemble la performance. – HK1