Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: mrBean 09. 02. 2012, 22:09:33
-
Zdravím,
hledám řešení pro tento příkaz, který spouštím z dávkového souboru DOS/Windows:
for /r %%x in (*.pdf) do ^
convert -density 400 -shave "30%x30%" -quality 34%% "%%x" "%%x.jpg"
Snažím se do příkazu shave dostat procenta. Příkaz má oříznout okraje, které vznikají při převodu dokumentu pdf na obraz jpeg. Tato podoba ale nefunguje. Zkoušel jsem shave také zapsat takto:
-shave "30%%x30%%"
nebo
-shave "30\%x30\%"
ale ani jedna podoba není platná. Tak nevím jak to udělat, najde se tu někdo kdo tomu rozumí?
-
Zdar,
zkus caretu:
A. Just as you can use a slash (\) as an escape character to pass a double quote ("), you can use a caret (^) as an escape character to pass a percent sign.
http://www.windowsitpro.com/article/registry2/how-can-i-pass-a-percent-sign-value-to-reg-exe- (http://www.windowsitpro.com/article/registry2/how-can-i-pass-a-percent-sign-value-to-reg-exe-)
-
Nezdá se že by to fungovalo:
for /r %%x in (*.pdf) do ^
convert -density 400 -shave "30^%x30^%" -quality 34%% "%%x" "%%x.jpg"
V dávce dává příkaz:
convert -density 400 -shave "30^" -quality ...
-
funguje normalne %%, ale protoze jsou windows takove, jake jsou, tak problem je v nazvu promenne
Mas tam for %%x in a dale se pak v parametru -shave objevuje dalsi, jakoze escapovane x (krat) 30%%x
A to je kamen urazu, zmen si nazev promenne na neco jineho nez x, odstran uvozovky z parametru a jede to... jen mi to pada na chybe v ghostscriptu, ale to bude nejaky lokalni problem...
Expanduje se to v poradku
-
Mně to stále nejede:
for /r %%f in (*.pdf) do ^
convert -density 400 -shave 30%x30% -quality 34%% "%%f" "%%f.jpg"
for /r %%f in (*.pdf) do ^
convert -density 400 -shave 30%%x30%% -quality 34%% "%%f" "%%f.jpg"
-
Na čem to zkoušíš na linuxu nebo Windowsu? Jestli na Windowsu můžeš sem hodit jak tom máš? A funguje ti to ořezávání?
-
na woknech, jsem musel kvuli tobe instalovat im :P
for %%Y in (*.pdf) do "C:\Program Files\ImageMagick-6.7.5-Q16\convert.exe" -density 400 -shave 30%%x30%% -quality 34%% %%Y %%Y.jpg
jak rikam, nefunguje mi to kvuli ghostscriptu, ale to je lokalni problem, obsah te tadvky se expanduje ok...
D:\tmp>"C:\Program Files\ImageMagick-6.7.5-Q16\convert.exe" -density 400 -shave 30%x30% -quality 34% montage.pdf montage.pdf.jpg
-
jo a bacha na cestu ke convert.exe
we winnxp existuje utilita, ktera Converts FAT and FAT32 volumes to NTFS
-
Teď to vypadá, že syntaxe na vstupu je správná. Ale zase mi to píše chybu.
"convert.exe: no necode delegate for this image format '...cesta k dokumentu pdf...'"
Když vynechám cestu a uvozovky ke convert, tak zase jiná hláška:
neplatný parametr 400
Před tím jak to bylo bez uvozovek u convert a s uvozovkama kolem argumentů tak to fungovalo ale bez shave.
-
no decode delegate for this image format ...
-
nainstaluj ghostscript, bez toho to nepujde... pokud mas, tak pohledej v config/delegates.xml
zbytek najdes na netu...
a nebo radsi nainstaluj VirtualBox, v nem preferovane distro a namisto sr.ni se s windowsama bez na skopek
-
Aha, já už ten GS odisntaloval... Myslel jsem že to nepotřebuju, když používám IM.
-
Díky moc, konečně to funguje!
Ale ještě tam je problém. Adresáře a možná i soubory obsahují mezery takže to musí být v závorkách
-
No a nemohl by si mi poradit ještě co může způsobovat tyto chyby? To vypadá, že se mi povedlo nakonvertovat tak 8 souborů a zbytek nic:
**** Warning: File has insufficient data for an image.
libpng error: Write Error
Error: /VMerror in --showpage--
VM status: 3 935695 2253216
Current allocation mode is local
Last OS error: 28
GPL Ghostscript 9.04: Unrecoverable error, exit code 1
convert.exe: `%s': %s "P:/PROGRAMY/grafika/editace/GhostScript9.04/bin/gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPS
Crop -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r400x400" -g67533x50656 "-sOutputFile=C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-zVIp4tf7-12275968" "-fC:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-njK22eLq" "-fC:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-XXK6mIPn" @ error/pdf.c/InvokePDFDelegate/199.convert.exe: Postscript delegate failed `D:\Europe\Cyprus\enroute.pdf':
No such file or directory @ error/pdf.c/ReadPDFImage/667. convert.exe: unable to open image `D:\Europe\Cyprus\enroute.pdf.jpg': No such file or directory @ error/blob.c/OpenBlob/2614.
D:\Europe>"c:\program files\ImageMagick-6.7.5-Q8\convert.exe" -density 400 -shave 30%x30% -quality 34% D:\Europe\Czech_republic\lower.pdf D:\Europe\Czech_republic\lower.pdf.jpg -density 400 -shave 30%x30% -quality 34% D:\Europe\Austria\upper.pdf D:\Europe\Austria\upper.pdf.jpg
convert.exe: unable to open image `D:\Europe\Czech_republic\lower.pdf.jpg':
No such file or directory @ error/blob.c/OpenBlob/2614.
D:\Europe>"c:\program files\ImageMagick-6.7.5-Q8\convert.exe" -density 400 -shave 30%x30% -quality 34% D:\Europe\Czech_republic\upper.pdf D:\Europe\Czech_republic\upper.pdf.jpg -density 400 -shave 30%x30% -quality 34% D:\Europe\Austria\upper.pdf D:\Europe\Austria\upper.pdf.jpg
**** Warning: xref subsection header has extra characters.
**** Warning: An error occurred while reading an XREF table.
**** The file has been damaged. This may have been caused
**** by a problem while converting or transfering the file.
**** Ghostscript will attempt to recover the data.
**** Warning: There are objects with matching object and generation
**** numbers. The accuracy of the resulting image is unknown.
**** This file had errors that were repaired or ignored.
**** The file was produced by:
**** >>>> Acrobat Distiller 6.0 (Windows) <<<<
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.
convert.exe: unable to open image `D:\Europe\Czech_republic\upper.pdf.jpg': No such file or directory @ error/blob.c/OpenBlob/2614.
D:\Europe>"c:\program files\ImageMagick-6.7.5-Q8\convert.exe" -density 400 -shave 30%x30% -quality 34% D:\Europe\Denmark\lower.pdf D:\Europe\Denmark\lower.pdf.jpg -density 400 -shave 30%x30% -quality 34% D:\Europe\Austria\upper.pdf D:\Europe\Austria\upper.pdf.jpg
convert.exe: unable to open image `D:\Europe\Denmark\lower.pdf.jpg': No such file or directory @ error/blob.c/OpenBlob/2614.
D:\Europe>"c:\program files\ImageMagick-6.7.5-Q8\convert.exe" -density 400 -shave 30%x30% -quality 34% D:\Europe\Denmark\upper.pdf D:\Europe\Denmark\upper.pdf.jpg -density 400 -shave 30%x30% -quality 34% D:\Europe\Austria\upper.pdf D:\Europe\Austria\upper.pdf.jpg
convert.exe: unable to open image `D:\Europe\Denmark\upper.pdf.jpg': No such file or directory @ error/blob.c/OpenBlob/2614.
D:\Europe>"c:\program files\ImageMagick-6.7.5-Q8\convert.exe" -density 400 -shave 30%x30% -quality 34% D:\Europe\Estonia\enroute.pdf D:\MAPY\Europe\Estonia\enroute.pdf.jpg -density 400 -shave 30%x30% -quality 34% D:\MAPY\Europe\Austria\upper.pdf D:\Europe\Austria\upper.pdf.jpg
**** Warning: File has unbalanced q/Q operators (too many q's)
**** This file had errors that were repaired or ignored.
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.
convert.exe: unable to open image `D:\Europe\Estonia\enroute.pdf.jpg': No such file or directory @ error/blob.c/OpenBlob/2614.
D:\Europe>"c:\program files\ImageMagick-6.7.5-Q8\convert.exe" -density 400 -shave 30%x30% -quality 34% D:\Europe\Finland\lower.pdf D:\Europe\Finland\lower.pdf.jpg -density 400 -shave 30%x30% -quality 34% D:\Europe\Austria\upper.pdf D:\Europe\Austria\upper.pdf.jpg
Error: /ioerror in --showpage--
Operand stack:
1 true
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-
- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- fa
lse 1 %stopped_push 1926 1 3 %oparray_pop 1925 1 3 %oparray_
pop 1909 1 3 %oparray_pop --nostringval-- --nostringval-- 2 1
1 --nostringval-- %for_pos_int_continue --nostringval-- --nostringval--
1809 0 9 %oparray_pop --nostringval-- --nostringval--
Dictionary stack:
--dict:1170/1684(ro)(G)-- --dict:1/20(G)-- --dict:82/200(L)-- --dict:82
/200(L)-- --dict:108/127(ro)(G)-- --dict:291/300(ro)(G)-- --dict:24/30(L)-
- --dict:6/8(L)-- --dict:21/40(L)--
Current allocation mode is local
Last OS error: No space left on device
GPL Ghostscript 9.04: Unrecoverable error, exit code 1
convert.exe: `%s': %s "P:/PROGRAMY/grafika/editace/GhostScript9.04/bin/gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPS
Crop -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r400x400" -g10394x14506 -dUseCIEColor "-sOutputFile=C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-zyXkMOEq-12275968" "-fC:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-ZpF7Sh2b" "-fC:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-0DSQLmkI" @ error/pdf.c/InvokePDFDelegate/199.convert.exe: Postscript delegate failed `D:\Europe\Finland\lower.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/667.convert.exe: unable to open image `D:\Europe\Finland\lower.pdf.jpg': No such file or directory @ error/blob.c/OpenBlob/2614.
D:\Europe>"c:\program files\ImageMagick-6.7.5-Q8\convert.exe" -density 400 -shave 30%x30% -quality 34% D:\Europe\Finland\upper.pdf D:\Europe\Finland\upper.pdf.jpg -density 400 -shave 30%x30% -quality 34% D:\Europe\Austria\upper.pdf D:\Europe\Austria\upper.pdf.jpg
convert.exe: unable to open image `D:\Europe\Finland\upper.pdf.jpg': No such file or directory @ error/blob.c/OpenBlob/2614.
-
Tu hlášku "Last OS error: No space left on device" jsi kontroloval?
-
To jsem si nevšiml. Ale místo jsem kontroloval a je tam ještě mnoho místa na disku. To nedává smysl.
No a jedna příčina chyby by mohla být v tom, že místo abych přejmenoval soubor na neco.pdf tak davam neco.pdf.jpg. Pri dalsim pokusu cteni souboru z adresare se nacita *.pdf , takže možna se znovu nacita *.pdf.jpg ? I když ale *.pdf.jpg neni *.pdf.* že?
-
Mrkni se na příkaz mogrify z balíku imagemagicku. Možná ti vyřeší starosti s koncovkami souborů :-)
-
Právě že morgify nevyhovuje, ten jsem už zkoušel. Buď to bylo kvůli density nebo kvůli ořezávání. Už si nepamatuji. Tak či tak si myslím, že řešení koncovky musí být pro oba příkazy.
-
bych rekl, ze ta pdf nekdo delal nohama, takze dalsi problemy prameni z toho...
jsem to cvicne zkousel na paru pdf a vsechno probehlo ok; jestli chces, tak to nekam dej a posli link...