Drawで文字化けしないPDFフォーム
LibreOffice AdventCalendar 2020 12月5日の記事です。
今日は文字化けしないPDFフォームをDrawで作るコツを教えます。
アジア諸言語を指定しない
Drawで文字化けしないPDFを作るためにはフォーム内のフォント指定を下記のようにします。
- 西洋諸言語フォント:標準 Noto Sans 11pt
- アジア諸言語用フォント:指定しない
又は
- 西洋諸言語フォント:標準 Noto Sans 11pt
- アジア諸言語用フォント:標準 Noto Sans CJK JP Thin
上記のフォント設定にしないとWindowsのAdobeReaderで文字化けを起こします。
後以下の理由からEdgeでは開かないようにして下さい。
Edgeでは漢字がまともに表示されない
Windows10の標準PDFビューワーはEdgeになっています。
Edgeの場合、フォーム内の文字はひらがなとアルファベット以外は表示されません。
これはMicrosoftフォーラムで僕が報告しておきました。
Chromeも全く同じ動きをします。
Chromeのフォーラムでは、 「AdobeReader使えよ。Chrome使うなと冷たくあしらわれていました。」
まとめ
Windowsユーザーのために以下の設定でPDFフォームを作成してください。
PDFフォームのテキストボックス内のフォント
- 西洋諸言語フォント:Noto Sans 等の1byteフォント
- アジア諸言語 :指定しない
- 又はアジア諸言語 : Noto Sans CJK JP Thin
Windowsユーザーの皆様は以下のことを守って下さい
結論
フリーソフトもまともにダウンロードできない世の中
さて、どれが本当のダウンロードリンクだと思いますか?
- 赤い[ DOWNLOAD ] は全て違います。
- 青い[ 開始する ] も違います。
正解は下記のリンクです。
- Download AI Viewer Setup - 8.48MB
スパイウェアや偽セキュリティソフトが仕掛けられている可能性の高いバナー広告
この赤い[ Download ] ボタンや青い[ 開始する ] ボタンはWeb広告なんです。
このWeb広告の多くに変なスパイウェアや偽セキュリティソフト等が一緒に入ってくることがあります。
見破る方法
多くの場合はGoogleのバナー広告です。
下記を見てください。
右上に [ i ]と [ ×] があります。
拡大すると下記の通り。
×を押すと広告を消すことができます。
広告を消すときに色々選ぶことができます。
STOP Seeing This Ad. (この広告を止めたい。)
- Seen this ad multiple times. 何回も同じ広告を見た。
- Ad was inappropriate. 広告が不快。
- Ad covered content. コンテンツに被ってる。
- Not interested in this ad. この広告に興味がない。
まあ、「広告が愉快じゃない。」か「この広告に興味がない。」あたりを選んで消してしまいましょう。
本当に紛らわしい。
ググってフリーソフトを落としてきてって言える?
ai viewerというソフトのサイトに普通にバナー広告として貼ってあります。
本家サイトでも場合によってはあんなバナー広告の「Download」ボタンを押してしまう可能性があります。
素人に「適当に検索してフリーソフトを落としてきてみてごらん」なんて言えなくなってしまいました。
もしやるとすれば、ブラウザにAd Block等の広告ブロックプラグインを入れたうえでやった方がいいかもしれません。
Google Adsenseさえもevil (邪悪) です。
あんな「だまし広告」を出すのであれば広告は全てブロックせざる得ません。
リチウムイオン単3充電池 BMB-MR3
今回はリチウムイオン単3充電池を買いました。
エネループでもパワーが弱い。
特に鉛筆削りはパワーが必要です。
通常の乾電池だとすぐにパワーが弱くなる。
リチウムイオン電池なら切れるまで電圧が一定。
僕の不満が解消されるのでは?
正解でした!
全く弱くなりません。
単1電池もリチウムイオン充電池があると最高です。
我が家のガスコンロで使っています。
そこも充電池にしてしまいたい。
その昔、サンコーが売っていたようですが。
Bluedotさん、単1リチウムイオン充電池お願いします。
ワイアレス充電器 BAW-Qi10
4年使い続けたiPhoneSEを卒業してiPhone11にしました。
iPhone11はQiワイアレス充電に対応しています BluedotのBAW-Qi10 を購入しました。
縦置き横置きに両方対応しています。
縦置きにする場合のつい立は充電器の後ろ側にマグネットで装着されるようになっています。
非常にコンパクトです。
ケーブル代わりに持っていく用途にも使えるかもしれません。
実際に使ってみると縦置きで使うことが圧倒的に多いです。
下記の場所でよく使っています。
- 会社のデスク
- テーブルの上
- 枕もとの近くの台
特にテーブルに置いてYouTube等を鑑賞するといったことが多いです。
一度使うと、充電ケーブルを指すのが面倒になるくらい便利です。
縦置き横置き両方使えるQiワイアレス充電器としてはかなりお得な価格です。
お勧めです。
RESTサーバー建立計画
社内にDBを見に行けるRESTサーバーを建立したい。
それをExcelやLibreOffice Calcでデータを取得できるようにしたい。
RESTサーバーを建立したいくらい辛いことがありました。
クライアントにDBドライバーだらけ
弊社、Databaseサーバーがあります。
得意先、仕入先、商品、売上などのデータが入っています。
営業や事務の方がこういうんです。
- 「得意先マスターから俺の担当の得意先の住所一覧取ってこれる?」
- 「この仕入先の商品cd一覧が欲しいな。」
Excelで。
Excelでやるとなるとこうなります。
図説するとこうなります。
DB DriverとDB接続設定を多くのPCに入れてしまった。
何か悪いことが起こらなければいいが…。
ドキッ、PCだらけの再設定大会
基幹システム式年遷宮の時がやってまいりました。
データベースも新しいバージョンにします。
サーバーも新しくします。
IPアドレスも変わります。
!?
ドライバーを入れ替えて接続設定も書き換えないといけない。
実際、30台ぐらい接続設定を書き換えました。
辛(つら)い。
何とかならないだろうか?
RESTサーバー
下記のような夢のような仕組みはないだろうか?
- ドライバー無し
- 接続設定無し
- データを取得
あるんですよ。
奥さん。
Webでデータをやり取りしているものがあります。
RESTサーバーです。
RESTサーバー
- WebのGetメソッドで取得
- JSONでデータ取得
gRCPは?
アー、聞こえない。
どんな言語で扱える
RESTはWebの世界ではメジャーです。
様々な言語で処理できます。
ライブラリーもインストールせずに処理できる言語となると下記の3つじゃないでしょうか。
RESTでデータ取得をPythonで書くとこんな感じになります。
import urllib.request import json def GetRest(url:str) -> str: """ Get JSON Data from REST API :param:url REST API url :return:json_file """ data = urllib.request.urlopen(url) json_file = json.loads(data.read().decode('utf-8')) return str(json_file) if __name__=='__main__': print(GetRest("http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060"))
{ "message": null, "results": [ { "address1": "高知県", "address2": "南国市", "address3": "蛍が丘", "kana1": "コウチケン", "kana2": "ナンコクシ", "kana3": "ホタルガオカ", "prefcode": "39", "zipcode": "7830060" } ], "status": 200 }
たった3行。
主要な処理はdateからreturnまでだけ。
これがExcelやCalcで使えるのであれば、
- GetRest関数にRESTサーバーのurlを書く
だけで済みます。
REST サーバーの接続設定を変更するだけ
Databaseの接続先が変わったとしても、 下記の図のように RESTサーバーの接続設定を書き換えるだけ。
1つ変えれば全て変更済みになる。
めちゃめちゃ便利。
実際に使えるのか
実際に使えるのか考えてみた。
社内で活用するためには4つのことを考える必要がある。
一つずつ考えていきましょう。
REST API扱える関数
LibreOffice Calc
- 俺が作る!
- getrest
Excel
- Excel 2013以降で使用可能
- Parse(分解)はできない。
取得したJSONをParseする関数
Excel
- 無い
- VBAを駆使して作っている人がいる
LibreOffice Calc
- 俺が作る!
- jsonparse (未完成)
RESTをデータソースとして扱う
Excel
- PowerBI で可能
- [JSON ファイルに接続する ]
LibreOffice Calc
無いから誰か作って!
REST APIサーバー
僕が建立予定。
DBへの接続テストは成功。
柔軟性と構築速度を優先して下記の技術で作る予定。
- Debian10
- Informix Client CDK 4.50
- Python3.7
- ifxPy
- Flask
- Pandas
TableやColumn名が日本語で作られているためDjangoやSQLAlchemyには載らない。
ORM無しでどうやって作ったらいいかな…。
他社ともインターネットファックス機能でやり取りしたい
違う、FAXじゃない!
Canon MF417dw というSOHO向けの複合機を使ってインターネットFAXを設定しました。
社内のある部署と他支店とのやり取りはインターネットFAXでうまくやっています。
ある日、部署の社員から。
社員:「仕入先さんにFAXが送れないんだけど…。」
私:「違う、FAXじゃない。」
「FAXなんて送れませんよ。」
「あの複合機はメールしか送受信できない メール送信機 なの。」
仕入先とインターネットFAXしたい
もう一つの問題が出てきました。
ある仕入先1社ともインターネットFAXでやり取りしたい。
PCでスキャンして本文を書いて仕入先にメールをすることはしたくない。
つまりFAXしたい。
FAXを導入しないのは私と総務とのお約束です。
これもインターネットFAX機能を使って解決します。
仕入先に複合機でメール送信
仕入先さんはメールもパソコンも使える方です。
というようにしました。
これならPC使えない人でも仕入先さんにメールを送信できます。
本当はスキャンしてスキャンした画像を添付してメール送信ぐらいはやってほしいのですが…。
InternetFAXを導入してみた。
FAXなんて使わせたくない
- B5 - A4サイズぐらいの図面を支店間でFAX
- FAXから遠い
- 注文は手書きした図面に直接FAX受信
FAXを導入するしかなさそうです。
FAXには以下のものが必要で正直やりたくありません。
- 電話回線工事
- 電話の月額使用料
スキャナとメールかファイル共有サービス使ってほしい。
何ならLINEでやり取りしてほしい。
残念ながらメールでさえできないでしょう。
図面を受け取る部署
- 図面をまず印刷する。
- チェックするために印刷する
- 図面を直接メール送信はしない
注文する側
- 客から聞いたことをそのまま手書き
- それをFAXする
メールにするためには両方をメールに誘導する必要があります。
図面を受け取る部署から図面をそのままメール送信することを断られました。
スキャンしてメール送信は二度手間になります。
注文する側の手書きをやめさせるのも難しそうです。
インターネットFAX
そこでインターネットFAXを導入することを思いついた。
BrotherさんあたりがインターネットFAXについて分かりやすく説明しています。
非常に簡単に説明すると下記の図のようになります。
インターネットFAXって何?
複合機にメールアドレスを設定する必要があります。
何がいいの?
操作がカンタン
送信側の操作が簡単
- 送信する紙をセット
- 相手先を選ぶ
- 送信ボタンを押す
これだけの操作で送信できます。
FAXの使い方と全く一緒です。
パソコンができなくてもできる。
受信側も簡単
送信された紙は印刷されてでてきます。
その髪をチェックするだけでいい。
FAXの使い方と一緒です。
電話回線が要らない
インターネットとメールを使っているだけ。
電話回線不要。
総務もニッコリです。
さらに、
各支店の複合機には既にメールアドレスが設定済み。
いつでもインターネットFAXを送信する準備はできています。
後はこの部屋にインターネットFAXができる複合機を導入すればいい。
購入する複合機は?
3-4人しかいない部署です。
100万オーバーするような本格的な複合機は導入できません。
条件はこうなります。
- 5万円以下
- インターネットFAXができる
以下の4つが見つかった。
- Canon MF417dw モノクロレーザー複合機:¥54,799~¥76,244 (実売 価格.com調べ)
- Canon MF644Cdw カラーレーザー複合機 :¥52,419~¥65,592 (実売 価格.com調べ)
Brother
結局、Canon MF417dwを購入し設定しました。
今はCanon MF447dw が発売されているのでそれを買うといいでしょう。
現状は?
PCが苦手な方もインターネットFAXの使い方をすぐに覚えてくれました。
発注する側の社員も各支店の複合機を使って送信してくれています。
唯一、困ることは見た目がFAXも送れる複合機なので、FAXしようとしてしまうことでしょうか。