PDFを作成(変更)するJSONファイルをロードするサンプル
PDFへのページ追加や内容(文字列、画像、図形)を追加するためのJSONデータを読み込むコードです。
「PDF Modify」はJSONデータに従ってPDFに様々なコンテンツを追加します。
JSONデータには、描画の指示ばかりではなく、入出力PDFを指定します。さらに、出力PDFにはPDFビュワーで開いたときの初期状態も指定できます。
using PDFTools.PdfStructure;
// ライブラリの初期化
using (var stc = new Structure("license-key") //license-keyを省略すると試用版として機能
{
// JSON形式データによるPDF変更指示
stc.ModifyByJson("data.json");
}
このサンプルコードは、JSONファイルを読み込ませるためのものです。
「PDF Modify」は読み込まれたJSONデータに従って、PDFにページを追加したり、そのページにコンテンツ(文字列、画像、図形)を追加したりします。
出力PDFへの指示もJSONデータに記載します。
画像を文字の外形で切り抜く
文字の外形で切り抜かれた画像を表示するPDFを作成します。
複雑なマスク処理を指定しなくとも、デザイン性の高いビジュアルをJSONデータから直接作成できます。
画像だけでなく、文字や図形も切り抜きできます。
新規にPDFを作成する場合は、入力のPDFを指定しません。ページも1ページだけですので、その指定も不要です。
{
"page":[{
"size":["18cm","8cm"],
"contents":[
{"color":"DodgerBlue"},
{"linewidth":5},
{"text":{
"value":"CLIPS",
"charspace":-0.05,
"font":{ "name":"Arial Bold", "size":"5cm" },
"render":5,
"position":["18mm","15mm"],
"scale":[1,1.3]}
},
{"image":{ "source":"CLIPS.jpg", "position":[45,"5mm"]}}
]
}]
}
| 【JSONデータ 各要素説明】 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| "page" | PDFに関する指定(ページ番号やページへの上書きまたは新規作成など)をします。複数のページ要素を指定できます。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 出力ファイルは既定の(JSONファイル名と同じ)"data.pdf"が作成されます。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ルビを振った文字列
ルビの位置調整の必要なく、簡単にルビを指定できます。
座標計算が非常に煩雑なルビ振り(語全体へのルビやそれぞれの文字へのルビ)が設定きます。
ルビを中央配置や左右寄せ、均等配置にでき、前後に間隔(パディング)を指定することもできます。
{
"page":[{
"size":["15cm","6cm"],
"contents":[
{"text":{
"value":["印刷用語のルビは",{"ruby":["宝石","ほうせき"],"pos":"center"},
"のルビー(Ruby)に\n由来しています。"],
"font":{"name":"MS ゴシック","size":"7mm"},
"position":["10mm","37mm"]}}
]
}]
}
| 【JSONデータ 各要素説明】 | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| "page" | PDFに関する指定(ページ番号、ページ回転、やページへの上書きまたは新規作成など)をします。複数のページ要素を指定できます。 | ||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
| 出力ファイルは既定の(JSONファイル名と同じ)"data.pdf"が作成されます。 | |||||||||||||||||||||||||||||||||||||||
文字列を指定された幅での自動改行、禁則処理
指定された行幅に合わせて自動改行します。
文頭に置けない文字や記号などを前行に残す禁則処理を施した日本語レイアウトを作成します。
改行の指定は単に改行コードを文字列に記載するだけで次の行の先頭から描画します。
禁則文字は、「初期設定」で変更できます。
{
"page":[{
"size":["15cm","10cm"],
"contents":[
{"text":{"value":"桃太郎",
"font":{"name":"MS P明朝","size":"24pt","embed":true},
"position":["10mm","95mm"]}},
{"text":{
"value":[
"むかし、むかし、あるところに、おじいさんとおばあさんがいました。\n",
"おじいさんは山へ",{"ruby":["芝刈","しばかり"]},"に、おばあさんは川へ",{"ruby":["洗濯","せんたく"]},"に行きました。\n",
"おばあさんが川で洗濯をしていますと、",{"ruby":["川上","かわかみ"]},"から、大きな桃が、「どんぶらこ、どんぶらこ」と、流れてきました。\n",
"「おや、これはみごとな桃だこと。おじいさんへのお",{"ruby":["土産","みやげ"]},"に持って帰りましょう。」\n",
"おばあさんは桃を拾い上げて、家に持ち帰りました。\n",
"そして、おじいさんと一緒に食べようと桃を包丁で切ろうとしたところ、桃がパカッとふたつに割れて、中から元気な男の子の赤ちゃんが飛び出しました。"
],
"font":{"size":"12pt"},
"columnwidth":"13cm",
"kinsoku":1,
"position":["8mm","83mm"]}
}
]
}]
}
| 【JSONデータ 各要素説明】 | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| "page" | PDFに関する指定(ページ番号、ページ回転、やページへの上書きまたは新規作成など)をします。複数のページ要素を指定できます。
| ||||||||||||||||||||||||||||
| 出力ファイルは既定の(JSONファイル名と同じ)"data.pdf"が作成されます。 | |||||||||||||||||||||||||||||
RGBおよびCMYKでの色指定
RBG色空間およびCMYK色空間のいずれでも色指定できます
線描(Stroking)と塗りつぶし(filling)のそれぞれを違う色で指定できます。
{
"page":[{
"size":["12cm","8cm"],
"contents":[
{"linejoin":"bevel"},
{"color":[1,0,0,0]},
{"text":{"value":"Cyan(シアン)","position":["10mm","73.1mm"]}},
{"rectangle":[ "10mm","45mm","20mm","25mm","both",2 ]},
{"color":[0,1,0,0]},
{"text":{"value":"Magenta(マゼンタ)","position":["35mm","73.1mm"]}},
{"rectangle":[ "35mm","45mm","20mm","25mm","both",2 ]},
{"color":[0,0,1,0]},
{"text":{"value":"Yellow(イエロー)","position":["60mm","73.1mm"]}},
{"rectangle":[ "60mm","45mm","20mm","25mm","both",2 ]},
{"color":[0,0,0,1]},
{"text":{"value":"Key(キー)","position":["85mm","73.1mm"]}},
{"rectangle":[ "85mm","45mm","20mm","25mm","both",2 ]}
{"color":"Red"},
{"text":{"value":"Red(赤)","position":["10mm","38mm"],
"font":{"name":"MS-Gothic","size":"2mm","embed":false}}},
{"rectangle":[ "10mm","10mm","20mm","25mm","both",2 ]},
{"color":"Green"},
{"text":{"value":"Green(緑)","position":["35mm","38mm"]}},
{"rectangle":[ "35mm","10mm","20mm","25mm","both",2 ]},
{"color":"Blue"},
{"text":{"value":"Blue(青)","position":["60mm","38mm"]}},
{"rectangle":[ "60mm","10mm","20mm","25mm","both",2 ]},
]
}]
}
| 【JSONデータ 各要素説明】 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| "page" | PDFに関する指定(ページ番号、ページ回転、やページへの上書きまたは新規作成など)をします。複数のページ要素を指定できます。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 出力ファイルは既定の(JSONファイル名と同じ)"data.pdf"が作成されます。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||