PhpWordでcloneBlockが効かない

PhpWordのTemplate機能でcloneBlock()という、便利なメソッドが追加されていますが、イマイチ動かない。。。
xmlから{$CLONEME} ・・・・・ {$/CLONEME} のような指定ブロック部分を正規表現で抜き出して、繰り返させて再構成しているんですが、{$/CLONEME} の部分が複数タグに分割されてうまくヒットしないようです。実験的に無理やりヒットするように正規表現を曖昧にして動かしてみましたが、ワードファイルが壊れています、、、というようなメッセージが表示されてうまくいきません。テンプレートとするワードファイルの作り方で解決できるのかもしれませんが。。。
OfficeOpenXMLの仕様をきちんと把握して修正したり、対応要素を確認したりしないと危険で使えないですね。

cloneBlockが動けばsetValueのlimit=1でテンプレート変数にセットしていき、複数ページの単票形式の帳票に対応できると思ったんですが、、、今回は断念です。

慣れもあるかもしれませんが、PhpWordでの見た目調整はHTMLより 面倒なんでTemplate機能ががっつり使えるようになってほしいところです。

 

カテゴリー: php

PhpWordでborderInsideVSizeが効かない不具合の修正

phpでワードファイルを出力する「PhpWord」ですが、開発が止まっていると思っていたらGitHubのほうで開発が進んでいるようです。

セクション要素を追加しても改ページしないでテーブルの外枠余白を設定できたり、テーブルの縦横結合に対応していたりと便利になっていますが、TableStyleに設定したborderInsideVSizeが効かないというバグがありました。
下記で修正されます。
(こんな普通のバグがあるんですね。。。 )MarginBorder.php

(参考)https://github.com/PHPOffice/PHPWord/commit/5c8e100d4113641e93e1f150c0c84c2e15aeb3c6

日本語の情報が少ないので英語サイトメインで見ないといけません。。。

 

カテゴリー: php

ChromeのキャプチャプラグインAwesome Screenshotでクリップボードにコピーできない

ChromeのWEBページキャプチャ拡張機能「Awesome Screenshot」で画像をクリップボードにコピーできなくなりました。

NPAPIというプラグインをChromeから利用できなくなったからだそうです。。。
使いやすい拡張機能でしたが残念です。

対応方法として、右サイドにキャプチャ画像、左サイドに保存方法が表示される画面で、右サイドの画像を右クリックして「画像をコピー」でクリップボードにコピーする方法があります。

でも、この方法だとエクセル/ワードに貼り付ける時に、Ctrl+Vでは貼りつかず、貼り付けのサブメニュー内の「形式を選択して貼り付け」で「ビットマップ」を選択する必要があります。
(または一旦、ペイントに貼り付けて再度コピペするかですね。)

やはり、若干面倒ですね。
他の拡張機能を使うようにしようかな。。。

 

 

 

WEBページからPDFにページ指定でリンクを張る

<a href=”xxxxx.pdf#page=1″ >○○勉強会-開催内容</a>
<a href=”xxxxx.pdf#page=4″ >○○勉強会-料金表</a>
<a href=”xxxxx.pdf#page=5″ >○○勉強会-会場図</a>

のように、PDFファイルの後ろに#page=ページ番号 を指定するだけです。
PDF側を修正する必要がなく手軽な反面、PDFのページ位置が変わったらWEBページ側の修正が必要となるのは要注意ですね。
その他パラメータで、ズーム・縦方向フィット・スクロール有無・ツールバー有無等、色々と指定できるようです。
(詳細)
ホームページでPDFに直リンクする際に、意図した方法で見せたい場合に便利かもしれません。個人的にはダウンロードしてAdebe Readerで自分の好きなように見たい派ですが。

GMailで迷惑メールに振り分けられないようにする方法

GMailの迷惑メールフィルタが強力すぎて、[×迷惑メール]にしてもダメ、連絡先として登録してもだめ、っていう状態になったります。

そんな時はフィルタを利用しましょう。

GMail画面の右上のギアアイコンから、設定画面を開き、フィルタタブで下記操作となります。

  1. 「新しいフィルタを作成」リンクをクリック
  2. From欄に、迷惑メールとして振り分けられたくないアドレスを入力
  3. 「今検索条件でフィルタを作成」をクリック
  4. [迷惑メールにしない」にチェックON
  5. [フィルタを作成]ボタンをクリック

迷惑メールを×にしたり、連絡先として登録しているんだから、迷惑メールとして振り分けないようにGoogle学べよっ!って感じもしますが深い理由があるんでしょう。

以上です。