名刺レイアウト作成・文字領域を自動計算
座標を目測することなく、少数のプロフィール情報と連絡先から実用的な名刺レイアウトを作成できます。標準サイズと縦横の向きを選び、必要に応じて安全余白を指定すると、氏名、役職、会社名、メール、電話、ウェブサイト、住所の領域が決定的に算出されます。座標はミリメートル、文字サイズはポイントで返されるため、文書生成、印刷テンプレート、再現可能なブランド制作工程に利用できます。
無料で実行
仕上がり寸法と安全領域から始めます
名刺のレイアウトは画面上のキャンバスではなく、実際の印刷物を基準に設計します。米国、ISO、日本の標準からサイズを選び、横向きまたは縦向きを指定してください。ジェネレーターは仕上がりの幅と高さをミリメートルで返し、指定された内側余白を差し引いて安全領域を設定します。すべての文字領域はこの範囲内に配置されます。この余白は印刷用の塗り足しや裁断許容差ではありません。これらの製造条件は、結果を受け取る文書システム側で仕上がり寸法の外側に追加してください。両者を明確に区別すると、裁断線に文字が近づきすぎる事故を防げます。初期値の4ミリメートルは一般的な名刺に対する安全な出発点であり、許容範囲内で視覚的な密度を調整できます。全位置は左上を原点とし同じ単位を使うため、1回の明示的な単位変換だけでSVG、canvas、PDF、組版ソフトへ移せます。
プロフィール領域と連絡先領域の割り当て
安全領域はプロフィール部分と連絡先部分に分割されます。プロフィール部分は必須の氏名から始まり、値が入力されている場合は役職、会社名の順に続きます。空の任意項目は省略されるため、不自然な空行は残りません。残りの連絡先部分には、メール、電話、ウェブサイト、住所が常に同じ順番で割り当てられます。各領域には識別子、意味上の役割、正規化済みテキスト、位置、寸法、文字サイズ、最大行数、配置が含まれます。これは完成画像ではなくレイアウト仕様です。最終レンダラーに信頼できる枠を渡しつつ、書体、太さ、色、装飾、ロゴ、背景はブランド規定に委ねます。横向きではプロフィールにやや大きな縦方向の比重を与え、縦向きでは各部分を均衡させます。同じ入力からは常に同じ形状が得られるため、テスト、一括生成、版管理されたテンプレートに適しています。
印刷またはデジタル制作へ適用します
返されたカードオブジェクトでアートボードを作り、安全領域オブジェクトは開発時の任意のガイド表示にお使いください。領域一覧の各要素について、指定された幅と高さの中へ、返された座標でテキストを配置します。文字サイズは調整済みの推奨値として扱ってください。計算では文字列の長さ、利用可能な幅、領域の高さ、許容行数を考慮しています。長い住所は2行を使用でき、短いプロフィールや連絡先は1行に収まります。ただし、実際の書体によって字幅は異なるため、レンダラーでは必ず実フォントのメトリクスを確認し、幅広い書体なら推奨値を小さくしてください。はみ出しを確認せずに拡大しないでください。塗り足し、トンボ、カラープロファイル、印刷所固有の許容差は、仕上がり面の配置後に追加します。デジタル校正でも物理的な縦横比を保ち、表示枠による変形を避けてください。
活用例
従業員用テンプレートの一括作成
社員名簿の項目を統一された文字枠へ変換し、ブランド名刺をまとめて描画できます。
印刷注文フォームの構築
入力されたプロフィールと連絡先が選択した標準サイズをどう占めるか確認できます。
検証可能な文書配置の作成
決定的な座標をSVG、PDF、canvas描画工程の基準値として利用できます。
よくある質問
1回の料金はいくらですか?
APIリクエスト1回は$0.002です。ブラウザー版では同じ決定的な計算をローカルで実行できます。
どの名刺サイズに対応していますか?
仕上がり寸法が88.9×50.8ミリメートルの米国規格、85×55ミリメートルのISO規格、91×55ミリメートルの日本規格に対応します。
安全余白に塗り足しは含まれますか?
いいえ。安全余白は仕上がり線の内側です。塗り足しは制作システムで返却寸法の外側に追加してください。
空の任意項目にも領域が割り当てられますか?
いいえ。未入力または空白だけの項目は省略され、残りの行が利用可能な領域を使います。
推奨文字サイズはどの書体にも合いますか?
形状と文字数に基づく決定的な推定値です。実際のフォントメトリクスを確認し、必要なら小さくしてください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/doc/business-card-layout \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Jordan Lee","card_size":"us"}'const res = await fetch("https://api.kit.forhosting.com/doc/business-card-layout", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Jordan Lee",
"card_size": "us"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/business-card-layout",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"name": "Jordan Lee",
"card_size": "us"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/business-card-layout", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"name":"Jordan Lee","card_size":"us"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"name":"Jordan Lee","card_size":"us"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/business-card-layout", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"name": "Jordan Lee",
"card_size": "us"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.business_card_layout",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 25 |
max_pages | 200 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |