From f5a40afed424fc51f80736dc8b76b51a97d3cb39 Mon Sep 17 00:00:00 2001 From: Jonathan Neuhauser Date: Mon, 31 Jan 2022 15:42:38 +0100 Subject: [PATCH 1/5] fix ps2pdf on windows --- ps_input.py | 17 ++++- .../685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg | 58 ++++++++++++++++++ tests/data/refs/ps_input__test__ps_win.out | Bin 0 -> 2482 bytes 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg create mode 100644 tests/data/refs/ps_input__test__ps_win.out diff --git a/ps_input.py b/ps_input.py index 7e1728a5..70c71979 100755 --- a/ps_input.py +++ b/ps_input.py @@ -22,7 +22,7 @@ Simple wrapper around ps2pdf """ import inkex -from inkex.command import call +from inkex.command import call, which class PostscriptInput(inkex.CallExtension): """Load Postscript/EPS Files by calling ps2pdf program""" @@ -35,7 +35,20 @@ class PostscriptInput(inkex.CallExtension): def call(self, input_file, output_file): crop = '-dEPSCrop' if self.options.crop else None - call('ps2pdf', crop, input_file, output_file) + params = ['-q', '-P-', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE#pdfwrite', + '-dCompatibilityLevel#1.4', crop, "-sOutputFile#" + output_file, input_file] + gs_execs = ["gs", "gswin64c", "gswin32c"] + gs_exec = None + for executable in gs_execs: + try: + which(executable) + gs_exec = executable + except: + pass + if gs_exec is None: + raise inkex.AbortExtension() + call(gs_exec, *params) + if __name__ == '__main__': PostscriptInput().run() diff --git a/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg b/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg new file mode 100644 index 00000000..a53a2d16 --- /dev/null +++ b/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg @@ -0,0 +1,58 @@ +Content-Type: multipart/mixed; boundary="--CALLDATA--//--CALLDATA--" +MIME-Version: 1.0 +Program: gswin64c +Arguments: -P- -dBATCH -dCompatibilityLevel#1.4 -dNOPAUSE -dSAFER -q -sDEVICE#pdfwrite -sOutputFile#.\output.pdf test.ps + +----CALLDATA--//--CALLDATA-- +Content-Type: application/octet-stream; Name="output.pdf" +MIME-Version: 1.0 +Content-Transfer-Encoding: base64 +Content-Disposition: attachment +Filename: output.pdf + +JVBERi0xLjQKJcfsj6IKJSVJbnZvY2F0aW9uOiBwYXRoL2dzd2luNjRjLkVYRSAtZERpc3BsYXlG +b3JtYXQ9MTk4Nzg4IC1kRGlzcGxheVJlc29sdXRpb249MTkyIC1xIC1QLSAtZFNBRkVSIC1kTk9Q +QVVTRSAtZEJBVENIIC1zREVWSUNFI3BkZndyaXRlIC1kQ29tcGF0aWJpbGl0eUxldmVsIzEuNCAt +c091dHB1dEZpbGUjQzpcVXNlcnNcam9uYXRcQXBwRGF0YVxMb2NhbFxUZW1wXGlua3RtcG1vNjBf +MjhoXG91dHB1dC5wZGYgPwo1IDAgb2JqCjw8L0xlbmd0aCA2IDAgUi9GaWx0ZXIgL0ZsYXRlRGVj +b2RlPj4Kc3RyZWFtCnicXY9LDoIhDIT3PUVP0BTKa47hGUjUBf9C778QEIgxBOhXwsz0xSqOdax1 +14tUoGroLHHu94NckuDUM4ryRXBZLExoBN/fAibBTHJkZC8JOJhMIrjSYj/PttEFSaF0uSXUtQ2D +vy4b6wmxO416pZrL6egR0+VSSbd/G+VKtj+O0L+zVXr+zXqnG30AMFQ5LmVuZHN0cmVhbQplbmRv +YmoKNiAwIG9iagoxNDQKZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9QYWdlL01lZGlhQm94IFswIDAg +OTQgOThdCi9QYXJlbnQgMyAwIFIKL1Jlc291cmNlczw8L1Byb2NTZXRbL1BERl0KPj4KL0NvbnRl +bnRzIDUgMCBSCj4+CmVuZG9iagozIDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvS2lkcyBbCjQgMCBS +Cl0gL0NvdW50IDEKPj4KZW5kb2JqCjEgMCBvYmoKPDwvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMyAw +IFIKL01ldGFkYXRhIDcgMCBSCj4+CmVuZG9iago3IDAgb2JqCjw8L1R5cGUvTWV0YWRhdGEKL1N1 +YnR5cGUvWE1ML0xlbmd0aCAxMjA0Pj5zdHJlYW0KPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdX +NU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPD9hZG9iZS14YXAtZmlsdGVycyBlc2M9IkNSTEYi +Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLycgeDp4bXB0az0nWE1QIHRvb2xr +aXQgMi45LjEtMTMsIGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93 +d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRwOi8vbnMu +YWRvYmUuY29tL2lYLzEuMC8nPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpw +ZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nIHBkZjpQcm9kdWNlcj0nR1BMIEdob3N0 +c2NyaXB0IDkuNTUuMCcvPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9 +J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPjx4bXA6TW9kaWZ5RGF0ZT4yMDIyLTAxLTMx +VDE1OjQxOjQ0KzAxOjAwPC94bXA6TW9kaWZ5RGF0ZT4KPHhtcDpDcmVhdGVEYXRlPjIwMjItMDEt +MzFUMTU6NDE6NDQrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgo8eG1wOkNyZWF0b3JUb29sPmNhaXJv +IDEuMTUuMTAgKGh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyk8L3htcDpDcmVhdG9yVG9vbD48L3Jk +ZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eGFwTU09 +J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8nIHhhcE1NOkRvY3VtZW50SUQ9J3V1aWQ6 +NjhlOTJiMzEtODRmZi0xMWVjLTAwMDAtNGZmNDU0NzlhODljJy8+CjxyZGY6RGVzY3JpcHRpb24g +cmRmOmFib3V0PSIiIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLycg +ZGM6Zm9ybWF0PSdhcHBsaWNhdGlvbi9wZGYnPjxkYzp0aXRsZT48cmRmOkFsdD48cmRmOmxpIHht +bDpsYW5nPSd4LWRlZmF1bHQnPlVudGl0bGVkPC9yZGY6bGk+PC9yZGY6QWx0PjwvZGM6dGl0bGU+ +PC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0ndyc/PgplbmRzdHJlYW0KZW5kb2JqCjIg +MCBvYmoKPDwvUHJvZHVjZXIoR1BMIEdob3N0c2NyaXB0IDkuNTUuMCkKL0NyZWF0aW9uRGF0ZShE +OjIwMjIwMTMxMTU0MTQ0KzAxJzAwJykKL01vZERhdGUoRDoyMDIyMDEzMTE1NDE0NCswMScwMCcp +Ci9DcmVhdG9yKGNhaXJvIDEuMTUuMTAgXChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmdcKSk+PmVu +ZG9iagp4cmVmCjAgOAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDA2NDkgMDAwMDAgbiAKMDAw +MDAwMTk5MyAwMDAwMCBuIAowMDAwMDAwNTkwIDAwMDAwIG4gCjAwMDAwMDA0NzggMDAwMDAgbiAK +MDAwMDAwMDI0NSAwMDAwMCBuIAowMDAwMDAwNDU5IDAwMDAwIG4gCjAwMDAwMDA3MTMgMDAwMDAg +biAKdHJhaWxlcgo8PCAvU2l6ZSA4IC9Sb290IDEgMCBSIC9JbmZvIDIgMCBSCi9JRCBbPEVFMDYz +QjZBRDg5MUZFMUNDREEzMEI0QkVCRjBGNTE5PjxFRTA2M0I2QUQ4OTFGRTFDQ0RBMzBCNEJFQkYw +RjUxOT5dCj4+CnN0YXJ0eHJlZgoyMTcxCiUlRU9GCg== + +----CALLDATA--//--CALLDATA---- diff --git a/tests/data/refs/ps_input__test__ps_win.out b/tests/data/refs/ps_input__test__ps_win.out new file mode 100644 index 0000000000000000000000000000000000000000..054da6896ddfd0d8ff0857561e558889d08d47d5 GIT binary patch literal 2482 zcmY!laBiLIffg}H?VLO3Y3I6tQpq}$fe(nvwKP(e39S3x%=*wM{3NI^Hn z&p*I1G#F%#lVgaphk|agi))ytv#WAJN?LhQW=X1oZi;h$Zb4#6W>RKOW=W+_YFTQI zvZ0=df^M;YX-Pq8iCbn)s@3yY~7er2F_dS&KxWfA1 z>HU5Ifeu5K7vYD_d^xJsSGuP3dUwcztQR_k@4h$3OnPv|xa*T^L8OjP2Fv~XOlk*x zic(VaIW1=RDDAkEWPg6!MOM#+B|BBGY~^jIWpI zr|SErrer2MkkSehtUTEuec2P77y=9MTIg93s}9~6(JMaikfHa7YJMfu6W zsU^|+0WNN_Ty}O``p)@zC8>EO#R{N+3<3#3?E~osIl;z8K_6tH0@%i41%2<#lwyTw zE|7bIxMCIbo%2icN)!x{v>Kv1RYBi5u_Q4kKOJTS$mk$0ec#lQ#FWI6LW&-4rXN z7AM;(IS2W;DS;GJSXJZ}w(>* zmz(Ko%z^<(HP&Dk(utDL}Fv#h8MWG<`!oV|{gn zf|N9?fTH}A(&W@4TXpvU9|iY}{NfUbu?m)YrlxuZ>iSTB5wNZzw*b4VD-sK!&bFz@ zEwJ*GSW3L)HOB?F*LO@F|aZ=*ETS;GBB{wM^niK*6Li83d;9H zXhl+qq&2@NBtJjLE;%u?C||))&(KuQ&_F>08bM&u^rFOqjLhU>P&{cuTmd!;s?$av z6wXKiL1fS*7Wn$&51iawP-+9IvvSE#F3nBNEAe!(RWB{gOtCUCNV7~fPcqQ8FiA_( zH8f03)-^CNFwiwOPqaujG&V>xFiIpgmQs@8?kFfN$^rRPKP6c|H76BhWwE}Yo}s?F zLQ1k#8l?VEPb?_N$%NE5`UNRz>UK6M$yOzqB{`{f;MDGzQvzY+WP;M2RZe1Fx~+PJ zZc1ueVrfo^x?N}~b>gAPlfReS}$9LKZ9(Wup(yh@ebq$E83eKs|#H z1ypKYimiG%sQAGs{f!XiCoIcpV9#-yT>9Wdmzkdj$|f2vR-lYxU}$V;Xlh~r&Lipu z2I`tz`o8%o1XO?x$}iFYr*3$fkHMMfV>C7G?4XrJMNw)Rmw|!>7bvwsu!5PXsj;a- zngUGB%*0XwETxbK6En25G)5OQFts$m5Hm5izz{PsF~txwF~zXMz}yhYj*_Cp%$(FB zE>Nu&oLQBsV4Xy9t@Wb9_?;_7N{Y-mSV1-POuE=epZ0SA+jp}8TKs;aBM8y5g;gY)bF literal 0 HcmV?d00001 -- GitLab From 38f5874bf3061706f878d1ed6bbe7260d6ad0f9a Mon Sep 17 00:00:00 2001 From: Jonathan Neuhauser Date: Mon, 31 Jan 2022 19:50:52 +0100 Subject: [PATCH 2/5] works on Linux again --- ps_input.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/ps_input.py b/ps_input.py index 70c71979..b4febfc1 100755 --- a/ps_input.py +++ b/ps_input.py @@ -21,6 +21,8 @@ Simple wrapper around ps2pdf """ +import sys + import inkex from inkex.command import call, which @@ -35,19 +37,22 @@ class PostscriptInput(inkex.CallExtension): def call(self, input_file, output_file): crop = '-dEPSCrop' if self.options.crop else None - params = ['-q', '-P-', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE#pdfwrite', - '-dCompatibilityLevel#1.4', crop, "-sOutputFile#" + output_file, input_file] - gs_execs = ["gs", "gswin64c", "gswin32c"] - gs_exec = None - for executable in gs_execs: - try: - which(executable) - gs_exec = executable - except: - pass - if gs_exec is None: - raise inkex.AbortExtension() - call(gs_exec, *params) + if sys.platform == "win32": + params = ['-q', '-P-', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE#pdfwrite', + '-dCompatibilityLevel#1.4', crop, "-sOutputFile#" + output_file, input_file] + gs_execs = ["gswin64c", "gswin32c"] + gs_exec = None + for executable in gs_execs: + try: + which(executable) + gs_exec = executable + except: + pass + if gs_exec is None: + raise inkex.AbortExtension() + call(gs_exec, *params) + else: + call("ps2pdf", crop, input_file, output_file) if __name__ == '__main__': -- GitLab From ec6f17a550d12fa23ae0f8d6e2d6021098e2f55c Mon Sep 17 00:00:00 2001 From: Jonathan Neuhauser Date: Mon, 31 Jan 2022 20:05:04 +0100 Subject: [PATCH 3/5] unit tests on windows --- .../685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg | 58 ------------------ .../685cf0650d5e5573b3bc5bbeafbc2a7a.msg | 59 ++++++++++++++++++ .../7379fbc5c4f64c97c911b3e2695fdb8d.msg | 60 +++++++++++++++++++ 3 files changed, 119 insertions(+), 58 deletions(-) delete mode 100644 tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg create mode 100644 tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a.msg create mode 100644 tests/data/cmd/gswin64c/7379fbc5c4f64c97c911b3e2695fdb8d.msg diff --git a/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg b/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg deleted file mode 100644 index a53a2d16..00000000 --- a/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a-win.msg +++ /dev/null @@ -1,58 +0,0 @@ -Content-Type: multipart/mixed; boundary="--CALLDATA--//--CALLDATA--" -MIME-Version: 1.0 -Program: gswin64c -Arguments: -P- -dBATCH -dCompatibilityLevel#1.4 -dNOPAUSE -dSAFER -q -sDEVICE#pdfwrite -sOutputFile#.\output.pdf test.ps - -----CALLDATA--//--CALLDATA-- -Content-Type: application/octet-stream; Name="output.pdf" -MIME-Version: 1.0 -Content-Transfer-Encoding: base64 -Content-Disposition: attachment -Filename: output.pdf - -JVBERi0xLjQKJcfsj6IKJSVJbnZvY2F0aW9uOiBwYXRoL2dzd2luNjRjLkVYRSAtZERpc3BsYXlG -b3JtYXQ9MTk4Nzg4IC1kRGlzcGxheVJlc29sdXRpb249MTkyIC1xIC1QLSAtZFNBRkVSIC1kTk9Q -QVVTRSAtZEJBVENIIC1zREVWSUNFI3BkZndyaXRlIC1kQ29tcGF0aWJpbGl0eUxldmVsIzEuNCAt -c091dHB1dEZpbGUjQzpcVXNlcnNcam9uYXRcQXBwRGF0YVxMb2NhbFxUZW1wXGlua3RtcG1vNjBf -MjhoXG91dHB1dC5wZGYgPwo1IDAgb2JqCjw8L0xlbmd0aCA2IDAgUi9GaWx0ZXIgL0ZsYXRlRGVj -b2RlPj4Kc3RyZWFtCnicXY9LDoIhDIT3PUVP0BTKa47hGUjUBf9C778QEIgxBOhXwsz0xSqOdax1 -14tUoGroLHHu94NckuDUM4ryRXBZLExoBN/fAibBTHJkZC8JOJhMIrjSYj/PttEFSaF0uSXUtQ2D -vy4b6wmxO416pZrL6egR0+VSSbd/G+VKtj+O0L+zVXr+zXqnG30AMFQ5LmVuZHN0cmVhbQplbmRv -YmoKNiAwIG9iagoxNDQKZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9QYWdlL01lZGlhQm94IFswIDAg -OTQgOThdCi9QYXJlbnQgMyAwIFIKL1Jlc291cmNlczw8L1Byb2NTZXRbL1BERl0KPj4KL0NvbnRl -bnRzIDUgMCBSCj4+CmVuZG9iagozIDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvS2lkcyBbCjQgMCBS -Cl0gL0NvdW50IDEKPj4KZW5kb2JqCjEgMCBvYmoKPDwvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMyAw -IFIKL01ldGFkYXRhIDcgMCBSCj4+CmVuZG9iago3IDAgb2JqCjw8L1R5cGUvTWV0YWRhdGEKL1N1 -YnR5cGUvWE1ML0xlbmd0aCAxMjA0Pj5zdHJlYW0KPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdX -NU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPD9hZG9iZS14YXAtZmlsdGVycyBlc2M9IkNSTEYi -Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLycgeDp4bXB0az0nWE1QIHRvb2xr -aXQgMi45LjEtMTMsIGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93 -d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRwOi8vbnMu -YWRvYmUuY29tL2lYLzEuMC8nPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpw -ZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nIHBkZjpQcm9kdWNlcj0nR1BMIEdob3N0 -c2NyaXB0IDkuNTUuMCcvPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9 -J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPjx4bXA6TW9kaWZ5RGF0ZT4yMDIyLTAxLTMx -VDE1OjQxOjQ0KzAxOjAwPC94bXA6TW9kaWZ5RGF0ZT4KPHhtcDpDcmVhdGVEYXRlPjIwMjItMDEt -MzFUMTU6NDE6NDQrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgo8eG1wOkNyZWF0b3JUb29sPmNhaXJv -IDEuMTUuMTAgKGh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyk8L3htcDpDcmVhdG9yVG9vbD48L3Jk -ZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eGFwTU09 -J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8nIHhhcE1NOkRvY3VtZW50SUQ9J3V1aWQ6 -NjhlOTJiMzEtODRmZi0xMWVjLTAwMDAtNGZmNDU0NzlhODljJy8+CjxyZGY6RGVzY3JpcHRpb24g -cmRmOmFib3V0PSIiIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLycg -ZGM6Zm9ybWF0PSdhcHBsaWNhdGlvbi9wZGYnPjxkYzp0aXRsZT48cmRmOkFsdD48cmRmOmxpIHht -bDpsYW5nPSd4LWRlZmF1bHQnPlVudGl0bGVkPC9yZGY6bGk+PC9yZGY6QWx0PjwvZGM6dGl0bGU+ -PC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0ndyc/PgplbmRzdHJlYW0KZW5kb2JqCjIg -MCBvYmoKPDwvUHJvZHVjZXIoR1BMIEdob3N0c2NyaXB0IDkuNTUuMCkKL0NyZWF0aW9uRGF0ZShE -OjIwMjIwMTMxMTU0MTQ0KzAxJzAwJykKL01vZERhdGUoRDoyMDIyMDEzMTE1NDE0NCswMScwMCcp -Ci9DcmVhdG9yKGNhaXJvIDEuMTUuMTAgXChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmdcKSk+PmVu -ZG9iagp4cmVmCjAgOAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDA2NDkgMDAwMDAgbiAKMDAw -MDAwMTk5MyAwMDAwMCBuIAowMDAwMDAwNTkwIDAwMDAwIG4gCjAwMDAwMDA0NzggMDAwMDAgbiAK -MDAwMDAwMDI0NSAwMDAwMCBuIAowMDAwMDAwNDU5IDAwMDAwIG4gCjAwMDAwMDA3MTMgMDAwMDAg -biAKdHJhaWxlcgo8PCAvU2l6ZSA4IC9Sb290IDEgMCBSIC9JbmZvIDIgMCBSCi9JRCBbPEVFMDYz -QjZBRDg5MUZFMUNDREEzMEI0QkVCRjBGNTE5PjxFRTA2M0I2QUQ4OTFGRTFDQ0RBMzBCNEJFQkYw -RjUxOT5dCj4+CnN0YXJ0eHJlZgoyMTcxCiUlRU9GCg== - -----CALLDATA--//--CALLDATA---- diff --git a/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a.msg b/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a.msg new file mode 100644 index 00000000..20063c0e --- /dev/null +++ b/tests/data/cmd/gswin64c/685cf0650d5e5573b3bc5bbeafbc2a7a.msg @@ -0,0 +1,59 @@ +Content-Type: multipart/mixed; boundary="--CALLDATA--//--CALLDATA--" +MIME-Version: 1.0 +Program: gswin64c +Arguments: -P- -dBATCH -dCompatibilityLevel#1.4 -dNOPAUSE -dSAFER -q -sDEVICE#pdfwrite -sOutputFile#.\output.pdf test.ps + +----CALLDATA--//--CALLDATA-- +Content-Type: application/octet-stream; Name="output.pdf" +MIME-Version: 1.0 +Content-Transfer-Encoding: base64 +Content-Disposition: attachment +Filename: output.pdf + +JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29k +ZT4+CnN0cmVhbQp4nF2PTQ5CIQyE9z1FT1CHf3oMvQKJzwVvod4/ERCIMQToV8LM9MkQw+hr3uWk +yy3x8SaIAk5bW8LYr4NMFG9gWTP4JDVJnB9QSW178zpInZMUWJOVqLoxOgnKhSbbcdaFxkv0uclN +oabttPPXZWHZIVanUquAlHcHWwzTpRCWf+3lTLY+9tC/sxV6/M16pyt9AC7dOuplbmRzdHJlYW0K +ZW5kb2JqCjYgMCBvYmoKMTUwCmVuZG9iago0IDAgb2JqCjw8L1R5cGUvUGFnZS9NZWRpYUJveCBb +MCAwIDk0IDk4XQovUGFyZW50IDMgMCBSCi9SZXNvdXJjZXM8PC9Qcm9jU2V0Wy9QREZdCi9FeHRH +U3RhdGUgOCAwIFIKPj4KL0NvbnRlbnRzIDUgMCBSCj4+CmVuZG9iagozIDAgb2JqCjw8IC9UeXBl +IC9QYWdlcyAvS2lkcyBbCjQgMCBSCl0gL0NvdW50IDEKPj4KZW5kb2JqCjEgMCBvYmoKPDwvVHlw +ZSAvQ2F0YWxvZyAvUGFnZXMgMyAwIFIKL01ldGFkYXRhIDkgMCBSCj4+CmVuZG9iago3IDAgb2Jq +Cjw8L1R5cGUvRXh0R1N0YXRlCi9PUE0gMT4+ZW5kb2JqCjggMCBvYmoKPDwvUjcKNyAwIFI+Pgpl +bmRvYmoKOSAwIG9iago8PC9UeXBlL01ldGFkYXRhCi9TdWJ0eXBlL1hNTC9MZW5ndGggMTM2Nj4+ +c3RyZWFtCjw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlk +Jz8+Cjw/YWRvYmUteGFwLWZpbHRlcnMgZXNjPSJDUkxGIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0n +YWRvYmU6bnM6bWV0YS8nIHg6eG1wdGs9J1hNUCB0b29sa2l0IDIuOS4xLTEzLCBmcmFtZXdvcmsg +MS42Jz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJk +Zi1zeW50YXgtbnMjJyB4bWxuczppWD0naHR0cDovL25zLmFkb2JlLmNvbS9pWC8xLjAvJz4KPHJk +ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6YjUwM2RiMTktYWUyOS0xMWY1LTAwMDAtMmY0 +MTI5Y2Y4ZDIwJyB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nIHBkZjpQ +cm9kdWNlcj0nR1BMIEdob3N0c2NyaXB0IDkuMjYnLz4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv +dXQ9J3V1aWQ6YjUwM2RiMTktYWUyOS0xMWY1LTAwMDAtMmY0MTI5Y2Y4ZDIwJyB4bWxuczp4bXA9 +J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPjx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA0LTAz +VDIwOjQyOjI3LTA0OjAwPC94bXA6TW9kaWZ5RGF0ZT4KPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDQt +MDNUMjA6NDI6MjctMDQ6MDA8L3htcDpDcmVhdGVEYXRlPgo8eG1wOkNyZWF0b3JUb29sPmNhaXJv +IDEuMTUuMTAgKGh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyk8L3htcDpDcmVhdG9yVG9vbD48L3Jk +ZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6YjUwM2RiMTkt +YWUyOS0xMWY1LTAwMDAtMmY0MTI5Y2Y4ZDIwJyB4bWxuczp4YXBNTT0naHR0cDovL25zLmFkb2Jl +LmNvbS94YXAvMS4wL21tLycgeGFwTU06RG9jdW1lbnRJRD0ndXVpZDpiNTAzZGIxOS1hZTI5LTEx +ZjUtMDAwMC0yZjQxMjljZjhkMjAnLz4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6 +YjUwM2RiMTktYWUyOS0xMWY1LTAwMDAtMmY0MTI5Y2Y4ZDIwJyB4bWxuczpkYz0naHR0cDovL3B1 +cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nIGRjOmZvcm1hdD0nYXBwbGljYXRpb24vcGRmJz48ZGM6 +dGl0bGU+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5VbnRpdGxlZDwvcmRm +OmxpPjwvcmRmOkFsdD48L2RjOnRpdGxlPjwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+Cjwv +eDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9 +J3cnPz4KZW5kc3RyZWFtCmVuZG9iagoyIDAgb2JqCjw8L1Byb2R1Y2VyKEdQTCBHaG9zdHNjcmlw +dCA5LjI2KQovQ3JlYXRpb25EYXRlKEQ6MjAyMDA0MDMyMDQyMjctMDQnMDAnKQovTW9kRGF0ZShE +OjIwMjAwNDAzMjA0MjI3LTA0JzAwJykKL0NyZWF0b3IoY2Fpcm8gMS4xNS4xMCBcKGh0dHA6Ly9j +YWlyb2dyYXBoaWNzLm9yZ1wpKT4+ZW5kb2JqCnhyZWYKMCAxMAowMDAwMDAwMDAwIDY1NTM1IGYg +CjAwMDAwMDA0NDIgMDAwMDAgbiAKMDAwMDAwMjAxOCAwMDAwMCBuIAowMDAwMDAwMzgzIDAwMDAw +IG4gCjAwMDAwMDAyNTQgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMjM1IDAw +MDAwIG4gCjAwMDAwMDA1MDYgMDAwMDAgbiAKMDAwMDAwMDU0NyAwMDAwMCBuIAowMDAwMDAwNTc2 +IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMTAgL1Jvb3QgMSAwIFIgL0luZm8gMiAwIFIKL0lE +IFs8NzQ4MjJGMzlFRDU0RTBBNDQ2RTFBNTIzRDQxRjIwMUE+PDc0ODIyRjM5RUQ1NEUwQTQ0NkUx +QTUyM0Q0MUYyMDFBPl0KPj4Kc3RhcnR4cmVmCjIxOTQKJSVFT0YK + +----CALLDATA--//--CALLDATA---- diff --git a/tests/data/cmd/gswin64c/7379fbc5c4f64c97c911b3e2695fdb8d.msg b/tests/data/cmd/gswin64c/7379fbc5c4f64c97c911b3e2695fdb8d.msg new file mode 100644 index 00000000..ed7676c8 --- /dev/null +++ b/tests/data/cmd/gswin64c/7379fbc5c4f64c97c911b3e2695fdb8d.msg @@ -0,0 +1,60 @@ +Content-Type: multipart/mixed; boundary="--CALLDATA--//--CALLDATA--" +MIME-Version: 1.0 +Program: gswin64c +Arguments: -P- -dBATCH -dCompatibilityLevel#1.4 -dNOPAUSE -dSAFER -q -sDEVICE#pdfwrite -sOutputFile#.\output.pdf test.eps + +----CALLDATA--//--CALLDATA-- +Content-Type: application/octet-stream; Name="output.pdf" +MIME-Version: 1.0 +Content-Transfer-Encoding: base64 +Content-Disposition: attachment +Filename: output.pdf + +JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29k +ZT4+CnN0cmVhbQp4nF2PSw4CMQiG95yCEyD0ORxDNx6g0XHRMRm9fyId28YY0paPwg/syCTIzfpb +NjhdMq5v2KGxBjsL4+uGV3wCU4rOh2D5C7vsmxNFsii+VpBEQdgdBRuoZLKEBhXU2V/Qg9R7yhE1 +O0qqE5OnqFigszvuOlACpbCYXBcyba+Nv10GljnEiFQwjzkvM8JTjHuXYrv2/rW5fbJR2Ib+3a3A +42/XO5zNPsecQcxlbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKMTcxCmVuZG9iago0IDAgb2JqCjw8 +L1R5cGUvUGFnZS9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9QYXJlbnQgMyAwIFIKL1Jlc291cmNl +czw8L1Byb2NTZXRbL1BERl0KL0V4dEdTdGF0ZSA4IDAgUgo+PgovQ29udGVudHMgNSAwIFIKPj4K +ZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsKNCAwIFIKXSAvQ291bnQgMQo+ +PgplbmRvYmoKMSAwIG9iago8PC9UeXBlIC9DYXRhbG9nIC9QYWdlcyAzIDAgUgovTWV0YWRhdGEg +OSAwIFIKPj4KZW5kb2JqCjcgMCBvYmoKPDwvVHlwZS9FeHRHU3RhdGUKL09QTSAxPj5lbmRvYmoK +OCAwIG9iago8PC9SNwo3IDAgUj4+CmVuZG9iago5IDAgb2JqCjw8L1R5cGUvTWV0YWRhdGEKL1N1 +YnR5cGUvWE1ML0xlbmd0aCAxMzY2Pj5zdHJlYW0KPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdX +NU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPD9hZG9iZS14YXAtZmlsdGVycyBlc2M9IkNSTEYi +Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLycgeDp4bXB0az0nWE1QIHRvb2xr +aXQgMi45LjEtMTMsIGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93 +d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRwOi8vbnMu +YWRvYmUuY29tL2lYLzEuMC8nPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDpiNTAz +ZGIxOS1hZTI5LTExZjUtMDAwMC02OWZmOWZmNDIzN2QnIHhtbG5zOnBkZj0naHR0cDovL25zLmFk +b2JlLmNvbS9wZGYvMS4zLycgcGRmOlByb2R1Y2VyPSdHUEwgR2hvc3RzY3JpcHQgOS4yNicvPgo8 +cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDpiNTAzZGIxOS1hZTI5LTExZjUtMDAwMC02 +OWZmOWZmNDIzN2QnIHhtbG5zOnhtcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+PHht +cDpNb2RpZnlEYXRlPjIwMjAtMDQtMDNUMjA6NDI6MjctMDQ6MDA8L3htcDpNb2RpZnlEYXRlPgo8 +eG1wOkNyZWF0ZURhdGU+MjAyMC0wNC0wM1QyMDo0MjoyNy0wNDowMDwveG1wOkNyZWF0ZURhdGU+ +Cjx4bXA6Q3JlYXRvclRvb2w+Y2Fpcm8gMS4xNS4xMCAoaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3Jn +KTwveG1wOkNyZWF0b3JUb29sPjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJk +ZjphYm91dD0ndXVpZDpiNTAzZGIxOS1hZTI5LTExZjUtMDAwMC02OWZmOWZmNDIzN2QnIHhtbG5z +OnhhcE1NPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vJyB4YXBNTTpEb2N1bWVudElE +PSd1dWlkOmI1MDNkYjE5LWFlMjktMTFmNS0wMDAwLTY5ZmY5ZmY0MjM3ZCcvPgo8cmRmOkRlc2Ny +aXB0aW9uIHJkZjphYm91dD0ndXVpZDpiNTAzZGIxOS1hZTI5LTExZjUtMDAwMC02OWZmOWZmNDIz +N2QnIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLycgZGM6Zm9ybWF0 +PSdhcHBsaWNhdGlvbi9wZGYnPjxkYzp0aXRsZT48cmRmOkFsdD48cmRmOmxpIHhtbDpsYW5nPSd4 +LWRlZmF1bHQnPlVudGl0bGVkPC9yZGY6bGk+PC9yZGY6QWx0PjwvZGM6dGl0bGU+PC9yZGY6RGVz +Y3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAKPD94cGFja2V0IGVuZD0ndyc/PgplbmRzdHJlYW0KZW5kb2JqCjIgMCBvYmoKPDwv +UHJvZHVjZXIoR1BMIEdob3N0c2NyaXB0IDkuMjYpCi9DcmVhdGlvbkRhdGUoRDoyMDIwMDQwMzIw +NDIyNy0wNCcwMCcpCi9Nb2REYXRlKEQ6MjAyMDA0MDMyMDQyMjctMDQnMDAnKQovQ3JlYXRvcihj +YWlybyAxLjE1LjEwIFwoaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnXCkpPj5lbmRvYmoKeHJlZgow +IDEwCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDQ2NSAwMDAwMCBuIAowMDAwMDAyMDQxIDAw +MDAwIG4gCjAwMDAwMDA0MDYgMDAwMDAgbiAKMDAwMDAwMDI3NSAwMDAwMCBuIAowMDAwMDAwMDE1 +IDAwMDAwIG4gCjAwMDAwMDAyNTYgMDAwMDAgbiAKMDAwMDAwMDUyOSAwMDAwMCBuIAowMDAwMDAw +NTcwIDAwMDAwIG4gCjAwMDAwMDA1OTkgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAxMCAvUm9v +dCAxIDAgUiAvSW5mbyAyIDAgUgovSUQgWzxBOUU4MEZFQ0M2RUE3QjZFRkNCRjdDMkVDMkNDRTNB +OT48QTlFODBGRUNDNkVBN0I2RUZDQkY3QzJFQzJDQ0UzQTk+XQo+PgpzdGFydHhyZWYKMjIxNwol +JUVPRgo= + +----CALLDATA--//--CALLDATA---- -- GitLab From 165c9ff407a936f24af4f8958b9111fb7c138453 Mon Sep 17 00:00:00 2001 From: Jonathan Neuhauser Date: Mon, 31 Jan 2022 20:09:58 +0100 Subject: [PATCH 4/5] should also work in CI --- ps_input.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ps_input.py b/ps_input.py index b4febfc1..597fdcd5 100755 --- a/ps_input.py +++ b/ps_input.py @@ -22,6 +22,7 @@ Simple wrapper around ps2pdf """ import sys +import os import inkex from inkex.command import call, which @@ -49,7 +50,11 @@ class PostscriptInput(inkex.CallExtension): except: pass if gs_exec is None: - raise inkex.AbortExtension() + if "PYTEST_CURRENT_TEST" in os.environ: + gs_exec = "gswin64c" # In CI, we have neither available, + # but there are mock files for the 64 bit version + else: + raise inkex.AbortExtension() call(gs_exec, *params) else: call("ps2pdf", crop, input_file, output_file) -- GitLab From 8ccf6826ae719af72f44e9e46671dd7c0a61432b Mon Sep 17 00:00:00 2001 From: Jonathan Neuhauser Date: Mon, 31 Jan 2022 20:17:01 +0100 Subject: [PATCH 5/5] remove test file --- tests/data/refs/ps_input__test__ps_win.out | Bin 2482 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/data/refs/ps_input__test__ps_win.out diff --git a/tests/data/refs/ps_input__test__ps_win.out b/tests/data/refs/ps_input__test__ps_win.out deleted file mode 100644 index 054da6896ddfd0d8ff0857561e558889d08d47d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2482 zcmY!laBiLIffg}H?VLO3Y3I6tQpq}$fe(nvwKP(e39S3x%=*wM{3NI^Hn z&p*I1G#F%#lVgaphk|agi))ytv#WAJN?LhQW=X1oZi;h$Zb4#6W>RKOW=W+_YFTQI zvZ0=df^M;YX-Pq8iCbn)s@3yY~7er2F_dS&KxWfA1 z>HU5Ifeu5K7vYD_d^xJsSGuP3dUwcztQR_k@4h$3OnPv|xa*T^L8OjP2Fv~XOlk*x zic(VaIW1=RDDAkEWPg6!MOM#+B|BBGY~^jIWpI zr|SErrer2MkkSehtUTEuec2P77y=9MTIg93s}9~6(JMaikfHa7YJMfu6W zsU^|+0WNN_Ty}O``p)@zC8>EO#R{N+3<3#3?E~osIl;z8K_6tH0@%i41%2<#lwyTw zE|7bIxMCIbo%2icN)!x{v>Kv1RYBi5u_Q4kKOJTS$mk$0ec#lQ#FWI6LW&-4rXN z7AM;(IS2W;DS;GJSXJZ}w(>* zmz(Ko%z^<(HP&Dk(utDL}Fv#h8MWG<`!oV|{gn zf|N9?fTH}A(&W@4TXpvU9|iY}{NfUbu?m)YrlxuZ>iSTB5wNZzw*b4VD-sK!&bFz@ zEwJ*GSW3L)HOB?F*LO@F|aZ=*ETS;GBB{wM^niK*6Li83d;9H zXhl+qq&2@NBtJjLE;%u?C||))&(KuQ&_F>08bM&u^rFOqjLhU>P&{cuTmd!;s?$av z6wXKiL1fS*7Wn$&51iawP-+9IvvSE#F3nBNEAe!(RWB{gOtCUCNV7~fPcqQ8FiA_( zH8f03)-^CNFwiwOPqaujG&V>xFiIpgmQs@8?kFfN$^rRPKP6c|H76BhWwE}Yo}s?F zLQ1k#8l?VEPb?_N$%NE5`UNRz>UK6M$yOzqB{`{f;MDGzQvzY+WP;M2RZe1Fx~+PJ zZc1ueVrfo^x?N}~b>gAPlfReS}$9LKZ9(Wup(yh@ebq$E83eKs|#H z1ypKYimiG%sQAGs{f!XiCoIcpV9#-yT>9Wdmzkdj$|f2vR-lYxU}$V;Xlh~r&Lipu z2I`tz`o8%o1XO?x$}iFYr*3$fkHMMfV>C7G?4XrJMNw)Rmw|!>7bvwsu!5PXsj;a- zngUGB%*0XwETxbK6En25G)5OQFts$m5Hm5izz{PsF~txwF~zXMz}yhYj*_Cp%$(FB zE>Nu&oLQBsV4Xy9t@Wb9_?;_7N{Y-mSV1-POuE=epZ0SA+jp}8TKs;aBM8y5g;gY)bF -- GitLab