;============================================================ ; sample_webpdf.hsp ; ; iron_webpdf デモ: 動的生成した HTML を Edge headless 経由で ; PDF に書き出す。 ; ; 事前準備: ; Windows 10/11 標準の Microsoft Edge が入っていれば OK。 ;============================================================ #include "hsp3_net_64.as" #include "iron_webpdf.hsp" title "iron_webpdf demo" screen 0, 720, 520 cls 4 font "MS Gothic", 14 sdim s_html, 8192 sdim s_log, 4096 ;----- サンプル HTML を組み立て ----- s_html = {"
発行日: 2026-04-15
お客様: 株式会社サンプル御中
| 品目 | 数量 | 単価 | 金額 |
|---|---|---|---|
| IronHSP ライセンス | 1 | 0 | 0 |
| サポート (年間) | 1 | 0 | 0 |
合計: \u00a50
"} objsize 180, 32 pos 16, 16 button gosub "HTML を保存", *on_save_html pos 204, 16 button gosub "PDF 書き出し", *on_to_pdf pos 392, 16 button gosub "Edge パス確認", *on_find pos 16, 64 mesbox s_log, 688, 432 goto *main_loop *on_save_html notesel s_html notesave "webpdf_in.html" noteunsel s_log = "入力 HTML を保存: webpdf_in.html\n" + s_log objprm 3, s_log return *on_find webpdf_find_edge edge_path if edge_path = "" { s_log = "msedge.exe が見つかりません\n" + s_log } else { s_log = "Edge: " + edge_path + "\n" + s_log } objprm 3, s_log return *on_to_pdf ; 入力が無ければ先に書き出す exist "webpdf_in.html" if strsize < 0 : gosub *on_save_html webpdf_render "webpdf_in.html", "webpdf_out.pdf", "" r = stat if r = 0 { s_log = "PDF 書き出し成功 -> webpdf_out.pdf\n" + s_log } else : if r = -1 { s_log = "Edge 未検出 (webpdf_find_edge 失敗)\n" + s_log } else : if r = -2 { s_log = "CreateProcess 失敗\n" + s_log } else { s_log = "Edge 終了コード: " + r + "\n" + s_log } objprm 3, s_log return *main_loop wait 10 goto *main_loop