2009-02-20 13 views
7

मैं विंडोज प्रिंटर पर here से डाउनलोड किया गया, Emacs 23.0.60.1 चला रहा हूं, नेटवर्क प्रिंटर को डिफ़ॉल्ट प्रिंटर के रूप में कॉन्फ़िगर किया गया है।मैं Win32 पर Emacs से कैसे प्रिंट करूं?

मैं आसानी से बफर सामग्री को मुद्रित करने के लिए Emacs कैसे सेटअप करूं?

Win32 के लिए पैच किए गए Emacs संस्करण के documentation "त्वरित और आसान" प्रिंटिंग का उल्लेख करता है, लेकिन "त्वरित प्रिंट" मेनू प्रविष्टि प्रकट नहीं होती है और नियमित प्रविष्टियां ("प्रिंट बफर", "पोस्टस्क्रिप्ट प्रिंट बफर") डॉन ' टी कुछ भी प्रतीत होता है।

संपादित करें:
मैं Emacs 22.3 की आधिकारिक खिड़कियों का निर्माण के साथ एक ही समस्या आ रही है। इसलिए किसी भी संस्करण के लिए सेटअप/समस्या निवारण निर्देशों की सराहना की जाएगी।

EDIT2:
मैं जो अच्छी तरह से काम करता है नीचे जो Casadonte द्वारा प्रस्तुत PrintFile समाधान, साथ चला गया। मुझे अभी भी किसी भी विचार में दिलचस्पी होगी क्यों "उचित" तरीका काम नहीं कर रहा है, हालांकि।

(वैसे, यह एक उचित तो सवाल ही मामूली जा रहा है प्रोग्रामिंग से संबंधित है?)

+0

मैं Win32 Emacs 23 Win32 Emacs 22 से उन्नत बनाया है, और एक ही समस्या पाया के साथ अपनी फ़ाइलें मुद्रित कर सकते हैं: के रूप में दस्तावेज प्रिंट बफर मेनू अब काम नहीं करता। और, ज़ाहिर है, मैं उस पर अनुवर्ती करने में पूरी तरह असफल रहा हूं। –

+1

पुन: उपयुक्त SO प्रश्न - हाँ, मुझे विश्वास है कि यह उचित है। Emacs और वीआईएम प्रश्न पूछे जाते हैं और यहां हर समय जवाब दिया जाता है। –

उत्तर

4

यह नहीं "उचित" जिस तरह से है, लेकिन मैं गया है यह इस तरह से साल और इसके लिए कर दिया गया है अद्भुत काम करता है। मैं PrintFile का उपयोग करता हूं, एक फ्रीवेयर प्रिंट प्रोग्राम (जिसे स्टैंड-अलोन भी इस्तेमाल किया जा सकता है)। तब मैं अपने .emacs में यह है:

(defun joc-make-fname-from-buffer-name (buffer-name-in) 
    "Returns a valid filename from a given buffer name" 
    (interactive "b") 
    (save-match-data 
    (let* ((start (string-match "[^ \*]" buffer-name-in)) 
      (end (string-match "[ \*]*$" buffer-name-in (match-end 0))) 
      (rc (substring buffer-name-in start end))) 
     ;; remove some special characters 
     (while (string-match "[:]+" rc) 
     (setq rc (replace-match "_" t t rc))) 
     rc))) 

(when is-win32 
    (defun joc-print-buffer-or-region (prefix) 
     "Prints buffer or region via PrintFile32. If a prefix arg is set (via C-u) then 
     the current region is printed, otherwise the current buffer is printed." 

     (interactive "P") 

     ;; ----- set the print directory, fname and args ----- 
     (let* ((print-dir (expand-file-name "~/emacs/print")) 
      (print-fname (joc-make-fname-from-buffer-name (buffer-name))) 
      (print-fullpath (concat print-dir "/" print-fname)) 
      (print-args "/delete") 
      ;; ----- set rstart and rend to the current region ----- 
      (rstart (point-min)) (rend (point-max))) 

     ;; ----- if prefix given, set them to region ----- 
     (if (and prefix) 
      (if (and (point) (mark) (/= (point) (mark))) 
       (progn (setq rstart (min (point) (mark))) 
         (setq rend (max (point) (mark)))) 
       (error "No region defined"))) 

     ;; ----- make the directory ----- 
     (if (not (file-directory-p print-dir)) 
      (make-directory print-dir)) 

     ;; ----- write buffer/region to a temp file, print it, delete directory ----- 
     (write-region rstart rend print-fullpath) 
     (call-process "prfile32" nil t nil print-args print-fullpath) 
     (delete-directory print-dir)))) 

मैं वर्षों में इसे देखा नहीं है कारण यह सिर्फ काम करता है, तो मुझे यकीन है कि यह सुधार किया जा सकता हूँ।

+0

मेरे एक्सपी पर बहुत अच्छा काम करता है; एक उत्कृष्ट आवेदन की ओर इशारा करने के लिए धन्यवाद! हालांकि - मैं (ए) गैर-लैटिन वर्णों (या यूटीएफ -8) को समर्थन कैसे जोड़ सकता हूं और (बी) _words_ द्वारा लाइनब्रेक्स और _characters_ नहीं? ये प्रिंटफाइल के साथ भी समस्याएं हो सकती हैं, न कि Emacs, हालांकि। धन्यवाद! – marttt

+0

मुझे डर है मुझे नहीं पता - क्षमा करें। –

1

init फाइल

(setq printer-name "//domain/printer-name") 
+0

इसका कोई प्रभाव नहीं पड़ा, या तो। शायद मेरी प्रिंटर सेटिंग्स अजीब हैं ... –

5

मैं एक आम यूएसबी प्रिंटर के साथ विंडोज 7 के लिए सब कुछ का वर्णन करेंगे अपने Emacs में निम्न पंक्ति जोड़ें। उस प्रक्रिया को अनुकूलित करें जहां आपके संस्करण की आवश्यकता है। नेटवर्क आमतौर पर उसी तरह से पहुंचा जा सकता है। > नियंत्रण कक्ष - -> हार्डवेयर और ध्वनि -> अपने प्रिंटर डिवाइस और प्रिंटर

  • rightclick बस प्रारंभ करने के लिए // MyComputer/MyPrinter के बजाय //NetworkComputerName/SharedPrinterName का उपयोग करें और चरणों 1. -6 छोड़ ..

    1. जाओ चुनें "प्रिंटर गुण"
    2. जाओ करने के लिए "साझा" और "इस प्रिंटर साझा करें" और "ग्राहक कंप्यूटर पर मुद्रण कार्य रेंडर करें"
    3. शेयर नाम दर्ज करें: MyPrinter या कुछ है कि तुम्हें याद है और कोई रिक्त स्थान है कर सकते हैं।
    4. अपने परिवर्तनों को सहेजने के लिए ठीक क्लिक करें।
    5. प्रारंभ करने के लिए जाओ -> कंप्यूटर छोड़ दिया निचले कोने में आपके कंप्यूटर का नाम (उदाहरण, MyComputer)
    6. Emacs में जाँच (setq printer-name "//MyComputer/MyPrinter") का मूल्यांकन करने या अपने .emacs.el फ़ाइल
    7. हो गया में यह डाल करने के लिए। आप M-x print-buffer
  • +1

    यह समाधान –

    +0

    यह वायरलेस प्रिंटिंग के लिए भी काम करता है। –

    संबंधित मुद्दे