XMLエディタで始めるリッチなMarkdown入門?

Markdown記法とその派生は様々にあり、使用される場面もブログポストの原稿であったり、
Wiki記法(この記事ではHTMLへ変換される簡易記法、と考えてください)の1つであったりするので、「Markdownドキュメント」といっただけではどんな文書なのかはよくわかりません。「Markdown記法を使用して書かれている箇所があるドキュメント」くらいにはいえるのかもしれませんが。とはいえ、基本的な記法については共通しています。なので一度基本を覚えてしまえばその部分は他の派生へも通じ、その学習コストを下げることができます。

さて本題です。
「Markdownは分からないが手元にリッチなXMLエディタがある」そんなことはないでしょうか。

XML技術を駆使するDITAというドキュメントのアーキテクチャがあります。
いきなり導入するにはなかなか重量級な仕様と哲学があるので、
OASISのDITA CommitteeのSub Committeで、DITAやXMLを未だ使っていない層に向けたLightweight DITA(LwDITA)というものが考案されています[1]。
LwDITAはDITAの複雑な仕様から基本的なものを抽出し、XML、HTML5、Markdown(派生)の3つの形式でほぼ同じ表現力の記述を可能にしたものです。
特にHTML5、Markdownの形式(HDITA、MDITA)は、XML離れが激しい層へのアプローチ手法として考案された側面があり、XMLに触れなくともある程度のDITA体験が可能になっています。MDITAは単体ではGitHub Flavored Markdown(GFM)のサブセットのように扱えるので、GFMに対応したアプリケーションである程度執筆・編集のサポートが受けられます。

一方Oxygen[2]やXMetaL[3]といった、DITAをサポートするXMLエディタも
LwDITAもサポートし始めています。既にDITAのパワーをXMLエディタでフル活用されている方にはLwDITAの表現力は物足りないかもしれません。とはいえ、せっかくサポートされている機能です。もし手元に既にMarkdown対応のXMLエディタがあれば、試しに使ってみてはどうでしょうか。

参考資料

  1. [1] OASIS Lightweight DITA SubCommitteeのページ https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita-lightweight-dita
  2. [2] アンテナハウスの Oxygen情報ページ https://www.antenna.co.jp/oxygen/
  3. [3] アンテナハウスの XMetaL情報ページ https://www.antenna.co.jp/xmetal/

DITA/XML Service Antenna House

関連記事

  1. MDITA(LwDITA uses Markdown)の書き方
  2. DITAとしてのMDITA
  3. Markdown DITAとMDITA
  4. MDITAをDITAに変換する

e-na伊那谷 旅便り 第22回 大芝高原

アンテナハウス伊那支店から車で5分ほどのところに、南箕輪村唯一(多分)の観光名所、大芝高原があります。(最近、道の駅になりました。)

地元民の憩いの場として知られており、筆者も小さいころはここでよく遊んでおりました。
大芝高原内には温泉やキャンプ場、プールやテニスコートにマレットゴルフ場など数々の施設が備わっており、GWに経ヶ岳バーティカルリミット(トレイルラン)、夏には大芝高原祭り、秋にはイルミネーションフェスティバルが開催されます。
(残念ながら今年は新型コロナの影響で全て中止となってしまいました。)
今回は施設など幾つかご紹介させていただきます。

元大芝高原のマスコットのまっくんです。今は南箕輪村のマスコットにまで昇格していたのですね。第一回ゆるキャラグランプリで最下位だったというのも納得のビジュアルです。松かさがモチーフなのですが、「とうもろこしじゃないの!?」と知らない人にはよく言われます。

子供に大人気のアスレチック場です。筆者も小さいころは大好きでした。
今は全部で13のアスレチックが森の中に点在していますが、昔あった大きくて危ないやつはありませんでした。
老朽化か、それとも危険で撤去されたのか分かりませんが、少し残念です。
大人でも難しい「バランスロープ」は健在でした。(クリアできませんでした。)

ストレス解消の森林セラピーなセラピーロードです。ウォーキングやジョギング、バードウォッチングが楽しめます。
今の時期のジョギングはとても気持ちいいです。歩道にはウッドチップが敷き詰められているので脚にも優しいです。
運が良ければリスに、悪ければクマに遭遇できます。おススメです。
いい汗を掻いたら、同高原内の温泉「大芝の湯」でリフレッシュしましよう。

今回紹介できなかったものも沢山あります。

興味を持った方は下記URLより詳しい内容をどうそ。
新型コロナが落ち着きましたら是非遊びにきてください。

道の駅 大芝高原
https://oshiba-michinoeki.net
宿泊施設 大芝荘
http://oshiba.jp

e-na伊那谷 旅便り
前回:第21回 こんな学校給食はいかが?
次回:第23回 萱野高原

PDFの色指定(4) ICCプロファイル

前回、CIE1931、CIELAB、CIELUVについて触れました。
これらを活用し、様々なデバイスで色について統一的にマネジメントするための仕組みがICCプロファイルです。

International Color Consortium(ICC)[1]は、コンピュータやデジタルカメラ、スキャナ、プリンタなどのデバイス上で統一して色の管理を行うための標準化団体です。ベンダー8社を中心に1993年に設立されました。

ICCプロファイルは基準となるカラースペースの定義と、それに基づく設定の記述によって構成されています。基準となるカラースペースはプロファイル接続空間(PCS)と呼ばれます。これは、CIEXYZやCIELABによるカラースペースに制限を加え、プロファイルに使用しやすいようにしたものです。PCSという共通のカラースペースがあることで、あるデバイスでの色の記述を、そのデバイスのプロファイルを使いPCSの色表現に変換し、それを別のデバイスプロファイルを使って別のデバイス上での色の記述に変換できます。またICCプロファイルには、色の記述をPCSでの色表現に変換するための共通のインターフェースという役割があります。
このインターフェースは、先に挙げたPCSとPCSに色の記述を変換する設定の書式を厳密に定めたもので、構造としては、ヘッダ部、タグのテーブル、タグに紐付いたデータで構成されます。変換アルゴリズムなどの実装については定めていません。

PCSからデバイスの色に変換する際に、そのままではデバイスで対応できない色が含まれる場合があります。そのときに対応していない色をどの色にマッピングするかを定める「レンダリングインテント」と呼ばれるものをICCプロファイルに用意できます。

caption: PCS

ICCプロファイルは、デバイスによって幾つかの種類に分けられます。主に次の3つです。

  • スキャナ、デジタルカメラなどのための入力プロファイル
  •  ディスプレイなどでの表示のためのディスプレイプロファイル
  •  プリンタなどのための出力プロファイル

他の種類もあります。

  • 画像形式での流通のためのカラースペースコンバージョンプロファイル
  • 特定の色のための命名色プロファイル
  • 追加の補正情報を埋め込むためのアブストラクトプロファイル

さらに、プロファイルを組み合わせて1つにした、デバイスリンクプロファイルがあります。

相互に色を変換するための共通の書式であるICCプロファイルについて概要を説明しました。
次回はようやく、PDFのCIEベースカラースペースについての回になる予定です。

[1] http://www.color.org/abouticc.xalter

PDFの色指定について
PDFの色指定の概要・デバイスカラースペース
PDFの色指定について(2)
色とは何か
PDFの色指定 (3)CIE1931 CIELuv CIELAB
CIEカラースペース
PDEの色指定(5)CIEベースカラースペース
PDFのCIEベースカラースペース格納形式と使用のされ方の概略

.NET Framework アプリケーションからPDF印刷

以前の記事でご紹介しましたが、「PDF Viewer SDK」を使うとPDFファイルを印刷するプログラムを開発することができます。

PDF Viewer SDKでPDF自動印刷
PDF Viewer SDKでPDF自動印刷(その2)

PDF Viewer SDK」ではC/C++言語APIの動的ライブラリ(DLL)をご用意しております。

しかしながら.NET Frameworkで開発されるお客様も多いようで、.NETからPDFファイルを印刷したい、という声もよく伺います。幸い.NET Framework にはDLLのネイティブコードを呼び出すプラットフォーム呼び出しP/Invoke)の機能があります。P/Invokeを利用すれば.NET Framework からPDFを印刷することができます。「PDF Viewer SDK」には、このようなサンプルコード “ApiPInvokeCSharp” を添付しておりますのでご活用ください。

ここで一点注意があります。このサンプルではWindowsフォームアプリケーションで標準的に利用されるSystem.Drawing.Printing名前空間を使用します。System.Drawing.PrintingWindowsフォームアプリケーション向けの印刷関連のサービスをまとめたもので、印刷ダイアログを表示したり、印刷先のデバイスを取得したりするのに利用します。

通常のデスクトップアプリケーションではこの方法で問題ないのですが、残念ながらSystem.Drawing.Printing 名前空間はサービスやASP.NETでの動作がサポートされていません。

 System.Drawing.Printing 名前空間

リンク先には、サービスやASP.NETから利用した場合動作が不安定になったりパフォーマンスの低下や実行時例外が発生するかもしれない、と書いてあります。これはWPFで利用される System.Printing名前空間も同様です。

サービスからサイレント印刷を行うようなプログラムを開発する場合は、この方法では問題があります。この場合にはちょっとしたコマンドラインをC/C++ APIで開発して.NETから呼び出す、もしくは、COMコンポーネントとして印刷機能を用意して呼び出すなどの工夫が必要になります。「PDF Viewer SDK」にも印刷コマンドラインのサンプルコード“ApiPdfPrint” を添付しています。こちらも併せてご活用ください。

以上、.NET FrameworkからPDF印刷する方法と注意点のご紹介でした。

詳しい機能についてぜひ製品ページをご覧ください。

製品ページ:
https://www.antenna.co.jp/pdfviewersdk/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html

e-na伊那谷 旅便り 第21回 こんな学校給食はいかが?

学校給食って懐かしくないですか?
今回は長野県ならではの学校給食を紹介します。

1.キムタク御飯

テレビ等でも紹介されたことがあるのでご存知の方もいるかと思いますが、キムチとたくあんの混ぜ御飯です。
組み合わせが秀逸で、子供から大人まで多くの年齢層に人気があります。

2.塩丸イカのサラダ

長野県人にはおなじみの「柔らかさの中にある歯ごたえ」と「絶妙な塩気」で人気の塩丸イカを使ったサラダです。
塩丸イカ自体は塩気が強すぎるため、一度塩抜きしてから調理します。

3.ニジマスの円揚げ(つぶらあげ)

冷たい水を好むニジマスは渓流の多い長野県で古くより食されてきた魚です。
油で揚げるとクルっと丸くなるので「円揚げ」。
骨まで丸ごと食べられるので子供にも大人気です。

実際に給食で出される料理の写真は撮れないので家で作ってしまいました。

キャベツの味噌汁も付けて。。。。いただきます!

長野県は「緊急事態宣言」が解除され学校も再開されつつありますが、授業をフルに受けられない短縮授業となっている学校がまだ多くあります。
美味しい給食が食べらる日常へ1日でも早く戻ると良いですね。


e-na伊那谷 旅便り
前回:第20回 古代米「白毛餅」
次回:第22回 大芝高原

暗号化されていてもPDFを開くときはご用心

暗号化されているPDFが送られてきてそのパスワードを知っていたら、作成者を信用して PDFを開いた後についつい不用心にPDFViewerの警告を無視していろいろと危ない操作をしてしまうかもしれません。しかし、2019年に、PDFのパスワードを知らないでもパスワードを変えずにPDFを色々と改変できてしまう脆弱性が発見されました(https://pdf-insecurity.org/index.html)

まだ脆弱性に対応していないPDFViewerもあるかもしれないので、外部からもらったファイルには細心の注意を払いましょう。


Visual Basic で相対パスの設定は、オススメできない

最近の弊社では、Visual Basic を用いた開発を始めました。

Visual Basic は、Microsoftが開発した言語の中で長い歴史持った開発言語で、
プログラマー初心者でも、安定性のあるGUIアプリケーションを早く開発できることで高い評価を受けています。

ですが、そんな Visual Basic にも欠点があり、
いざリポジトリを整理しようとなったとき、C++/C# のように相対パスの設定がVisual Studio上でできないことです。

そこで今回、ご紹介するのは Visual Basic で相対パスを設定する方法になります。

本題に入る前に、先にお伝えしたいことがあります。

Visual Basic で相対パス設定を行うことは、非常に手間がかかる作業となり業務においても支障が出る恐れがありますので、
正直オススメできません。
あくまで、開発言語の知識を深めるために実施してください。

まず、Visual Studio を立ち上げ、新規でVBのプロジェクトを作成してください。(今回は、Windows フォームアプリケーションを選択 を使用します。)

作成したら上書き保存をして一度保存します。

保存が完了したら、プロジェクトを作成したパスに移動し、作成したソースコード「UserControl1」と「My Project」を切り取ります。

次に、ソースコードを配置するフォルダを任意で作成し、貼り付けます。(今回は、「\TestPath\SourceTest」というフォルダに配置します。)

次に先ほど作成したプロジェクトファイル「TestPath.vbproj」をエディタで開き、移動したソースコードの読み込み先を手作業で変更していきます。

<Compile Include="..\SourceTest\UserControl1.vb">
<Compile Include="..\SourceTest\UserControl1.Designer.vb">
<EmbeddedResource Include="..\SourceTest\UserControl1.resx">

そして、読み込み先の変更が完了したら、ソリューションファイルを開きます。

すると、Visual Studio が開きソリューションエクスプローラーの「UserControl1」を確認すると、新規作成時のアイコンから表示が変わっており、相対パスで読み込まれていることが確認できます。

このように Visual Basicで相対パスを設定は、プロジェクトファイル内で設定しているファイルの読み込み先のパスを変更することで相対パスの設定が可能です。

しかし、Visual Studio 上でのパスの編集ができず、ソースコードの直接編集およびプロジェクトファイルの再読み込みも必要となるため、面倒な作業が増えます。

そのため、Visual Basic で開発する際は、プロジェクトファイルを直接編集することが無いよう、プロジェクトファイル直下にソースコードを置くようにし、いつでもソリューションエクスプローラー上でソースコードを整理できる状態にしておくことをオススメします。

最後に余談ですが、Microsoft の開発者ブログより、.NET 5.0 の実装完了後、以降 Visual Basic に新しい機能は追加しないという事が発表されました。
新機能の追加が今後ないとはいえ、サポート自体はしっかり行うとのこともブログで伝えておりますが、
これを機に、 Visual Basic から今後も新機能が開発される C# に切り換えるデベロッパーが徐々に増えていくと思います。

Visual Basic support planned for .NET 5.0 (Microsoft の開発者ブログ)
https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/


『アウトライナー3』コマンドライン(その2)

『アウトライナー3』が、5月15日にリリースされました。最新バージョンは、製品の64bit化、リンク注釈の編集機能追加、などが行われています。旧バージョンからある、しおりの編集機能、しおり外部ファイルの書き出し、読み込み機能と同じように、リンク注釈も、リンク注釈外部ファイルの書き出し、読み込み機能があります。

アウトライナーはコマンドラインからも実行できます。 製品のインストールフォルダに OutlinerCmd.exe が存在します。これがコマンドライン版の実行ファイルになります。前回はコマンドラインでの[リンク注釈外部ファイルの書き出し]について説明しました。今回は[リンク注釈外部ファイルの読み込み]について説明してみたいと思います。

[リンク注釈外部ファイルの読み込み]

この機能は、入力PDFに、リンク注釈外部ファイルのリンク注釈を設定した後、保存PDFとして出力します。リンク注釈外部ファイルの読み込みで使用する引数は次の通りです。

  • /D
    入力PDFファイルのパスを指定します。
  • /K
    入力PDFにパスワードが設定されている場合、この引数で指定します。
  • /N
    読み込む、リンク注釈外部ファイルのパスを指定します。
    形式には XML, CSV, JSON があり、拡張子で判定します。

    • XML形式の拡張子 “.xml”
    • CSV形式の拡張子 “.csv”
    • JSON形式の拡張子 “.json”
  • /O
    保存PDFファイルのパスを指定します。
    入力PDFに、リンク注釈を設定した状態で、別のPDFファイルとして保存します。
    入力PDFに、既存のリンク注釈があれば、削除した後、リンク注釈を設定します。

呼び出し例は次の通りです。

  • OutlinerCmd.exe /D input.pdf /O output.pdf /N input.xml
    • /D input.pdf : input.pdf を読み込みます。
    • /O output.pdf : リンク注釈を設定した output.pdf を書き出します。
    • /N input.xml : リンク注釈外部ファイルのパスはinput.xmlで、形式は XML です。
  • OutlinerCmd.exe /D input.pdf /K password /O output.pdf /N input.xml
    • /D input.pdf : input.pdf を読み込みます。
    • /K password : input.pdf のパスワードを指定します。
    • /O output.pdf : リンク注釈を設定した output.pdf を書き出します。
    • /N input.xml : リンク注釈外部ファイルのパスはinput.xmlで、形式は XML です。

複数のPDFへ同じリンク注釈を設定することが可能です。

製品に関するご質問は
outliner@antenna.co.jp(アウトライナーサポート) まで、お気軽にお問い合わせください。

評価版のお申込 評価版のお申し込み

Webページ http://www.antenna.co.jp/mpd/


『アウトライナー3』コマンドライン(その1)

『アウトライナー3』が、5月15日にリリースされました。最新バージョンは、製品の64bit化、リンク注釈の編集機能追加、などが行われています。旧バージョンからある、しおりの編集機能、しおり外部ファイルの書き出し、読み込み機能と同じように、リンク注釈も、リンク注釈外部ファイルの書き出し、読み込み機能があります。

アウトライナーはコマンドラインからも実行できます。 製品のインストールフォルダに OutlinerCmd.exe が存在します。これがコマンドライン版の実行ファイルになります。今回は[リンク注釈外部ファイルの書き出し]について説明してみたいと思います。

[リンク注釈外部ファイルの書き出し]

リンク注釈外部ファイルの書き出しで使用する引数は次の通りです。

  • /D
    入力PDFファイルのパスを指定します。
  • /K
    入力PDFにパスワードが設定されている場合、この引数で指定します。
  • /L
    保存するリンク注釈外部ファイルの形式を指定します。
    形式には3種類あります。

    • @XML 結果をXML形式で出力します。
    • @CSV 結果をCSV形式で出力します。
    • @JSON 結果をJSON形式で出力します。
  • /O
    保存するリンク注釈外部ファイルのパスを指定します。

呼び出し例は次の通りです。

  • OutlinerCmd.exe /D input.pdf /O output.xml /L @XML
    • /D input.pdf : input.pdf を解析します。
    • /O output.xml : 解析結果を output.xml へ書き出します。
    • /L @XML : 解析結果の保存形式は XML です。
  • OutlinerCmd.exe /D input.pdf /K password /O output.csv /L @CSV
    • /D input.pdf : input.pdf を解析します。
    • /K password : input.pdf のパスワードを指定します。
    • /O output.csv : 解析結果を output.csv へ書き出します。
    • /A @CSV : 解析結果の保存形式は CSV です。

次回は書き出した、リンク注釈外部ファイルを使って、PDFにリンク注釈を設定する方法について説明してみたいと思います。

製品に関するご質問は
outliner@antenna.co.jp(アウトライナーサポート) まで、お気軽にお問い合わせください。

評価版のお申込 評価版のお申し込み

Webページ http://www.antenna.co.jp/mpd/


e-na伊那谷 旅便り 第20回 古代米「白毛餅」

「しらけもち」と読みます。
長野県上伊那に伝わる古代米です。
甘味、粘り、香りがよくたいへんおいしい餅です。
でも、稲の丈が高く風に弱いので栽培が難しく、収穫量が少ない貴重な餅です。
白毛餅の田んぼの写真を載せます。
穂先が白く穂丈が高くとても美しい!!
特に7月初旬の朝露に濡れた様子は何とも言えないぐらい綺麗です。

田んぼの写真

会社の近くの農産物直売所で「白毛餅」を買ってきました。

直売所の写真

白毛餅の写真

「白いいちご(淡雪)」を紹介したかったのですが、今日は売っていなかったので写真を載せられません。
「白いいちご」は結構甘味があり、おすすめです。
代わりに、高遠の桜が有名ですので、「桜の花の塩漬け」を紹介します。
桜の塩漬けで桜ご飯を作ってみました。
なんか桜餅と同じようなにおいがします。

桜の塩漬けの写真

桜ご飯の写真
桜ご飯の作り方:
塩抜きした桜漬けと梅干をみじん切りにしてお米と混ぜ、普通に炊飯器で炊きます。

e-na伊那谷 旅便り
前回:第19回 光前寺
次回:第21回 こんな学校給食はいかが?

Pages: Prev 1 2 3 4 5 6 7 8 9 10 ... 197 198 199 Next