Problemy z konwersją wsadową .png na .pdf przy użyciu konwersji


111
convert /home/bill/TempScan/*.png  myfile.pdf

wyświetla komunikat o błędzie:

convert-im6.q16: not authorized `myfile.pdf' @ error/constitute.c/WriteImage/1037.

Każda pomoc będzie mile widziana!

Odpowiedzi:


155

convertto potężne narzędzie wiersza polecenia do konwersji grafiki. Podobno zapewnia to zagrożenia dla bezpieczeństwa, zwłaszcza gdy jest używane w połączeniu z serwerem WWW. W najnowszych wersjach Ubuntu zaimplementowano plik zasad, w którym niektóre zastosowania convertsą ograniczone. Najwyraźniej plik ten domyślnie zabrania „konwertowania” wielu plików graficznych do jednego pliku PDF.

Plik zasad to /etc/ImageMagick-6/policy.xml. Możesz edytować ten plik jako użytkownik root, aby zmienić zasady.

Eliminując wszystkie ograniczenia użytkowania

W przypadku użytkowników komputerów stacjonarnych nie korzystających z serwera WWW wystarczy po prostu wyeliminowanie tych ograniczeń. W tym celu można usunąć plik, ale lepiej jest „przenieść plik”, zmieniając jego nazwę. Za pomocą tego polecenia zmieniasz nazwę pliku. W rezultacie wszystkie zasady zostały zniesione, ale nadal możesz cofnąć w razie potrzeby:

sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout

Aby przywrócić pierwotną sytuację, po prostu zmień nazwę z powrotem na pierwotną nazwę:

sudo mv /etc/ImageMagick-6/policy.xmlout /etc/ImageMagick-6/policy.xml

Eliminując jedynie ograniczenie do łączenia w PDF

W konkretnym przypadku gen_wood w komentarzu wskazał na możliwość selektywnego złagodzenia zasad pracy z plikami PDF, komentując jedną linię:

<policy domain="coder" rights="none" pattern="PDF" />

Edytuj plik i umieść znaki komentarza wokół tego wiersza, aby wyłączyć tę regułę:

<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

Jeśli nie chcesz wyeliminować wszystkich zasad bezpieczeństwa, to jest to, co należy zrobić.

Oświadczenie: zostałeś ostrzeżony, że usunięcie tego pliku zasad usuwa niektóre zasady bezpieczeństwa.


Dzięki wanadowi zmieniłem nazwę pliku zgodnie z sugestią i zadziałało.
Bill-Lancaster

4
Poszedłem do policy.xmlpliku i znalazłem linię, która uniemożliwiała mi łączenie pngplików w pdfsi, i skomentowałem. Ta linia miała miejsce, <policy domain="coder" rights="none" pattern="PDF" />jeśli chcesz pozostawić pozostałe zasady bez zmian, ale zezwalać na pracę z pdfs.
gene_wood,

1
@gene_wood, dziękuję: dodałem do postu, ponieważ zapewnia on więcej informacji i opcji dla użytkowników, którzy chcą bardziej ostrożnie eliminować ograniczenia.
wanad

2
Ok, działa to w Ubuntu 18.04 z imagemagick 8: 6.9.7.4 + dfsg-16ubuntu6.4. Dziękuję Ci.
Geppettvs D'Constanzo

Druga metoda działała dla mnie, ale pierwsza nie.
The Ledge

35

Jak napisano wanadu , musisz zmienić zasady ImageMagick.

sudo vim /etc/ImageMagick-6/policy.xml

i zamień linię

<policy domain="coder" rights="none" pattern="PDF" />

z

<policy domain="coder" rights="read|write" pattern="PDF" />

Jeśli chcesz zezwolić tylko na zapis, a nie na odczyt, możesz również usunąć read|część z powyższego wiersza.


BTW, dla osób zainteresowanych luką w ImageMagick, oto 2 linki informacyjne:

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.