snipe / snipe-it

A free open source IT asset/license management system
https://snipeitapp.com
GNU Affero General Public License v3.0
10.73k stars 3.11k forks source link

[Question] Recommended Asset label printer? #3526

Closed Jason-Weber-UC closed 4 years ago

Jason-Weber-UC commented 7 years ago

I'm after suggestions/recommendations for an appropriate desktop-sizes label printer that will a) work with the 'Generate Labels' function and produces labels that will last? I'm currently looking at the Brother PT-9700PC which uses their TZ range of labels

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/44742051-question-recommended-asset-label-printer?utm_campaign=plugin&utm_content=tracker%2F505106&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F505106&utm_medium=issues&utm_source=github).
MiBaDK commented 7 years ago

I have just started testing a PT-D600 which I guess works about the same way. I have not been able to figure out how to spec the labels in snipeit to make it fit yet. Have you had any luck with that?

Only way I am able to create labels right now is to screen shot a QR code and paste in P-touch editor. Not exactly optimal :)

dexit commented 7 years ago

Use Zebra label printers, 10x15 = GK420d simple as that Or if you need a bigger monstrosity you can check their range of "Ethernet" enabled printers.

Jason-Weber-UC commented 7 years ago

I've ordered a Brother PT-something. Fingers crossed. I'll post up again to let you know how I go.

Jason-Weber-UC commented 7 years ago

@MiBaDK - Got my Brother printer today. I'm very, very close to throwing it at a wall.

MiBaDK commented 7 years ago

@Jason-Weber-UC I ended up returning it to the store. I did not bother spending too much time with it as it pissed me off it insisted throwing away 1" of label for every print. (Feed, cut, print, cut).

therealjoshuad commented 7 years ago

@mibadk oh that "feature" kills me on my label maker

cipnt commented 7 years ago

Would make sense to have a wiki page with recommended/tested printers

ckinsler commented 6 years ago

A bit late to the party, but it is possible to get Snipe to integrate with a Brother PT-P700. In my case we're using the TZe-S241 3/4" (0.7) Extra Strength Adhesive Labels.

I added code to have Snipe pass along the assets.id and assets.asset_tag via a variable to a PHP page I wrote (i.e /AssetPrint.php?ID=45&TAG=TR16390), which then invokes the Brother SDK on the machine via javascript. Once you click the link it prints the label in less than 2 seconds and looks similar to the attached

QR code is the standard format of https://[url]/hardware/[ID] and the 1D barcode is simply the [TAG]

2018-01-08 19_05_48-clipboard

agreenbhm commented 6 years ago

@ckinsler Would you mind sharing that code you added?

ellisgeek commented 6 years ago

I have a Zebra LP2824 Plus with 2.25 x 1.25 labels that works great with the standard web-based label generator.

My settings for labels are as follows:

I have also modified the label printout template so that it looks a little nicer but it's definitely a hack so modify at your own risk.

Here are some examples of how the changes look: 2018-02-05t16 07 52 - firefox

img_20180205_160820

snipe commented 6 years ago

@ellisgeek We've been discussing making Zebra support a little more native. Would you be willing/able to help us test if we could make his happen?

ellisgeek commented 6 years ago

Absolutely! Like I said on Reddit I'm more than happy to help however I can!

katiCore commented 6 years ago

How can i print labels on a Brother P-Touch P700?

cipnt commented 6 years ago

The settings for every printer and label size would be different, but through trial and error I found the best settings for our Dymo Labelwriter 400 with Large Address Labels (89mm x 36 mm). Chrome's print preview is really useful in determining the correct options. The settings are:

I now bought some smaller and more durable labels which I'll need to test

katiCore commented 6 years ago

But when I say - Create Label - a browser window opened, and when I try to print on my label printer - the printer status says "canceled"

Puddl36lum commented 6 years ago

has anyone been able to find thermal roll labels < 1"x1"?

seattlespicybite commented 6 years ago

I just finished setting up Brother QL-800 and 2.4" tape. Works Great! I do not use P-Touh software. Here are my steps:

  1. Go to printer Properties and select proper paper size (Properties->Advanced->Defaults). Adjust length to whatever you need (For my labels Length 1.4" Feed 0.12")
  2. Go to printer Preferences, select same thing (It does not save it for some reason)
  3. Adjust dimensions in Snipe-it (In my case, Width 2.3" length 1.1", no spacing)
  4. When print in Chrome, select Margins=None, uncheck Headers and footers
  5. Make few test labels and figure out what fits your case. Hope that helps.
andrewgsauer commented 6 years ago

Hey All,

I've had immediate success with the Dymo LabelWriter 450 Turbo. I purchased 25MM x 54MM LW Durable labels from Dymo as well (Part No: 1976411).

In the label setup of Snipe, I have the following settings:

Labels per page: 1 Label font size: 9 Label dimensions: 2.25 (width) x 1.00 (height) Label spacing: 0.05 horizontal 0.07 vertical Page margins: 0.01 top, 0.01 bottom, 0.01975 right, 0.05975 left Page dimensions 2.25 width 1.00 height Visible fields: Assets Name, Serial and Asset Tag (company name disabled)

I have also disabled the standard barcode and opted to only have the QR code. I also put my company name in the QR code text.

Then, I generate all the labels I need while in Google Chrome.

When you do a print in Google Chrome, set the following:

Layout: Landscape Paper size: 30336 1in x 2-1/8inch Margins: None Quality: 300x600dpi Scale: 100

NOTE: Do all of this AFTER you run the Dymo installation package (I downloaded the full suite of software). Once you install the Dymo software, make sure you set the correct paper size while in the Dymo software.

This works really well. I can now print multiple tags at once, and they all come out beautifully and quickly.

EDIT: Adding screenshots

image

image

image

image

Examinato commented 6 years ago

@ckinsler Would you mind sharing your PHP code for printing with javascript to a Brother PT? Thanks

RobFullerGBHS commented 6 years ago

@ckinsler would you mind sharing you php code for the Brother printing? This is only thing holding back us migrating to Snipe for our school inventory. Thanks in advance!

psy commented 6 years ago

Ohai,

not sure if i shouldnt open a new issue instead, but i changed the label generation process to use dom2pdf and create labels as pdfs. pdfs are easier to print and work with most printers which doesnt apply to browsers and their printing abilities.

i created a new blade for the html used by dom2pdf (currently with my own label settings hardcoded, but it shouldnt be a problem to adapt those to settings) and changed the label creation to use dom2pdf. i also had to create a new controller (and routes, of course) for the qr code generation, because the qr code generation within the assetscontroller needs authentication which the dom2pdf library cant provide.

there is a small bug: one empty label at the end due to the "page-break-after: always" css setting for the labels. i didnt come up with a solution for that so far.

as i am new to snipe-it (and laravel), there may be better solutions, i am open for tips and improvements!

i would love to see this integrated into snipe-it!

tl;dr: heres the code: https://github.com/psy/snipe-it/commit/5322c8df4a16fddb3817fe46d93ae22a3eacae32

fryguy503 commented 6 years ago

I used @ellisgeek modified label (https://github.com/ellisgeek/snipe-it/blob/gussy_up_labels/resources/views/hardware/labels.blade.php) on a Dymo 450 Turbo with 2 1/4 x 1 1/4 Durable labels and so far they look fantastic (Made some more adjustments, to the label layout).

lovettbp commented 5 years ago

Not sure if it works for everyone, but if you want to make this easier on yourself, you can always order labels from a site like MyAssetTag.

We had thousands of unaccounted for assets. Literally no info on them. Adding each to the system, printing them, and then having to go and find the actual asset and grabbing the correct sticker is frustrating. I decided to sniff the Snipe URL schemes and see if we could possibly go out and mass tag assets without actually adding them to the system yet.

Turns out you can! The asset tag search at the top of the page uses this scheme: https://yourcompany.snipe-it.io/hardware/bytag?assetTag=TAGNUMBER

So we designed our tags, had the barcode reflect the URL above with an incrementing asset number starting at 000001, and had them printed. We then walked the building and stickered everything. After that, we walked a second time and added everything to the system. Each item has a tag and number already, so no need to worry about possibly running into conflicts with multiple people walking at once. The codes work perfectly, and we were able to keep the labels small enough to fit on literally anything for easy access.

To each their own, but this seems like the most painless process for our org, at least.

I would find it really attractive if Snipe allowed you to generate labels based on asset tag instead of using the database ID, and then print them in mass before actually adding them to the system. I really don’t see why this can’t be a thing.

vstephanou commented 5 years ago

The settings for every printer and label size would be different, but through trial and error I found the best settings for our Dymo Labelwriter 400 with Large Address Labels (89mm x 36 mm). Chrome's print preview is really useful in determining the correct options. The settings are:

  • Labels per page: 1
  • Label font size: 10pt
  • Label dimensions (inches): 3.2 x 1.0
  • Label spacing (inches): 0 x 0
  • Page margins (inches): 0 x 0 x 0 x 0.2
  • Page dimensions (inches): 3.4 x 1.0
  • Label visible fields: Asset Name Serial Asset Tag Company Name

I now bought some smaller and more durable labels which I'll need to test

Hi! I am making some tests and it mostly looks good, but I don't find the exact size in Chrome print settings. What page size you used in Chrome for the 89x36 labels?

EDIT: Nevermind, I found it. It's the Large Address label

stale[bot] commented 5 years ago

Is this still relevant? We haven't heard from anyone in a bit. If so, please comment with any updates or additional detail. This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Don't take it personally, we just need to keep a handle on things. Thank you for your contributions!

stale[bot] commented 5 years ago

This issue has been automatically closed because it has not had recent activity. If you believe this is still an issue, please confirm that this issue is still happening in the most recent version of Snipe-IT and reply to this thread to re-open it.

acerspyro commented 5 years ago

A bit late to the party, but it is possible to get Snipe to integrate with a Brother PT-P700. In my case we're using the TZe-S241 3/4" (0.7) Extra Strength Adhesive Labels.

I added code to have Snipe pass along the assets.id and assets.asset_tag via a variable to a PHP page I wrote (i.e /AssetPrint.php?ID=45&TAG=TR16390), which then invokes the Brother SDK on the machine via javascript. Once you click the link it prints the label in less than 2 seconds and looks similar to the attached

QR code is the standard format of https://[url]/hardware/[ID] and the 1D barcode is simply the [TAG]

2018-01-08 19_05_48-clipboard

This is the way I feel about @ckinsler 's comment:

image

I am currently attempting to get Snipe-It to work with my P-Touch P750W, but the resolution is not high enough for a QR code, yet this guy managed to increase the size of the QR code to make it machine-legible. I would love to have a copy of the modified source code he used.

chrisbarnettster commented 5 years ago

I think this is still an issue. Recommended standard/best settings for often used label printers would be great. Even better if these settings could be selected from the admin section in Snipe-IT, for example a drop down menu with some example presets in the admin/labels settings.

@acerspyro I didn't up the resolution, just played with settings until the 2D barcode was offset and large enough for my phone QR scanner to scan.

Current settings for Brother PT-P700

Printing the 2D barcode, asset name, asset tag and serial. Printing barcodes 1 by 1.... has worked best so far (and wastes the least amount of tape)

label

image

print settings in chrome

image

Basically only get this to print 1 label ok, and have to select only print page 1. All the excess pages (not shown in this screenshot) are to do with the label size vs page size and the margins label spacing etc. Cannot tinker it just right.

admin/labels settings

image

Snipe-IT version

image

katiCore commented 5 years ago

But how can i change the length from the label? I try everything but nothing happens

chrisbarnettster commented 5 years ago

@katiCore You can force the label length change by going into your printer settings. Either via the control panel or if in Chrome go to print using system dialog. Doesn't really work well, see the process described below.

image

image

This doesn't really work well, because the 2D barcode is too small. See image which compares original settings shown in previous post to the 50mm setting.

image

An alternative may be to print to an A4 PDF then use the Brother P-touch Editor to assist with layout... have not tried this yet. ❓

acerspyro commented 5 years ago

@chrisbarnettster Thanks for the reply, I couldn't figure out a way for the QR code to take up the entire vertical space, even after disabling the barcode. It just stays on the top half of the label and there's a blank space where the barcode would be.

chrisbarnettster commented 5 years ago

@acerspyro me neither - I guess some code modifications would be required. This issue is already labelled as feature request. So if anyone feels like hacking something and doing a pull request so that it can become part of the main code that would be amazing!

acerspyro commented 5 years ago

I'd be willing to put some work into this as we currently cannot use the asset tags because the QR code is too small.

I've looked at Snipe-It's structure, but can't figure out where the label generator is located. Can someone give me some pointers?

acerspyro commented 5 years ago

The file I was looking for is labels.blade.php. I toyed around with it a little bit, and ended up with this:

image

Even though the preview in Chrome shows it straight, it prints out top-aligned and with an extra bit of label on the right (the left, bent part is just a holder and is pre-cut by my P750W)

Also, the QR is finally legible by a smartphone camera! \o/ progress

I feel like a few templates should be available in the settings UI and the barcodes and labels sections should be merged. I'll provide my ideas in this thread.

@snipe Since I will be working on this issue, can we get it re-opened?

stale[bot] commented 5 years ago

Okay, it looks like this issue or feature request might still be important. We'll re-open it for now. Thank you for letting us know!

snipe commented 5 years ago

Sure, but bear in mind that we've seen about 6000 variations on barcodes (printers, implementations, etc) over the past 4 years, and unfortunately we have to accommodate all of them. That's why we have so many tweakable variables in the labels section. This would need to be tested pretty extensively on a wide variety of printers for us to be able to accept a PR here - and honestly, we'd much rather use a Javascript library like https://lindell.me/JsBarcode/ to handle this so we don't have to locally cache the barcodes and people can see changes in real time. (There's another ticket open for that somewhere)

JsBarcode - Barcode generator written in JavaScript
Barcode generation library written in JavaScript that works in both the browser and on Node.js
acerspyro commented 5 years ago

I agree that QR and barcodes should be generated in the browser, I was wondering if that was not being done already for performance reasons.

I'll be doing some tests with modular barcodes with multiple templates available here (since JS/NodeJS is the language I'm most fluent in, I'll be experimenting with it).

snipe commented 5 years ago

I agree that QR and barcodes should be generated in the browser, I was wondering if that was not being done already for performance reasons.

No, it was actually done originally because we were generating (or wanted to - was years ago so I don't remember) the entire labels as images, so that we didn't have to contend with variances in browser rendering (because UGH). We found that that was a little too server intense for folks running Snipe-IT on lower-powered servers who were trying to print 1000+ labels at a time.

I like that particular library because I've run tests on it in a few different browsers and it seems to work pretty well. (Caveat: I have not tried to use it with a Duo or Zebra printer, so we might need to set up something separate for that - which we probably should anyway.)

I'm not 100% certain it supports all of the formats we support currently, which could be an issue though. (I could SWEAR I had a ticket I opened for this specifically, and for the life of me I can't find it.) I don't see QR listed on their docs, but have 100 balls in the air right now, so might have missed it. A few I've looked at that could work:

Label layout has been a thorn in our side since we introduced them - partially because of browser rendering, partially because people use the wrong settings (or don't know what to use, because infinity labels in the universe) and partially because people want all kinds of info on them when they're using a label the size of a postage stamp. We've already added additional fields to the labels and it's already causing support issues. :-/

I'd LOVE to have this settled once and for all, but we'd need to make sure we don't break things for all of the other users and use-cases. We'd actually be willing to pay someone to work with us on this, if that's something you're interested in - whether that becomes a separate library that Snipe-IT uses, or just an implementation of one of the above.

JsBarcode - Barcode generator written in JavaScript
Barcode generation library written in JavaScript that works in both the browser and on Node.js
Barcode-Coder: BARCODE : JQUERY PLUGIN TO CREATE BARCODE ONLINE
Barcode : jQuery plugin to create barcode : data matrix, ean 8, ean 13, code 128, 2 of 5 interleaved and standard, code 11, code 39, code 93, codabar, msi
QuaggaJS, an advanced barcode-reader written in JavaScript
QuaggaJS is an advanced barcode-reader written in JavaScript
GitHub
metafloor/bwip-js
Barcode Writer in Pure JavaScript. Contribute to metafloor/bwip-js development by creating an account on GitHub.
acerspyro commented 5 years ago

@snipe I'd be stoked if I could be bountied for the work! :)

I'll create a solid Proof-Of-Concept first and then I'll reach out to you before I begin implementing it into Snipe-It.

For the time being, as I said, you can keep an eye on https://codepen.io/acerspyro/project/editor/ALROxq where I'll be doing my tests.

CodePen
Snipe-It Label Generator
...
snipe commented 5 years ago

@acerspyro I'd rather skip the Bountysource platform if that's okay with you. It's been mad wonky for ages (integration has worked and then been broken and worked and been broken for SO LONG. You can see my posts in the Bountysource repo. Le Sigh.) That said, you don't know us, so I totally get if that's how you'd rather do it and don't blame you one bit.

I also feel like Bountysource/bounties in general often skip the critical path of confirming feature sets, UI, expectations, etc before awarding - so devs end up working on things the maintainers don't want or implement it in a way that could be a problem, and then maintainers accept the bounty and have to spend a lot of time fixing it to meet their expectations. Everybody loses. I'd personally rather have the convo with you first, and we can agree on what's fair expectations and compensation, but it's your party, so however you want to play it. I want to keep us both protected here, and more communication is almost always better than less. :)

If you'd like to contact me directly regarding implementation, you can find me at snipe@snipe.net or agianotto@grokability.com. I'm happy to discuss, and more happy at the prospect of this fscking issue being put to bed for good.

acerspyro commented 5 years ago

@snipe Cheers, I've contacted you via snipe@snipe.net

acerspyro commented 5 years ago

image

image

This is the only CSS block required to configure the label and page dimensions: image

I'm thinking of using CSS Grid to configure the insides of the label itself, but basically every printer would have a template of its own available for its label size and device capability.

Users will also be able to create their own templates by providing a custom CSS, following the specs of the screenshot above.

This is as far as I've gotten, the QR code is still an image and I'm currently fighting with the P-Touch driver to get it to print properly. Here are some things to note:

EDIT: I have found no sane way to print from Chrome to a P-Touch P750w, it constantly prints infinitely long strips of blank tape. You will have to print as PDF first, and then from PDF, print to the P-Touch P750w.

acerspyro commented 5 years ago

@chrisbarnettster @snipe Hello!

Attached is the blade that I created for our P-Touch P750W.

image

Here is our configuration:

image

image

You will need:

Simply copy-paste the Laravel Blade into the snipeit/resources/views/hardware folder.

Note that this is incomplete and there may be some hiccups with certain settings, and some things are still hard coded and dirty.

You may also have to repeatedly mess around in the P-Touch parameters from the print menu in Acrobat (Landscape, high resolution and label length, mainly).

labels.blade.php.zip

acerspyro commented 5 years ago

labels.blade.zip

badrobit commented 5 years ago
  • Resolved empty label at the end
  • Tighter tolerances while staying within the margins
  • Cleaner code

labels.blade.zip

Anyway to deploy this if I am using docker?

acerspyro commented 5 years ago

@badrobit I don't use Docker, unfortunately.

I suppose you could build your own Docker environment with the file embedded.

jpsv commented 5 years ago

Materials:

Satisfied? Very.

Results first: image

Printing preferences page setup settings: image

Printing preferences graphics settings: image

Printing preferences stock settings: image

Printer preferences options settings: image

Snipe IT label settings: image

Chrome print settings: image

Zebra Windows Printer Drivers
Drivers by Seagull™ make it easy to print labels, cards and more from any true Windows program!
ctheune commented 5 years ago

I've been monitoring this issue for a while and I just bought a Zebra ZD420 (using thermal transfer, ideally on 2inx1in labels). I'm going through the hoops of getting a reasonable pipeline ready. Something that's been bothering me in between has been that printing support from various browsers is also hit-and-miss. E.g. Safari can't print without hard coded margins ... I rather wonder whether we could be generating PDFs instead ...

Just wanted to let @acerspyro and @snipe know about this because I'd be willing to help test anything that comes up. I'll try out @acerspyro 's code in a few days.

GrepItAll commented 5 years ago

I'm also looking to deploy Snipe-IT and label printing is high up our requirements list. Our assets are all mobile devices with laminated stickers on that we print with a handheld Brother unit currently (no barcodes).

We ideally want something that will behave well with laminated tape labels as opposed to address labels.

@acerspyro, the work you've done for the P750W looks excellent! Are you still in a position where you have to save to PDF and print from there? Your XKCD reply to @ckinsler was particularly apt, as we want to get something reliably working ASAP.

If anyone else has any success stories using printers that print laminated labels (like the Brother P750W or maybe the Dymo 450 Duo), please do let me know! And let me know what you did to make Snipe-IT play ball with it

ctheune commented 5 years ago

I've finally spent some time with the ZD420 and aside from an asinine initial setup I wrote a simple Python script using Reportlab that parses the current output of the Snipe asset HTML. I think a solution where we can easily hand off data selected in the Snipe UI to another service (i.e. by POSTing a JSON file) would be nice.

We have other uses how we want to create labels and Snipe is only one application/data source. I'd prefer if it would be easy to integrate external solutions easily.

For inspiration, here's a version of the script I wrote:

https://gist.github.com/ctheune/329cf91b3cd272be4ce480a206dc5de4

Gist
Parse Snipe IT label HTML and create nice PDF for Zebra ZD420
Parse Snipe IT label HTML and create nice PDF for Zebra ZD420 - label.py