2014-11-28 20 views
6

Tôi có tài liệu PDF và tôi muốn in bằng ứng dụng python của mình.Python in im lặng PDF cho máy in cụ thể

Tôi đã thử các giải pháp trong here (Print PDF document with python's win32print module?) nhưng khi tôi cài đặt Ghostscript 9.15 đó là phiên bản thực tế, nó không có gsprint.exe

Con đường tôi đang sử dụng mà làm việc là với lệnh os.startfile('PDFfile.pdf', "print") nhưng nó sẽ mở ra xem mặc định (mỏ là Adobe Reader) và sau khi in nó vẫn mở, cố gắng để giết quá trình với os.system("TASKKILL /F /IM AcroRD32.exe") giết chết các cửa sổ đã mở khác và tôi không muốn nó.

Với lệnh tiếp theo, nó còn có thể in, nhưng nó cho phép các phần mềm Adobe Reader mở quá

currentprinter = win32print.GetDefaultPrinter() 
win32api.ShellExecute(0, "print", 'PDFfile.pdf', '/d:"%s"' % currentprinter, ".", 0) 

Tôi đã thấy this answer quá nhưng họ khuyên bạn nên sử dụng gsprint.exe lại

Bất kỳ ai có gsprint.exe tập tin hoặc bất kỳ giải pháp khác ?.

LƯU Ý: Khi tôi sử dụng một chương trình mặc định để mở tập tin PDF như Chrome hoặc Windows Reader, tôi luôn nhận được một ngoại lệ trong việc thực hiện các lệnh trên '(31, 'ShellExecute', 'A device attached to the system is not functioning.')' hoặc [Error 1155] No application is associated with the specified file for this operation: 'PDFfile.pdf' với lệnh startfile

Trả lời

6

Cuối cùng sau giờ làm và giờ tìm kiếm các tệp phù hợp, tôi đã tìm thấy câu trả lời cho vấn đề của mình.

Bạn có thể tải GSPRINT trong HERE

Bạn có thể tải Ghostscript GPL trong HERE

Với file trích xuất trong máy tính của bạn (Windows) bạn có thể in PDF của bạn với lệnh này

GHOSTSCRIPT_PATH = "C:\\path\\to\\GHOSTSCRIPT\\bin\\gswin32.exe" 
GSPRINT_PATH = "C:\\path\\to\\GSPRINT\\gsprint.exe" 

# YOU CAN PUT HERE THE NAME OF YOUR SPECIFIC PRINTER INSTEAD OF DEFAULT 
currentprinter = win32print.GetDefaultPrinter() 

win32api.ShellExecute(0, 'open', GSPRINT_PATH, '-ghostscript "'+GHOSTSCRIPT_PATH+'" -printer "'+currentprinter+'" "PDFFile.pdf"', '.', 0) 

GhostScript cũng có thể được tìm thấy trong trang Chính thức HERE

Tôi tìm thấy gsprint.exe cho 64bits HERE

Tôi hy vọng điều này sẽ hữu ích.

+1

gsprint.exe cho liên kết 64bits đã chết (tháng 10 năm 2017) nhưng liên kết này hoạt động với 32bit: http://pages.cs.wisc.edu/~ghost/gsview/gsprint.htm –