J'utilise Ghostscript pour imprimer un PDF en utilisant des arguments de ligne de commande. Mais le nom du document imprimé apparaît comme une sortie Ghostscript dans le spouleur d'imprimante. Je veux le changer en un nom personnalisé (comme le nom de la lettre).
Réponses
Trop de publicités?Veuillez vous référer à la documentation dans http://www.ghostscript.com/doc/9.06/Devices.htm#Win
En particulier, il y a un exemple dans la section 10.2 avec une explication des paramètres qui peuvent être spécifiés dans la section 10.3. Le changement du nom du document peut être effectué par :
mark /UserSettings <</DocumentName (MyDocName)>> (mswinpr2) finddevice putdeviceprops setdevice
Ceci peut être mis dans un fichier comme dans l'exemple, ou peut être dans une chaîne sur la ligne de commande suivant a -c
option. Si vous utilisez -c au lieu de mettre le PostScript ci-dessus dans un fichier de configuration, mettez-le dans la dernière option avant -f
et le nom du fichier d'entrée.
Nota: Vous devez pas spécifier le -sDEVICE=mswinpr2
sur la ligne de commande -- le setdevice s'en occupe. J'ai testé cela sur mon ordinateur portable avec la ligne de commande :
gswin32c \
-dNOPAUSE -dBATCH \
-c "mark /UserSettings <</DocumentName (MyDocName)>> (mswinpr2) finddevice putdeviceprops setdevice" \
-f examples/colorcir.ps
Si le sPAPERSIZE
est ignoré, il est peut-être possible de forcer la taille de la page. en utilisant les commutateurs appropriés.
Le site Comment utiliser Ghostscript Le manuel indique dans la section Choix du format de papier :
Otherwise you can set the page size using the pair of switches
-dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h
Where w be the desired paper width and h be the desired paper height in points (units of 1/72 of an inch).
La section Annexe : Formats de papier connus de Ghostscript , le format A4 est défini comme suit l=595 et h=842.
Cela fournit une solution partielle au problème, qui est peut-être acceptable pour vos besoins.
Les options pour contrôler la taille de la sortie sont (markdown insère des espaces, mais il ne devrait pas y en avoir) :
-
-dDEVICEWIDTHPOINTS=
w
,-dDEVICEHEIGHTPOINTS=
h
(l,h=595,842 / 612,792 pour A4 / lettre, respectivement), Réf. . -
-sPAPERSIZE=
size
, Réf. . -
-g
number1
x
number2
(nombre1,nombre2=5953,8419 / 6120,7920 pour A4 / lettre, respectivement), Réf. . -
-dDEVICEWIDTH=
number1
,-dDEVICEHEIGHT=
number2
(nombre1,nombre2=5953,8419 / 6120,7920 pour A4 / lettre, respectivement), Réf. .
J'ai testé les quatre, en imprimant un fichier pdf en pdf, en essayant de convertir (lettre -> A4) et (A4 -> lettre). La ligne de commande que j'ai utilisée est
gswin32c -dPDF -dBATCH -dNOPAUSE -dFIXEDMEDIA <size setting flags> -sDEVICE=pdfwrite -sOutputFile=output.pdf input.pdf
A4 -> lettre a toujours bien fonctionné.
lettre -> A4 ne fonctionnait que pour la largeur, donc output.pdf
était toujours de 210 mm x 279,4 mm.
En utilisant, par exemple, -dDEVICEWIDTHPOINTS
seul pour lettre -> A4 a produit le même résultat.
Ajout d'un drapeau -dPDFFitPage
a également été utile pour adapter partiellement la taille (dans les cas où je veux le faire).
J'en conclus qu'il existe un bogue dans Ghostscript spécifiquement lié à la conversion lettre -> A4. Si cela peut être géré via gs_setpd.ps
(par exemple, este ce qui serait encore un bogue), ou une combinaison astucieuse de ( -dUseBleedBox
, -dUseTrimBox
, -dUseArtBox
, -dUseCropBox
) Je ne sais pas.