Ошибка при преобразовании PDF в PostScript с помощью GhostScript, доступ запрещен, Не удается открыть файл командной строки _.at
-
19-09-2019 - |
Вопрос
Я установил ghostscript
и обновил соответствующий path variables
...однако я получаю сообщение об ошибке при попытке выполнить эту команду:
C:\PROGRA~1\gs\gs8.64\lib>pdf2ps mydocument.pdf mydocument.ps
Access is denied.
Unable to open command line file _.at
Это правильная команда?Я пропустил какую-то конфигурацию или настройку пути?В противном случае, существует ли разумный метод выполнения этого преобразования?
Решение
Доступ запрещен, предложите что-то сделать с доступом к путям и т. д.Я бы посоветовал перепроверить права доступа к папке (хотя я уверен, что вы это сделали).Кроме того, вы можете попробовать запустить gswin32c.exe
вместо pdf2ps
Чтобы проверить, появляется ли ошибка по-прежнему, вы можете получить что-то более конкретное.
gswin32c.exe ^
-dNOPAUSE ^
-dBATCH ^
-sDEVICE=pswrite ^
-sOutputFile=mydocument.ps ^
mydocument.pdf
Другие советы
С использованием pdf2ps
запускает пакетный файл, на самом деле названный pdf2ps.bat
или pdf2ps.cmd
.Вы можете легко найти и понять его «исходный код».Если вы это сделаете, вы увидите, что он пытается записать некоторые из своих параметров командной строки во временный файл с именем _.at
, чтобы преодолеть ограничение в 128 символов для длины командной строки DOS/cmd, существующее на некоторых платформах Win/DOS.
Поскольку вы вызываете pdf2ps
из каталога %programs%, где установлен Ghostscript, похоже, вы не используете учетную запись, которой разрешено писать туда что-либо.:-)
С версией Ghostscript gs9.10 метод pswrite у меня не сработало, вместо этого я попробовал использовать ps2write вместо этого, и это сработало для меня, поэтому у меня сработала следующая команда:
gswin32c.exe ^
-dNOPAUSE ^
-dBATCH ^
-sDEVICE=ps2write ^
-sOutputFile=mydocument.ps ^
mydocument.pdf
и если эта штука даже не работает, то можно сделать это:попробуйте получить помощь, набрав gswin32c.exe -h
а затем он отобразит все доступные устройства, как показано ниже:
Default output device: display
Available devices:
bbox bit bitcmyk bitrgb bj10e bj200 bjc600 bjc800 bmp16 bmp16m bmp256
bmp32b bmpgray bmpmono bmpsep1 bmpsep8 cdeskjet cdj550 cdjcolor cdjmono
cp50 declj250 deskjet devicen display djet500 djet500c eps9high eps9mid
epson epsonc epswrite ibmpro ijs inkcov jetp3852 jpeg jpegcmyk jpeggray
laserjet lbp8 lj250 ljet2p ljet3 ljet3d ljet4 ljet4d ljetplus m8510
mswindll mswinpr2 necp6 nullpage pamcmyk32 pamcmyk4 pbm pbmraw pcx16
pcx24b pcx256 pcxcmyk pcxgray pcxmono pdfwrite pgm pgmraw pgnm pgnmraw pj
pjxl pjxl300 pkmraw plan planc plang plank planm plib plibc plibg plibk
plibm png16 png16m png256 pngalpha pnggray pngmono pngmonod pnm pnmcmyk
pnmraw ppm ppmraw **ps2write** psdcmyk psdrgb pxlcolor pxlmono r4081 spotcmyk
st800 stcolor svg t4693d2 t4693d4 t4693d8 tek4696 tiff12nc tiff24nc
tiff32nc tiff48nc tiff64nc tiffcrle tiffg3 tiffg32d tiffg4 tiffgray
tifflzw tiffpack tiffscaled tiffscaled24 tiffscaled32 tiffscaled4
tiffscaled8 tiffsep tiffsep1 txtwrite uniprint xpswrite
Search path:
C:\Program Files (x86)\gs\gs9.10\bin ;
C:\Program Files (x86)\gs\gs9.10\lib ;
C:\Program Files (x86)\gs\gs9.10\fonts ; %rom%Resource/Init/ ;
%rom%lib/ ; c:/gs/gs9.10/Resource/Init ; c:/gs/gs9.10/lib ;
c:/gs/gs9.10/Resource/Font ; c:/gs/fonts
Initialization files are compiled into the executable.
Как видно, я поставил звездочку (*) только для удобства. ps2write
использовать канитель открыть PDF-файл.
файл -> экспорт -> постскриптум.
Если вы хотите использовать исполняемый файл gs, вам необходимо изменить разрешения. В командной строке перейдите в папку, где находится исполняемый файл gs, а затем используйте chmod 755 gs.
Что вы делаете, так это то, что вы не пишете командную строку в нужном месте, сначала вам нужно найти исполняемый файл ghostscript, который по умолчанию расположен по адресу
- c:\Program Файлы (x86)\gs\gs9.20 (ваша версия ghostscript )\bin\gswin32c.exe
есть два исполняемых файла
- 1- gswin32.exe
- 2- gswin32c.exe
вы должны использовать второй, потому что он выполняет команды commmands в cmd, а не в gs cmd хорошо, теперь все, что вам нужно сделать, это написать команду типа
...bin\gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=mydocument.ps mydocument.pdf
примечание пожалуйста, проверьте правильный путь к файлу и еще кое-что путь к файлу, подобный "D:\htmltopdf\document.ps" , следует записать как "D:/htmltopdf/document.ps" да, точно замените обратную косую черту на косую черту предисловия только в пути к файлу и командная строка также чувствительна к регистру, поэтому будьте осторожны с регистрами