Code 128 is usually more compact
Code 128 can efficiently encode printable ASCII and digit pairs through multiple code sets. Automatic selection reduces width for numeric sequences. For a new internal inventory system that accepts either format, Code 128 is often practical because it fits more data in less horizontal space.
Code 39 suits established simple workflows
Standard Code 39 uses uppercase A–Z, digits, spaces, and a small set of punctuation. Lowercase requires an extended representation, which this tool does not use. Code 39 is common in legacy industrial systems but becomes wide quickly. Its optional Mod 43 check digit must agree with the scanner configuration; otherwise the scanner may return an extra character or reject the symbol.
Your receiving system decides
A barcode is not a complete data contract. Confirm which formats the warehouse, scanner, or receiving application expects. Code 128 artwork is not automatically GS1-128: application identifiers and separator handling require a separate standards-aware workflow. Test actual values against the destination system.