喫茶XRAYトップページ

[スレッド全体
]

[12675] HLPヘルプからCHMヘルプへ変換返信 削除
2019/4/1 (月) 16:03:32 Mr.XRAY
HTML Help Workshop なんですが,[印刷] や [オプション] 等のボタン類の設定が
できませんでした.
HHP ファイルに [WINDOWS] セッションを追加すれば可能であることが分かりました.
で,追加しました.

http://mrxray.on.coocan.jp/Delphi/Others/Win32HLP2ChmHLP.htm#fig37

この [WINDOWS] セッション は

  Wnd1=値1, 値2, 値3, 値4, 値5,,,,

という構造になっています (文字列のパラメータは " で括る).
たまに見かける設定の記述です.
以下のように,ちょっとしたノウハウがあります.参考までに.
CSV 関係の質問,検索ヒットは結構あるので.

    LTextList := TStringList.Create;
    try
      // カンマ区切の文字列を必要な分だけ作成してしまう
      LItemCnt := 20;
      LTextList.CommaText := DupeString(',', LItemCnt - 1);

      // 必要なパラメータだけ設定していく
      LTextList[0]  := AnsiQuotedStr(LHelpTitle, '"');
      LTextList[1]  := AnsiQuotedStr(LFileName + '.hhc', '"');
      LTextList[2]  := AnsiQuotedStr(LFileName + '.hhk', '"');
      LTextList[3]  := AnsiQuotedStr('', '"');
      LTextList[9]  := '0x60720';
      LTextList[10] := '200';
      LTextList[11] := '0xE';
      LTextList[12] := '[200,200,800,600]';
      LTextList[13] := '0x0';
      LTextList[14] := '0x0';
      LTextList[LTextList.Count - 1] := '0';

      // 最初のパラメータの値を代入してからループするのがミソ
      LWinText := LTextList[0];
      for LIndex := 1 to LTextList.Count - 1 do begin
        LWinText := LWinText  + ',' + LTextList[LIndex];
      end;
 
      // LWinText ではなく LTextList.CommaText を書き込むと
      // 余分な " (ダブルクォーテーション) が付加されてしまう
      // もしかしたら方法があるかも知れないけど・・・
      LIniFile.WriteString('WINDOWS', 'WND1', LWinText);
    finally
      FreeAndNil(LTextList);
    end;
 
何だか知らないけれど,
面白いように CHM ヘルプに変換できます.ハマりました (笑)


[12676] Re:HLPヘルプからCHMヘルプへ変換返信 削除
2019/4/1 (月) 16:35:51 Mr.XRAY
 面白いように CHM ヘルプに変換できます.ハマりました (笑)

Google で [HLP CHM 変換] のキーワードでこの記事のページをクリックしたのは
1 件しかありませんでした.
あまり需要はないのかも知れません.
記事を書いた本人 (私です) が楽しんでいるだけかも知れません.ハイ.


[12709] Re2:HLPヘルプからCHMヘルプへ変換返信 削除
2019/4/13 (土) 22:45:27 taka
▼ Mr.XRAYさん
>  面白いように CHM ヘルプに変換できます.ハマりました (笑)
>
> Google で [HLP CHM 変換] のキーワードでこの記事のページをクリックしたのは
> 1 件しかありませんでした.
> あまり需要はないのかも知れません.
> 記事を書いた本人 (私です) が楽しんでいるだけかも知れません.ハイ.


さっき気が付いたのですが
hlpプロジェクトからchmプロジェクトへの変換サポートされていたのですね。

HTML Help Workshop

Help
 Introducing HTML Help
   Converting existing help projects

File : New : Project
Convert WinHelp project にチェック

次へ

hlpプロジェクトと
新しい保存先(chmプロジェクト)を指定して
変換


変換後
(1) Windows-1252の影響だと思いますが
.hhkファイルも文字化けしてインデックスキーワードが完全に壊れます

(2) .htm
charset=Windows-1252
になっていて文字化するので

cygwin(もしくは git bash)が入っていれば一括置換
find ./ -type f -name "*.htm" -exec sed -i -e "s/charset=Windows-1252/charset=Shift_JIS/g" {} \;


英数字の単純なファイルだけのものはプロジェクト変換に成功したのですが
日本語のファイル名をたくさんつかっているプロジェクトは変換に失敗しました。


プロジェクト変換の失敗理由が表示されないので、原因はわかりません。


[12714] Re3:HLPヘルプからCHMヘルプへ変換返信 削除
2019/4/14 (日) 23:40:27 Mr.XRAY
▼ takaさん

> 変換後
> (1) Windows-1252の影響だと思いますが
> .hhkファイルも文字化けしてインデックスキーワードが完全に壊れます


なんですよね.

> 英数字の単純なファイルだけのものはプロジェクト変換に成功したのですが
> 日本語のファイル名をたくさんつかっているプロジェクトは変換に失敗しました。


HTML Help Workshop の変換というかアルゴリズムが不明ですからね.
でも自分でやるとなるとえらいことです.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82