arachansan's diary

誰にも左右されず、硬派なBlogを書きます。

Drawで文字化けしないPDFフォーム

LibreOffice AdventCalendar 2020 12月5日の記事です。

今日は文字化けしないPDFフォームをDrawで作るコツを教えます。

アジア諸言語を指定しない

Drawで文字化けしないPDFを作るためにはフォーム内のフォント指定を下記のようにします。

  • 西洋諸言語フォント:標準 Noto Sans 11pt
  • アジア諸言語用フォント:指定しない

f:id:arachansan:20201208125716p:plain

又は

  • 西洋諸言語フォント:標準 Noto Sans 11pt
  • アジア諸言語用フォント:標準 Noto Sans CJK JP Thin

f:id:arachansan:20201208125538p:plain

上記のフォント設定にしないとWindowsのAdobeReaderで文字化けを起こします。

困ったことにMac / Linuxでは文字化けしません。

後以下の理由からEdgeでは開かないようにして下さい。

Edgeでは漢字がまともに表示されない

Windows10の標準PDFビューワーはEdgeになっています。

Edgeの場合、フォーム内の文字はひらがなとアルファベット以外は表示されません。

これはMicrosoftフォーラムで僕が報告しておきました。

answers.microsoft.com

Chromeも全く同じ動きをします。

Chromeのフォーラムでは、 「AdobeReader使えよ。Chrome使うなと冷たくあしらわれていました。」

まとめ

Windowsユーザーのために以下の設定でPDFフォームを作成してください。

PDFフォームのテキストボックス内のフォント

  • 西洋諸言語フォント:Noto Sans 等の1byteフォント
  • アジア諸言語 :指定しない
  • 又はアジア諸言語 : Noto Sans CJK JP Thin

Windowsユーザーの皆様は以下のことを守って下さい

  • WindowsユーザーはAdobeReader DCを使え
  • EdgeやChromeでPDFフォーム入力は期待できない
  • PDF-XChange Editerで読めばPDFフォームの文字化けは起きない

結論

うーん、 これ、AdobeMicrosoftが悪いんじゃないかな。

AdobeMicrosoftバグ直してよ~。

フリーソフトもまともにダウンロードできない世の中

さて、どれが本当のダウンロードリンクだと思いますか?

f:id:arachansan:20201124152038p:plain
which is donwlods?

  • 赤い[ DOWNLOAD ] は全て違います。
  • 青い[ 開始する ] も違います。

正解は下記のリンクです。

  • Download AI Viewer Setup - 8.48MB

スパイウェアや偽セキュリティソフトが仕掛けられている可能性の高いバナー広告

この赤い[ Download ] ボタンや青い[ 開始する ] ボタンはWeb広告なんです。

このWeb広告の多くに変なスパイウェアや偽セキュリティソフト等が一緒に入ってくることがあります。

見破る方法

多くの場合はGoogleのバナー広告です。

下記を見てください。

右上に [ i ]と [ ×] があります。 

f:id:arachansan:20201124153345p:plain
Banner0

拡大すると下記の通り。

f:id:arachansan:20201124153407p:plain
banner1

×を押すと広告を消すことができます。

広告を消すときに色々選ぶことができます。

STOP Seeing This Ad. (この広告を止めたい。)

f:id:arachansan:20201124154447p:plain
del banner00

  • Seen this ad multiple times. 何回も同じ広告を見た。
  • Ad was inappropriate. 広告が不快。
  • Ad covered content. コンテンツに被ってる。
  • Not interested in this ad. この広告に興味がない。

f:id:arachansan:20201124154627p:plain
del banner01

まあ、「広告が愉快じゃない。」か「この広告に興味がない。」あたりを選んで消してしまいましょう。

本当に紛らわしい。

ググってフリーソフトを落としてきてって言える?

ai viewerというソフトのサイトに普通にバナー広告として貼ってあります。

本家サイトでも場合によってはあんなバナー広告の「Download」ボタンを押してしまう可能性があります。

素人に「適当に検索してフリーソフトを落としてきてみてごらん」なんて言えなくなってしまいました。

もしやるとすれば、ブラウザにAd Block等の広告ブロックプラグインを入れたうえでやった方がいいかもしれません。

Google Adsenseさえもevil (邪悪) です。

あんな「だまし広告」を出すのであれば広告は全てブロックせざる得ません。

リチウムイオン単3充電池 BMB-MR3

今回はリチウムイオン単3充電池を買いました。

エネループでもパワーが弱い。

特に鉛筆削りはパワーが必要です。

通常の乾電池だとすぐにパワーが弱くなる。

リチウムイオン電池なら切れるまで電圧が一定。

僕の不満が解消されるのでは?

BMB-MR3 | BLUEDOT株式会社

f:id:arachansan:20200503172405j:plain
鉛筆削り

正解でした!

全く弱くなりません。

単1電池もリチウムイオン充電池があると最高です。

我が家のガスコンロで使っています。

そこも充電池にしてしまいたい。

その昔、サンコーが売っていたようですが。

Bluedotさん、単1リチウムイオン充電池お願いします。

ワイアレス充電器 BAW-Qi10

4年使い続けたiPhoneSEを卒業してiPhone11にしました。

iPhone11はQiワイアレス充電に対応しています BluedotのBAW-Qi10 を購入しました。

f:id:arachansan:20200306190020j:plain:w350
package

f:id:arachansan:20200306190523j:plain:w350
package1

www.bluedot.co.jp

縦置き横置きに両方対応しています。

縦置きにする場合のつい立は充電器の後ろ側にマグネットで装着されるようになっています。

非常にコンパクトです。

ケーブル代わりに持っていく用途にも使えるかもしれません。

実際に使ってみると縦置きで使うことが圧倒的に多いです。

下記の場所でよく使っています。

  • 会社のデスク
  • テーブルの上
  • 枕もとの近くの台

f:id:arachansan:20200306190013j:plain:w350
home

f:id:arachansan:20200306190006j:plain:w350
work

特にテーブルに置いてYouTube等を鑑賞するといったことが多いです。

一度使うと、充電ケーブルを指すのが面倒になるくらい便利です。

縦置き横置き両方使えるQiワイアレス充電器としてはかなりお得な価格です。

お勧めです。

RESTサーバー建立計画

社内にDBを見に行けるRESTサーバーを建立したい。

それをExcelLibreOffice Calcでデータを取得できるようにしたい。

RESTサーバーを建立したいくらい辛いことがありました。

クライアントにDBドライバーだらけ

弊社、Databaseサーバーがあります。

得意先、仕入先、商品、売上などのデータが入っています。

営業や事務の方がこういうんです。

  • 「得意先マスターから俺の担当の得意先の住所一覧取ってこれる?」
  • 「この仕入先の商品cd一覧が欲しいな。」

Excelで。

Excelでやるとなるとこうなります。

  1. クライアントPCにDB Driverをインストール
  2. Database 接続設定
  3. ExcelMicrosoft Queryで取得

図説するとこうなります。

f:id:arachansan:20191202061830p:plain
Get Data from Database

DB DriverとDB接続設定を多くのPCに入れてしまった。

何か悪いことが起こらなければいいが…。

ドキッ、PCだらけの再設定大会

基幹システム式年遷宮の時がやってまいりました。

データベースも新しいバージョンにします。

サーバーも新しくします。

IPアドレスも変わります。

!?

ドライバーを入れ替えて接続設定も書き換えないといけない。

f:id:arachansan:20191202061957p:plain
must_change_connectionSettings

実際、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で使えるのであれば、

Excel/LibreOffice

  • GetRest関数にRESTサーバーのurlを書く

だけで済みます。

REST サーバーの接続設定を変更するだけ

Databaseの接続先が変わったとしても、 下記の図のように RESTサーバーの接続設定を書き換えるだけ。

1つ変えれば全て変更済みになる。

f:id:arachansan:20191202064859p:plain
restserver

めちゃめちゃ便利。

実際に使えるのか

実際に使えるのか考えてみた。

社内で活用するためには4つのことを考える必要がある。

  • REST APIの扱える関数
  • 取得したJSONをParseする関数
  • RESTをデータソースとして扱う
  • RESTサーバー構築

一つずつ考えていきましょう。

REST API扱える関数

LibreOffice Calc

  • 俺が作る!
  • getrest

github.com

Excel

support.office.com

  • Excel 2013以降で使用可能
  • Parse(分解)はできない。

取得したJSONをParseする関数

Excel

  • 無い
  • VBAを駆使して作っている人がいる

qiita.com

LibreOffice Calc

  • 俺が作る!
  • jsonparse (未完成)

github.com

RESTをデータソースとして扱う

Excel

support.office.com

  • 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機能を使って解決します。

仕入先に複合機でメール送信

仕入先さんはメールもパソコンも使える方です。

  1. Canon MF417dwに仕入先のメールアドレスを登録
  2. 要望を紙に書いて複合機で送信
  3. 仕入先さんはPCでメール受信
  4. 返信先がメールが使える社員に自動設定
  5. 仕入先さんはメール使える社員に返信

というようにしました。

これならPC使えない人でも仕入先さんにメールを送信できます。

本当はスキャンしてスキャンした画像を添付してメール送信ぐらいはやってほしいのですが…。

InternetFAXを導入してみた。

FAXなんて使わせたくない

  • B5 - A4サイズぐらいの図面を支店間でFAX
  • FAXから遠い
  • 注文は手書きした図面に直接FAX受信

FAXを導入するしかなさそうです。

FAXには以下のものが必要で正直やりたくありません。

  • 電話回線工事
  • 電話の月額使用料

スキャナとメールかファイル共有サービス使ってほしい。

何ならLINEでやり取りしてほしい。

残念ながらメールでさえできないでしょう。

図面を受け取る部署

  1. 図面をまず印刷する。
  2. チェックするために印刷する
  3. 図面を直接メール送信はしない

注文する側

  1. 客から聞いたことをそのまま手書き
  2. それをFAXする

メールにするためには両方をメールに誘導する必要があります。

図面を受け取る部署から図面をそのままメール送信することを断られました。

スキャンしてメール送信は二度手間になります。

注文する側の手書きをやめさせるのも難しそうです。

インターネットFAX

そこでインターネットFAXを導入することを思いついた。

BrotherさんあたりがインターネットFAXについて分かりやすく説明しています。

www.brother.co.jp

非常に簡単に説明すると下記の図のようになります。

インターネットFAXって何?

複合機 -> メールサーバー -> 相手の複合機

  1. 送り側の複合機をメール送信機として使う。
  2. 受信する側の複合機をメール受信印刷機にする。

複合機にメールアドレスを設定する必要があります。

何がいいの?

操作がカンタン

送信側の操作が簡単

  1. 送信する紙をセット
  2. 相手先を選ぶ
  3. 送信ボタンを押す

これだけの操作で送信できます。

FAXの使い方と全く一緒です。

パソコンができなくてもできる。

受信側も簡単

送信された紙は印刷されてでてきます。

その髪をチェックするだけでいい。

FAXの使い方と一緒です。

電話回線が要らない

インターネットとメールを使っているだけ。

電話回線不要。

総務もニッコリです。

さらに、

各支店の複合機には既にメールアドレスが設定済み。

いつでもインターネットFAXを送信する準備はできています。

後はこの部屋にインターネットFAXができる複合機を導入すればいい。

購入する複合機は?

3-4人しかいない部署です。

100万オーバーするような本格的な複合機は導入できません。

条件はこうなります。

  • 5万円以下
  • インターネットFAXができる

以下の4つが見つかった。

Canon

Brother

  • MFC-J6980CDW インクジェット複合機 オープン価格(参考価格 52,380円 税込み)
  • MFC-L5755DW  レーザー複合機 オープン価格(参考価格 76,140円 税込み)

結局、Canon MF417dwを購入し設定しました。

今はCanon MF447dw が発売されているのでそれを買うといいでしょう。

cweb.canon.jp

現状は?

PCが苦手な方もインターネットFAXの使い方をすぐに覚えてくれました。

発注する側の社員も各支店の複合機を使って送信してくれています。

唯一、困ることは見た目がFAXも送れる複合機なので、FAXしようとしてしまうことでしょうか。