テキスト、画像、テーブル、注釈などの他に、バーコードを PDF ドキュメントに追加する必要がある場合もあります。バーコードは、在庫管理、発券システム、広告、請求書、出荷ラベルなどの PDF を作成する場合に役立ちます。
DioDocs for PDF は、GrapeCity.Documents.Barcode 名前空間にある GcBarcode クラスを通じてバーコードをサポートします。この名前空間は、バーコード関連のメソッドとプロパティだけを含む独立したアセンブリ GrapeCity.Documents.Barcode.dll に属しています。 GcBarcode 参照は、GrapeCity.Documents.BarCode という名前の NuGet パッケージから入手できます。また、GrapeCity.Documents.Barcode.dll は DioDocs for PDF に含まれていないため、DioDocs for PDF と GcBarcode の間に依存関係はありません。 このアセンブリは、GcGraphics に拡張メソッドを追加するだけです。これにより、GcPdfGraphics などの任意の GcGraphics 実装にバーコードを描画できるようになります。
DioDocs for PDF では、38 種類のバーコードシンボル(1 次元および 2 次元)が提供されています。これらのコードタイプについて、次の表で説明します。GcBarCode アセンブリで提供される CodeType プロパティは、CodeType 列挙から値を受け取り、バーコードのタイプを以下にリストしたバーコードタイプのいずれかに設定します。
バーコードタイプ | 説明 |
---|---|
Ansi39 | ANSI 3 of 9(Code 39)は、大文字、数字、- , * $ / + % を使用します。これがデフォルトのバーコードスタイルです。 |
Ansi39x | ANSI Extended 3 of 9(Extended Code 39)は、ASCII 文字セット全体を使用します。 |
Bc412 | BC412 バーコードは、半導体ウエハー識別アプリケーションのニーズに応えるために IBM によって考案されました。 |
Codabar | Codabar は、A B C D + - : . / および数字を使用します。 |
Code11 | Code11(USD-8 とも呼ばれる)は、1977 年に Intermec によって開発された高密度のバーコードシンボルです。主に、通信機器のラベルに使用されています。このシンボルは分離型で、0〜9 の数字、ダッシュ(-)、スタート/ストップキャラクタをエンコードできます。 |
Code_128_A | Code 128 A は、制御文字、数字、句読点、大文字を使用します。 |
Code_128_B | Code 128 B は、数字、句読点、大文字、小文字を使用します。 |
Code_128_C | Code 128 C は数字だけを使用します。 |
Code_128auto | Code 128 Auto は、ASCII 文字セット全体を使用します。最小のバーコードになるように、Code 128 A、B、および C から 1 つが自動的に選択されます。 |
Code_2_of_5 | Code 2 of 5 は数字だけを使用します。 |
Code93 | Code 93 は、大文字、数字、% $ * / , + - を使用します。 |
Code25intlv | Interleaved 2 of 5 は数字だけを使用します。 |
Code39 | Code 39 は、大文字、数字、% * $ /. , - + を使用します。 |
Code39x | Extended Code 39 は、ASCII 文字セット全体を使用します。 |
Code49 | Code 49 は、各段 8 文字の 2 〜 8 段から成る 2 次元高密度スタック型バーコードです。各段には、スタートコードとストップコードが含まれます。ASCII 文字セット全体をエンコードします。 |
Code93x | Extended Code 93 は、ASCII 文字セット全体を使用します。 |
DataMatrix | Data Matrix は、正方形または長方形のマトリックスパターンに並べられた正方形モジュールから成る 2 次元高密度バーコードです。 |
EAN_13 | EAN-13 は、数字(12 個の数字とチェックデジット)だけを使用します。12 個の数字だけを文字列として受け取ってチェックデジット(CheckSum)を計算し、それを 13 番目の位置に追加します。13 個の数字がある場合は、チェックサムを検証し、それが正しくない場合はエラーを生成します。 |
EAN_8 | EAN-8 は、数字(7 個の数字とチェックデジット)だけを使用します。 |
EAN128FNC1 |
EAN-128 は、運送業で梱包物を識別するためのアプリケーション識別子(AI)データの 1 次元英数字表現です。
このタイプのバーコードには、以下のセクションが含まれています。
データセクションの AI は、後に続くデータのタイプ(ID、日付、数量、計量単位など)を設定します。データのタイプごとに固有のデータ構造があります。この AI があることが、EAN-128 コードが Code 128 と異なる点です。 1 つのバーコードで複数の AI(およびそのデータ)を組み合わせることができます。 EAN128FNC1 は UCC/EAN-128(EAN128)バーコードタイプの 1 つで、任意の場所に FNC1 文字を挿入したり、バーサイズを調整することができるなど、UCC/EAN-128 にはない機能をサポートしています。 FNC1 文字を挿入するには、実行時に Text プロパティに "\n"(C# の場合)または "vbLf"(VB の場合)を設定します。 |
HIBCCode128 | HIBCCode128 は医療産業バーコード 128 の実装です。 |
HIBCCode39 | HIBCCode39 は医療産業バーコード 39 の実装です。 |
Iata25 | IATA 2 of 5 バーコードを表します。 |
IntelligentMail | Intelligent Mail(以前の 4-State Customer Barcode)は、米国内の郵便に使用される 65 本のバーコードです。 |
IntelligentMailPackage | インテリジェント郵便小包バーコード(IMPB:Intelligent Mail Package Barcode)。 |
ISBN | 国際標準図書番号(ISBN)は、市販の書籍に使用される特別な識別子で、「978」または「979」の開始番号に加えて 9 桁の数値をエンコードします。 |
ISMN | 国際標準楽譜番号(ISMN、ISO 10957)は、ISO によって開発され、楽譜出版物に使用される英数字 13 文字の識別子です。 |
ISSN | 国際標準逐次刊行物番号(ISSN)は、定期的に刊行される雑誌などの印刷物または電子出版物に使用される 8 桁の数値です。この ISSN システムは、1971 年に国際標準として起草され、1975 年に ISO 3297 として発行されました。 |
ITF14 | ITF14 バーコードは、GTIN(国際取引商品番号)をエンコードする Interleaved 2 of 5 バーコードの GS1 実装です。連続型のバーコードで、セルフチェック機能を持ち、双方向にデコード可能です。また、常に 14 桁をエンコードします。ITF14 は、一般に、製品の梱包段階で使用されます。 |
JapanesePostal | これは、日本の郵便制度で使用されるバーコードです。20 桁の英数字をエンコードします。これには、7 桁の郵便番号の後に、必要に応じて番地や部屋番号などの情報が含まれます。エンコードするデータにはハイフンを含めることができます。 |
Matrix_2_of_5 | Matrix 2 of 5 は、3 本の黒バーと 2 本の白バーから成る比較的高密度のバーコードです。 |
MicroPDF417 |
MicroPDF417 は、PDF417 から派生された 2 次元多段バーコードです。Micro-PDF417 は、データをできる限り小さなサイズの 2 次元シンボル(最大 150 バイト、英数字 250 文字、数字 366 桁)にエンコードする必要があるアプリケーション用に設計されています。 MicroPDF417 では、可変長のアプリケーション識別子(AI)のフィールド区切り文字として FNC1 文字を挿入することができます。 FNC1 文字を挿入するには、実行時に Text プロパティに "\n"(C# の場合)または "vbLf"(VB の場合)を設定します。 |
MicroQRCode |
MicroQRCode は、QR コード 2005 の一種です。他の通常の QR コードと比べると、位置検出パターンが 1 つしかなく、バーコードサイズが小さいため、バーコード画像のスペースに厳しい制約があるアプリケーションで使用できます。 |
MSI | MSI Code は数字だけを使用します。 |
Pdf417 | Pdf417 は、よく使用されている 2 次元高密度バーコードです。最大 1,108 バイトの情報をエンコードできます。このバーコードは、小さなバーコードを積み重ねて構成されます。ASCII 文字セット全体をエンコードします。10 のエラー修正レベルと 3 つのデータコンパクションモード(Text、Byte、および Numeric)があります。このバーコードは最大 2,725 データ文字をエンコードできます。 |
Pharmacode | Pharmacode(製薬バイナリコードとも呼ばれる)は、製薬業界で包装制御システムとして使用される 1 次元バーコードのバーコード標準です。 |
Plessey | MSI バーコード(Modified Plessey とも呼ばれる)は、MSI Data Corporation によって開発された数字シンボルで、主に在庫管理用の商品棚のマーキングに使用されます。MSI Plessey は連続型でセルフチェック機能を持ちますが、複数のモジュールチェックサム状態を提供します。 |
PostNet | PostNet は、数字とチェックデジットを使用します。 |
PZN | PZN(Pharma-Zentral-Nummer)は、ドイツの製薬業界で医薬品およびヘルスケア製品を識別するために使用されるバーコード標準です。 |
QRCode | QRCode は、英数字やバイトデータに加えて、日本語の漢字やかな文字も扱うことができる 2 次元バーコードです。このバーコードは最大 7,366 文字をエンコードできます。 |
RM4SCC | Royal Mail RM4SCC は、文字と数字(チェックデジット付き)だけを使用します。これは、イギリスのロイヤルメールで使用されるバーコードです。 |
RSS14 | RSS14 は、コンポジットコンポーネント(CC)で拡張された EAN および UPC 情報を小さなスペースにエンコードできる 14 桁の省スペースシンボル(Reduced Space Symbology:RSS)のです。このバージョンは、全方向型 POS スキャナと共に使用される EAN.UCC 品目識別用です。 |
RSS14Stacked | RSS14Stacked シンボルは、CC で拡張された EAN および UPC 情報を小さなスペースにエンコードします。このバージョンは、RSS14Truncated では幅が広過ぎる場合に 2 段に積み重ねられること以外は、RSS14Truncated と同じです。 RSS14Stacked では合成オプションを設定できます。[タイプ]ドロップダウンリストからバーコードのタイプを選択し、[値]フィールドで合成バーコードの値を指定できます。 |
RSS14StackedOmnidirectional | RSS14StackedOmnidirectional シンボルは、CC で拡張された EAN および UPC 情報を小さなスペースにエンコードします。このバージョンは、RSS14 では幅が広過ぎる場合に 2 段に積み重ねられること以外は、RSS14 と同じです。 |
RSS14Truncated | RSS14Truncated シンボルは、CC で拡張された EAN および UPC 情報を小さなスペースにエンコードします。このバージョンは、小さな品目に使用される、0 または 1 のインジケータデジット付きの 14 桁の EAN.UCC 品目識別用です。POS スキャナ用ではありません。 |
RSSExpanded |
RSSExpanded シンボルは、CC で拡張された EAN および UPC 情報を小さなスペースにエンコードします。このバージョンは、全方向型 POS スキャナと共に使用される、AI 要素文字列(重量、賞味期限など)付きの 14 桁の EAN.UCC 品目識別用です。 RSSExpanded では、可変長のアプリケーション識別子(AI)のフィールド区切り文字として FNC1 文字を挿入することができます。 FNC1 文字を挿入するには、実行時に Text プロパティに "\n"(C# の場合)または "vbLf"(VB の場合)を設定します。 |
RSSExpandedStacked |
RSSExpandedStacked シンボルは、CC で拡張された EAN および UPC 情報を小さなスペースにエンコードします。このバージョンは、RSSExpanded では幅が広過ぎる場合に 2 段に積み重ねられること以外は、RSSExpanded と同じです。 RSSExpandedStacked では、可変長のアプリケーション識別子(AI)のフィールド区切り文字として FNC1 文字を挿入することができます。 FNC1 文字を挿入するには、実行時に Text プロパティに "\n"(C# の場合)または "vbLf"(VB の場合)を設定します。 |
RSSLimited | RSSLimited シンボルは、CC で拡張された EAN および UPC 情報を小さなスペースにエンコードします。このバージョンは、0 または 1 のインジケータデジット付きの 14 桁の EAN.UCC 品目識別用です。POS スキャナでスキャンされない小さなシンボルに使用されます。 RSSLimited では合成オプションを設定できます。[タイプ]ドロップダウンリストからバーコードのタイプを選択し、[値]フィールドで合成バーコードの値を指定できます。 |
SSCC18 | 18 桁のシリアル梱包番号(SSCC-18)バーコードは、サーマル 4" x 8" または 4" x 8?"(またはローカル単位で相当する長さ)のラベルの下側 2 インチ(またはローカル単位で相当する長さ)の余白に印刷することができるタイプのバーコードです。 |
Telepen | Telepen は、コード切り替えのためのシフト文字を使用せずに、2 種類の幅のバーとスペースだけを使用して ASCII 文字セットすべてを直接表すバーコードシンボルで、1972 年に英国で設計されました。 |
UCCEAN128 | UCC/EAN ?128 は、ASCII 文字セット全体を使用します。HIBC アプリケーションで使用される特殊な Code 128 です。 |
UPC_A | UPC-A は、数字(11 個の数字とチェックデジット)だけを使用します。 |
UPC_E0 | UPC-E0 は数字だけを使用します。Zero Suppression の UPC シンボルに使用されます。Caption プロパティには、6 桁の UPC-E コードまたは完全な 11 桁(必須のコードタイプ 0 を含む)の UPC-A コードを入力する必要があります。11 桁のコードが入力された場合、バーコードコントロールは、可能であればそれを 6 桁の UPC-E コードに変換します。11 桁のコードを 6 桁のコードに変換できない場合は、何も表示されません。 |
UPC_E1 | UPC-E1 は数字だけを使用します。主に小売業界で在庫ラベルに使用されます。UPC-E1 の入力文字列の長さは数字 6 個です。 |
GcBarcode クラスには、すべてのバーコードタイプに共通の以下のプロパティが用意されています。
プロパティ | 説明 |
---|---|
CodeType | バーコードエンコーディングを設定できます。 |
HorizontalAlignment | バーコードの水平方向の配置を設定できます。 |
Options | 追加のバーコードオプションを定義する BarcodeOptions オブジェクトを取得します。 |
ScaleFactor | バーコード画像に適用される拡大縮小率を設定できます。 |
Text | バーコードにエンコードする値を指定できます。 |
TextFormat | バーコードラベルを描画するテキストを書式設定できます。 |
VerticalAlignment | バーコードの垂直方向の配置を設定できます。 |
DioDocs for PDF を使用してバーコードを追加するには
Barcode.cs |
コードのコピー
|
---|---|
public void CreatePDF(Stream stream) { GcPdfDocument doc = new GcPdfDocument(); var page = doc.NewPage(); var g = page.Graphics; GcBarcode barcode = new GcBarcode() { CodeType = CodeType.QRCode, Text = "QR Code", }; var tfBarcode = new TextFormat() { Font = StandardFonts.Helvetica, FontSize = 9, }; barcode.TextFormat = tfBarcode; barcode.Options.TextAlign = TextAlignment.Center; barcode.Options.QRCode.ConnectionNumber = 123456; var sz = g.MeasureBarcode(barcode); g.DrawBarcode(barcode, new RectangleF(72/2, 72/2, sz.Width, sz.Height)); doc.Save(stream); } |
DioDocs for PDF でのバーコード実装の詳細については、DioDocs for PDF サンプルブラウザを参照してください。