Tak przezroczysty, że nie mogę go złapać… Używanie Rghosta do emulacji polecenia ghostscript, tak jak na drukarce wirtualnej
jako Rubin Newb byłam na małym polowaniu na duchy, które może ci pomóc
Czytałem dużo i powiedziano mi, że najlepszym sposobem uzyskania tych podstępnych kolegów jest użycie skryptu: ghostscript.
Próbuję wykonać polecenie ghostscript, które uruchamiam na drukarce wirtualnej, ale w kontekście pliku ruby (buty):
Moje polecenie to:
C:\Programas\gs\gs9.05\bin\gswin64c.exe -IC:\Programas\gs\gs9.05\lib;C:\Programas\gs\fonts -sDEVICE=pdfwrite -r300 -dNOPAUSE -dSAFER -sPAPERSIZE=a4 -sOutputFile=c:\tempRep\temp.pdf -
Jeśli po prostu umieściłem to polecenie w pliku wsadowym i ustawię tę partię jako program do wywoływania w celu przekierowania portu na drukarkę wirtualną, wszystko pójdzie dobrze, pisząc plik temp.pdf. Problem z tym rozwiązaniem to w rzeczywistości dwa:
Niezbyt suchaplik exe nie zostanie wykonanymój plik filecreate.bat
C:\Programas\gs\gs9.05\bin\gswin64c.exe -IC:\Programas\gs\gs9.05\lib;C:\Programas\gs\fonts -sDEVICE=pdfwrite -r300 -dNOPAUSE -dSAFER -sPAPERSIZE=a4 -sOutputFile=c:\tempRep\temp.pdf -
c:\tempRep\myapp.exe
Więc jeśli to nie jest DRY, a nietoperze nie pomagają, nie ma sensu szukać tutaj duchów. Wszyscy wiemy, że złapanie ducha musi być OSUSZONE!
Udałem się więc w kierunku Rghost: Odkrycie duchów to prawdziwe znaczenie.
Kontekst, w którym to nazywam:
Źródło aplikacji Moje buty:
Shoes.setup do
gem 'rghost'
end
require 'RGhost'
RGhost::Config::GS[:path]= 'C:\\Programas\\gs\\gs9.05\\bin\\gswin64c.exe'
doc=Document.new
doc.render :raw => "-sDEVICE=pdfwrite -r300 -dNOPAUSE -dSAFER -sPAPERSIZE=a4 -sOutputFile=c:\tempRep\temp.pdf -"
Zaczynam czuć się chłodno, ale nie pojawia się plik z duchami ...
Masz jakieś pomysły na złapanie tego?
Rozważam również użycie czegoś takiego
system("C:\Programas\gs\gs9.05\bin\gswin64c.exe -IC:\Programas\gs\gs9.05\lib;C:\Programas\gs\fonts -sDEVICE=pdfwrite -r300 -dNOPAUSE -dSAFER -sPAPERSIZE=a4 -sOutputFile=c:\tempRep\temp.pdf -")
ale to po prostu nie działa: S ... Co mogę zrobić źle?