Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

banner

Labelmaker

Make printable QR code labels for samples using basic information about a project.

Installation

Option 1: Native install

Labelmaker has been tested on macOS and Linux. It requires the following software:

  • Conda
  • TeX Live
  • Labelmaker (this repository)

Conda

If you don't have Conda installed on your machine, install Miniconda for your operating system (Python 3.7+ version).

Create a conda environment called labels where you will install the package qrcode:

conda create -n labels pandas click python=3
source activate labels
pip install qrcode[pil]

TeX Live

Tex Live provides a comprehensive TeX system with binaries for macOS, Linux, and Windows; you can download it here. We will use lualatex. A TeX installation is not absolutely required, but it is required to render a label sheet (PDF) from the individual label image files (PNG).

Labelmaker

Clone the Labelmaker repository to your computer:

git clone https://github.com/aomlomics/labelmaker
cd labelmaker

Option 2: Docker container

To run Labelmaker inside a Docker container:

  1. Install Docker Desktop (Mac, Windows, or Linux) from Docker.com.
  2. Open Docker app.
  3. Download the Docker image from DockerHub (command below).
  4. Run the Docker image (command below).
docker pull aomlomics/labelmaker
docker run -v $HOME:/data -it aomlomics/labelmaker

If installing on a Mac with an Apple Silicon chip, run the Docker image with the --platform linux/amd64 command. It will take a few minutes for the image to load the first time it is run.

docker run --platform linux/amd64 -v $HOME:/data -it aomlomics/labelmaker

The -v (volume) flag above allows you to mount a local file system volume (in this case your home directory) to read/write from your container. Note that symbolic links in a mounted volume will not work.

Execution

Make a sheet of labels in three easy steps:

  1. Generate the labels as PNG files.
  2. Generate a composite sheet of labels as a PDF file.
  3. Print!

Step 1: Generate individual labels (PNG)

Run the command generate_labels.py with the required parameters. To learn more about each parameter, run ./generate_labels.py --help. Two options for sample names are available:

Option 1: Provide a list of samples

If a list of sample names is provided, those sample names are used. The sample list should be provided as a text file with one sample name per line (no spaces). If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project ProjectX \
--contact MySurname \
--date 180929 \
--sample_list sample_list.txt \
--num_replicates 1 \
--separator '_'

Option 2: Number sequentially

If no list of sample names is provided, samples are named from 1 to M, where M is the specified number of samples. If the number of replicates N is greater than 1 (default), replicate labels are produced from 1 to N.

./generate_labels.py \
--project Challenger1 \
--contact Thomson \
--date 1872–1876 \
--num_samples 5 \
--num_replicates 2

Step 2: Generate label sheet (PDF)

Labelmaker produces letter size PDF files intended to be printed on Cryo-Babies label sheets, part number LCRY-1700 (Diversified Biotech). These are 1.28-inch x 0.5-inch labels in a grid of 5 x 17 labels.1

Label sheets are generated from TeX files using lualatex. If the number of samples including replicates exceeds 85 (the number of labels per sheet), multiple TeX files will be produced and should be converted to PDF.

Run lualatex from the directory containing the PNG files and TeX file using the commands below.

cd /PATH/TO/labelmaker/labels_Project1
lualatex labelsheet1_Project1_LCRY1700.tex
cd /PATH/TO/labelmaker/labels_Project2
lualatex labelsheet1_Project2_LCRY1700.tex

Step 3: Print

Open the resulting PDF file (e.g., labelsheet1_Project1_LCRY1700.pdf) and print on a sheet of Cryo-Babies LCRY-1700 labels.

Example:


1 Although the physical labels are 1.28 x 0.5 inches, the Python code and TeX code are calibrated for labels with size 1.05 x 0.5 inches or an aspect ratio of 2.1:1 (width:height). By default, generate_labels.py will produce PNG files with dimensions 1.05 x 0.5 inches. The user should not change these defaults if they intend to use the commands below to generate label sheets.

Disclaimer

This repository is a scientific product and is not official communication of the National Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA GitHub project code is provided on an ‘as is’ basis and the user assumes responsibility for its use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from the use of this GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

About

Printable QR labels for samples

Topics

Resources

Stars

8 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages