Sublime Forum

Printing from sublime

#61

If someone could spend a few minutes to confirm that my feature works (or doesn’t…) for osx or linux, that would be nice :smile:

First,** ensure your printer is shared**;
Clone, or download and copy, the files to a folder named QuickPrint in your Packages area; re-start ST, then right-click an open view and choose QuickPrint. If it doesn’t print can you look in the Console (Ctrl ’ (apostrophe, or possibly back-tick)) and note any error message(s) that appears there.

Thanks in anticipation. Andy.

0 Likes

#62

I just tried out the QuickPrint feature in OSX 10.7.5 with Sublime Text 2.0.1, Build 2217, and it doesn’t work for me.

I downloaded the zip of QuickPrint from Github, unzipped it and copied the 6 files into a folder called QuickPrint in my Sublime Text 2 packages folder. I restarted ST, and now I see a “QuickPrint” option when I right-click, but it’s greyed out. No error message shows up in the console (because I can’t click the greyed-out QuickPrint option). Is there anything further I can try to make it work?

Also, the command to pull up the console is ctrl+backtick `, not ctrl+apostrophe ', correct? Nothing happens when I type ctrl+apostrophe in ST.

0 Likes

#63

@bbarrill Thank you very much for taking a look at this.

You can view the console from the **View **menu, Show Console. (Control apostrophe works for me on Windows, but I notice the menu command suggests Ctrl back-tick.)

IMPORTANT: Have you shared your printer…? I mentioned this in a previous post, but forgot to mention it in my most recent one, Doh!

If you can let the know the error message that appears in the console that would great (as I’m unable to test this otherwise). Andy.

0 Likes

#64

I do have printer sharing turned on (although this doesn’t seem to affect anything; I tried it both ways). Here’s what I find when I start up ST and look at the console:

[quote]
Reloading plugin /Users/bb/Library/Application Support/Sublime Text 2/Packages/QuickPrint/QuickPrint.py
Traceback (most recent call last):
File “./sublime_plugin.py”, line 62, in reload_plugin
File “./QuickPrint.py”, line 8, in
os.environ’COMPUTERNAME’])
File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/UserDict.py”, line 22, in getitem
raise KeyError(key)
KeyError: ‘COMPUTERNAME’
plugin init time: 0.041403
loading bindings
loading pointer bindings
found 1 files for base name Default.sublime-theme
theme loaded
app ready
pre session restore time: 0.158148
using gamma: 2 (err: 6.9282)
startup cache, total files: 94 cache hits: 94
startup time: 0.261773 (package setup was not run)
loaded 837 snippets[/quote]

Hope this helps.

0 Likes

#65

Ah, it doesn’t like

os.environ’COMPUTERNAME’]

If you open the QuickPrint.sublime-settings file can you uncomment/add the setting:

"comp_name": “YOURCOMPUTERNAME”,

replacing it with your computer name please. You should restart ST before trying the print.

If this doesn’t work you could edit the following line(s) temporarily in QuickPrint.py, as they are not needed for OSX:

COMPUTER = sublime.load_settings(PACKAGE_SETTINGS).get("comp_name", \ "DUMMYTEXT")

Thank you for taking the time. Andy.

0 Likes

#66

I think I need to revise the code to use **socket **and socket.gethostname() to make it cross-platform (os.environ’COMPUTERNAME’] seems to depend on Windows).

import sublime, sublime_plugin import socket, os, subprocess, tempfile, sys ... COMPUTER = sublime.load_settings(PACKAGE_SETTINGS).get("comp_name", \ socket.gethostname())

I’ll update this while awaiting your response. ta, Andy.

0 Likes

#67

Ok, so I opened the settings file and removed the “//” at the beginning of the line so that it is not commented out, and I changed the name “ANDYCOMPAQ” to my computer’s name. Then I quit and restarted ST, but it still gave the same error message as before when it tried to load the plugin.

Then I also tried editing the two lines in quickprint.py to what you wrote. Now something different happens! ST starts without an error and appears to load the plugin successfully, but now when I try to use the QuickPrint feature, I get the following error:

[quote]Traceback (most recent call last):
File “./sublime_plugin.py”, line 339, in run_
File “./QuickPrint.py”, line 132, in run
File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py”, line 470, in call
return Popen(*popenargs, **kwargs).wait()
File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py”, line 623, in init
errread, errwrite)
File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py”, line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
[/quote]

I should note that probably unlike most ST users, I’m a biologist, not a computer programmer (I use ST for basic DNA sequence analysis/cleanup), so I appreciate your easy-to-follow instructions. :smile:

0 Likes

#68

I have now also tried your updated version that uses the socket command. Now it loads the plugin without errors, but when I try to print, it still gives the “No such file or directory” error I posted a moment ago.

0 Likes

#69

Thanks for sticking with me!

Can you add as line 131:

print(vw_filename)

  • it needs to be aligned with the subprocess statement that follows it.

When you exit and try to print again, when viewing the Console it should show the name of the file it is trying to print.

0 Likes

#70

It might require ‘lpr’ rather than ‘lp’, at line 132:

subprocess.call("lpr " + vw_filename)

0 Likes

#71

I added the print line (keeping the indentation same as the subprocess line) and changed lp to lpr in line 132, but no change in the error message. Just for clarity, that section now looks like this:

and the error when I try to print still looks like this:

0 Likes

#72

Sorry, perhaps I gave the wrong line number; the print statement should be in the second section:

elif PLATFORM == "osx": # lp -d <queue name> <name of document> # lp <name of document> will send to default printer(?) if QUEUE is not False: subprocess.call("lp -d " + QUEUE + " " + vw_filename) else: print(vw_filename) subprocess.call("lp " + vw_filename)

0 Likes

#73

Ok, now it puts the filename:

results.txt is the name of the file I am trying to print.

0 Likes

#74

It looks okay?! Is

/var/folders/rv/khlfpt5d15q40578f1sjz3f00000gp/T/results.txt

a valid osx path? Can you check if this file exists - I assume it should!

Otherwise, you could try adding the setting:

"queue": “yourprintername”,

to the QuickPrint.sublime-settings file, so that it tries to print to the named printer (rather than a default printer).

Thanks again for persisting with me…

0 Likes

#75

Yes, the file exists at that path (and I opened it and verified that it’s my file). I tried adding that line to the settings file, no change. Now I really need to go start the experiment I meant to start a few hours ago. :smile: I’ll check back later if you have more suggestions.

0 Likes

#76

This is also an experiment :wink:

No worries, and thanks again. For* some time later*:

Did your printer name contain spaces? This may be another issue.
I’ve updated my GitHub to use the folder /tmp/ for osx. If this doesn’t work then I assume that lp (or lpr) are not configured to the default printer by default, or perhaps there is some security setting(s) preventing access to the temp folder.

I’m hoping some osx-legend might contribute to our endeavours :smiley:

Added: The printer settings may need to be adjusted to accept TEXT input.
Finally: If/when you get a chance can you type lp pathtosometextfile.txt in Terminal to see if it prints.

0 Likes

#77

I do enjoy a good puzzle. :mrgreen:

My printer name does not contain spaces. I’ve re-downloaded the updated zip from github a few minutes ago and put it on my laptop at home (OSX 10.8.2), in case there was something weird about my work computer/printer setup, but the same “No such file or directory” error also occurs on my laptop.

I’m not sure what this means: “The printer settings may need to be adjusted to accept TEXT input.” I don’t see any options like that in my printer settings.

I am able to successfully print the file stuff.txt by typing “lp stuff.txt” in Terminal.

0 Likes

#78

I am at a loss…

Perhaps I will include an email client: it will post the file to me in an email, I’ll print it out and post it to you :smiley:. It means, though, there will be a slight delay between each print.

Hopefully someone else might offer suggestions :wink:

thanks again, Andy.

0 Likes

#79

Could try one last time :wink: . The current version saves the text file in the current location, just adding a .txt extension. This will at least eliminate the location of the file as the cause of the problem. Andy.

0 Likes

#80

Well, now it makes a different error, so that’s fun… I tried it first with an unsaved file, then saved the file as stuff.txt and tried again.

I’ll just use the Print to Html package instead. Opening a browser to print DNA sequences seems like overkill, but it works okay. Thanks for the good times; it’s nice to do some “experiments” that don’t involve pipetting clear liquids between various tiny tubes hundreds of times.

0 Likes