2012-06-26 3 views
0

Je rencontre des problèmes lors de l'impression de PDF de taille différente à l'aide de GhostScript (V9.05).Impression Ghostscript PDF dPDFFitPage Tailles incorrectes

Le fichier PDF en question est un format A3, mais lorsque vous imprimez en utilisant un script fantôme en utilisant les arguments de ligne de commande suivants, le résultat est imprimé en A4 portrait et coupe la moitié du contenu.

arguments de ligne commad:

"-sDEVICE = mswinpr2 -dPDFFitPage -dPrinted = false -dNoCancel -dBATCH -dNOPAUSE -sOutputFile =" \ spool \ HP LaserJet série P2050 PCL6 (A4) » « C: \ Users \ dmeggs \ AppData \ Local \ Temp \ iPlan_Printing_k4gjaoip.pdf ""

J'ai essayé de nombreuses combinaisons de paramètres, la plupart semblent n'avoir aucun effet. Idéalement, je souhaite que l'imprimante imprime le PDF en fonction des propriétés du PDF, car il sera utilisé pour imprimer des documents A4, A3, portrait et paysage.

Merci Dan

Répondre

1

Ajout en tant que nouvelle réponse comme son trop grand pour un commentaire. Si la sortie de pswrite et epswrite fonctionne, l'imprimante est une imprimante PostScript.

Pdfwrite produit des fichiers PDF, donc probablement que vous ne voulez pas faire cela, étant donné que l'entrée est un fichier PDF :-) Certaines imprimantes PostScript peuvent en fait imprimer des fichiers PDF, mais cela est relativement inhabituel. Plutôt que d'utiliser psweite (ou epswrite), je vous suggère d'utiliser ps2write (qui produira le niveau de langage PostScript 2 en sortie) et d'envoyer le fichier résultant à l'imprimante.

Dans un monde idéal, votre imprimante sélectionne le média en fonction de la demande de support dans le programme PostScript), mais toutes les imprimantes ne gèrent pas cela. En partie parce que les imprimantes ne savent pas toujours quel média est dans quel bac, si plusieurs médias sont disponibles. Cependant, vous pouvez ensuite écrire du code PostScript raisonnablement simple que vous pouvez ajouter au fichier, ce qui vous permettra de déterminer la taille de la page demandée. En supposant que vous savez comment contrôler la sélection du bac/support dans votre imprimante, vous pouvez faire en sorte que le programme PostScritp fasse cela pour vous.

Malheureusement, je ne peux pas vous donner beaucoup de détails sur la façon de faire cela, car cela dépend beaucoup de l'imprimante spécifique.

+0

Merci Ken, Au final, j'ai opté pour -sDEVICE = mswinpr2 -sPAPERSIZE = a4 -dFIXEDMEDIA -dPDFFitPage -dPrinted = faux -dNoCancel -dBATCH -dNOPAUSE -sOutputFile = Cela semble fonctionner sur une imprimante A4 seulement pour A4 et PDF au format A3 ce qui est OK pour le moment. Je suis sûr qu'à un moment donné, ils auront besoin d'être en mesure d'imprimer sur les formats A4 et A3, à quel point je devrai passer en revue un fichier de code postscript et en sélectionnant le bon bac de l'imprimante. Merci de votre aide. –

1

Je présume que l'imprimante est une imprimante A4? Pour que GS puisse mettre à l'échelle la page correctement, vous devez lui indiquer la taille de la page. Il ne peut pas dire à partir du nom de l'imprimante. Essayez de définir -sPAPERSIZE = a4 -dFIXEDMEDIA

Cela définit le support sur A4 et indique à GS qu'il ne peut pas être modifié, le commutateur -dPDFFITPAGE adapte alors la demande de support PDF au support déclaré, par mise à l'échelle.

Si cela ne fonctionne pas, alors je vais devoir voir votre fichier PDF.

+0

Merci Ken qui a travaillé un régal. Et oui, l'imprimante d'essai était A4. Cependant, dans l'environnement en direct, ils utilisent une imprimante qui effectue à la fois l'impression A4 et A3. Je dois être capable de gérer les deux cas, mais je ne sais pas à l'avance si le PDF a un contenu A4 ou un contenu A3. Est-il possible de laisser l'imprimante décider? –

+0

J'ai bien peur que non, non. Ghostscript doit savoir avant de créer le bitmap. Le fonctionnement du périphérique mswinpr2 consiste à créer un contexte de périphérique d'impression, à rendre le bitmap au contexte et à lui indiquer de s'imprimer.L'imprimante que vous imprimez n'accepte-t-elle pas de PCL, PDF, PostScript ou XPS comme entrée? NB: peu importe la taille du média dans le PDF, seulement le support de l'imprimante. À moins que vous le disiez, GS créera une image bitmap assez grande pour le média déclaré dans le fichier PDF, mais je n'ai aucune idée de la façon de sélectionner le support correct sur l'imprimante. – KenS

+0

J'ai essayé de changer le paramètre -sDEVICE et il semble être capable d'imprimer sur la même imprimante. J'ai essayé -sDEVICE = pswrite, sDEVICE = epswrite qui a fonctionné (imprimé), -sDEVICE = pdfwrite n'envoie rien à l'imprimante. Êtes-vous en train de dire que si je pouvais utiliser un autre pilote de périphérique, je pourrais y arriver? –