What I do is the following --- it is not as versatile as you asked, but it works almost ok. You need to have all your printers defined, and then you need these two scripts:
stop_printers
:
#!/bin/bash -f
#
allp=(`cat /etc/printcap | tr "|" "\t" | cut -f 1 | grep -v "#"`)
for i in ${allp[@]}; do
echo -n Printer $i:
cupsdisable "$i"
echo " " paused.
done
start_printers
:
#!/bin/bash -f
#
allp=(`cat /etc/printcap | tr "|" "\t" | cut -f 1 | grep -v "#"`)
for i in ${allp[@]}; do
echo -n Printer $i:
cupsenable "$i"
echo " " restarted.
done
You have to put them in your path (for example ~/bin
) and make them executable with chmod +x
. CAVEAT: I do not have any printer with spaces in their names. The scripts are not tested in that case (but I am sure that one of our shell script's gurus will fix the scripts in a flash ;-)... )
Now, you can issue:
[romano:~] % stop_printers
Printer PDF: paused.
Printer ColorDEA: paused.
Printer Deskjet_6980: paused.
Printer fotocop5: paused.
And you can print from wherever you want, the printer will be paused:
You can see your queue:
[romano:~] % lpq -PDeskjet_6980
Deskjet_6980 is not ready
Rank Owner Job File(s) Total Size
1st romano 439 Bones_3+RG.pdf — Flesh depth 125952 bytes
(AFAIK, the print queues are persistent across reboots). And when you want to print:
[romano:~] % start_printers
Printer PDF: restarted.
Printer ColorDEA: restarted.
Printer Deskjet_6980: restarted.
Printer fotocop5: restarted.
Using lprm
you can remove a job if you need to; lpr
to enqueue a document via command line, and if you want different "lists", no one forbids defining the same printer several times with different names.
You can also resume each printer by hand, it's just a matter of running cupsenable <printername>
from the prompt.
What I do not think you can do with this solution is changing the print options after the fact --- you will have to dequeue and re-enqueue the document for this.
This might be a stretch but I have experienced something like this on my work laptop before. It tends to happen when I have many applications up and stacked on top of each other in the same window my terminal is. Even though the text is getting highlighted in the terminal, the click board doesn't end up with anything in it kinda like if one of the other windows was mysteriously between your mouse and the terminal window. What made it work for me is minimizing all the applications at once by doing the mouse shake. Sorry about the not so scientific answer.
Best Answer
Fast method
Open the PDF document in the default Document Viewer application (okular) and scroll down to the page you want to copy.
Select View -> Fullscreen.
Create a screenshot of the page on the screen using the keyboard shortcut Alt + PrtScn. Alt + PrtScn will take only the particular window which is currently active.
Slow method
The slow method gives you more options for customizing the copied image.
Install GIMP image editor from the Ubuntu Software Center.
Right-click any pdf file and select Open With -> GIMP Image Editor.
GIMP will open and show an Import from PDF window. Click the page or pages from the PDF document that you want to import in order to select them.
Click the Import button.
From the Layers/Channels/Paths Dock select the Layers tab and then select a PDF page to export as an image by clicking it. If you want to edit the image before exporting it, you can do this now or else continue on to the next step.
Select File -> Export As...
In the bottom right corner of the Export Image window select the format of the exported image from the dropdown menu. The format of the exported image can be PDF or any one of the many image formats that GIMP supports.
Click the Export button.