Print From Phone
Print From Phone is a desktop application for public libraries that aims to simplify the process of printing documents from patrons' smart phones.
How does it work?
Step 1: Patron opens the app and accepts the terms and conditions.
Step 2: Patron is prompted to email the documents they would like to print from their phone to an email account that is under the library's control. This can often by done by opening the document on their phone, and then tapping a "Share" button. They can also forward an existing email.
Step 3: Patron is prompted to enter their email address.
Step 4: The application connects to the library-controlled email account and downloads the files that are attached to the patron's email.
- Print From Phone requires Java 8 or later. You can download Java here: https://java.com
- Download the ZIP file here.
- Extract the contents of the ZIP file to a location of your choice.
- Open the
settings.propertiesfile with a text editor and edit as needed. This file must be stored in the same place as the
- Open the
license.htmlfile and edit to your liking. This is the "term and conditions" text that the patron sees when they first open the application.
- Double-click the
print-from-phone-1.0.jarfile to launch the application.
How to add credentials to the Windows Credential Manager
If you would rather not store your email account credentials in the
settings.properties file, they can also be stored in the Windows Credential Manager.
- Open the Start Menu, search for "Credential Manager", and open it.
- Click "Windows Credentials".
- Click "Add a generic credential".
- In the "Internet or network address" field, type "Print From Phone".
- Enter the email account credentials in the "User name" and "Password" fields.
- In the
settings.propertiesfile, empty out the "email.username" and "email.password" fields.
How to configure Gmail to be the recipient address
- Enable IMAP.
- In the settings, go to "Forwarding and POP/IMAP".
- Select "Enable IMAP".
- Select "Auto-Expunge off"
- Under "When a message is marked as deleted...", select "Immediately delete the message forever". This will force Gmail to permanently delete the email after Print From Email downloads it.
- In the
settings.propertiesfile, set the "email.server" field to "imap.gmail.com".
- Turn off the spam filter.
- In the settings, go to "Filters and Blocked Addresses".
- Click "Create new filter".
- In the "Has the words" field, type "is:spam".
- Click "Create filter with this search".
- A confirmation dialog will appear. Click OK.
- Check the "Never send it to Spam" checkbox.
- Click "Create filter".
- Make sure "less secure apps" is enabled. Google considers IMAP to be less secure than other protocols.
- Go to https://myaccount.google.com.
- In the search bar, type "less secure app access".
- Enable the "Allow less secure apps" setting.
Since the password to the email account is stored in plain text on the computer, it could potentially be discovered by someone who has the technical skills and motivation to do so. As stated in the license, this program is provided without warranty of any kind.
Notes for developers
Print From Phone uses Gradle as its build tool.
gradle build command will build a fat, executable JAR file and save it to the
--mock parameter at the command line will force it to use a mock email server and download mock attachments:
java -jar print-from-email-1.0.jar --mock
You may also specify the path to the
settings.properties file at the command line, like so:
java -jar print-from-email-1.0.jar "C:\path\to\settings.properties"
If you would like to contribute to the project, please submit a pull request! The project is particularly in need of a more secure way of storing the email account's login credentials.
Questions and feedback
Please let me know how Print From Phone is working out for you:
- If you have a feature request or found a bug, please create a ticket on the Issue tracker.
- You can also email me directly if you prefer: email@example.com