20200326のMacに関する記事は5件です。

Terminalが起動するたびにToDoを教えてくれる

これは、mac用のShellを開くたびにToDo.txtに記述した内容を読み上げるだけのプログラム

はじめに文字コード対策のために、nkfをインストール

brew install nkf

次に、好きなディレクトリにToDo.txtを作成し、一行ごとにToDoを作成する。

ToDo.txt
・3月26日にバイトの面接
...etc

~/.zshrcの先頭に以下を記述

X=`wc -l ToDo.txt | awk '{print $1}'`
echo "現在抱えているToDoは${X}件です。"
nkf -w8 ToDo.txt

するとshellを開くたびにToDoの件数とToDoが出力される。

これを棒読みに読ませる。
macの読み上げソフトでいいのはないかと探していたところ、
macは標準で、

say "さんをつけろよデコ助野郎!"

とすれば喋るそうだ。
すげぇ。
なので、

X=`wc -l ToDo.txt | awk '{print $1}'`
say "現在抱えているToDoは${X}件です。"
nkf -w8 ToDo.txt

とすれば読んでくれる。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【mac】隠しファイルを表示する

macで隠しファイルを表示する

finderで、隠しフォルダを表示させたい階層に移動し、Shift + command + .

以上!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【mac】ショートカット キー

必要になる度にアップデートしていきます。

スクショを撮る

Shift + command + 4

macで隠しファイルを表示する

Shift + command + .

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac Laravelのライブラリ「laravel-dompdf」を日本語表示に対応させる

目的

  • Laravelにライブラリ「laravel-dompdf」を入れたが、日本語化されない問題があったため改善する

実施環境

  • ハードウェア環境
項目 情報 備考
OS macOS Catalina(10.15.3)
ハードウェア MacBook Air (11-inch ,2012)
プロセッサ 1.7 GHz デュアルコアIntel Core i5
メモリ 8 GB 1600 MHz DDR3
グラフィックス Intel HD Graphics 4000 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.3
Laravel バージョン 7.0.8
  • ライブラリ環境
項目 情報 備考
laravel-dompdf v0.8.6 アプリ名ディレクトリに移動後コマンド`composer show -i

実施条件

実施方法概要

  • Bladeファイルを利用した日本語化対応の方法をまとめる。
  1. 準備
  2. フォントのファイルの取得
  3. ライブラリに登録するためのスクリプト取得
  4. ライブラリに登録
  5. 確認

実施方法詳細

  1. 準備

    1. 下記コマンドを実行してフォントのファイルを設置するディレクトリを作成する

      $ mkdir アプリ名ディレクトリ/fonts
      
  2. フォントのファイルの取得

    1. 下記リンク先にアクセスする。

      IPAフォント ダウンロードページ

    2. リンク先の「TTFファイル」の「4書体パック」のzipをクリックしてフォントをインストールする。

      laravel_dompdf_japanese_md_と_IPAフォントのダウンロード.png

    3. お使いのMacのダウンロードフォルダにダウンロードされたフォントのzipファイル「IPAfontXXXXX.zip」を解凍する。(Xには任意の数字)

    4. 下記コマンドを実行して、解凍した「IPAfontXXXXX」の中のファイル郡を先に作成したアプリ名ディレクトリ/fontsにコピーする。

      $ cd アプリ名ディレクトリ
      $ cp ~/Downloads/IPAfont00303/* fonts/
      
    5. フォントのファイルを設置したアプリ名ディレクトリ/fonts直下の状態を下記に記載する。

      • ~アプリ名ルートフォルダ/fonts
        • IPA_Font_License_Agreement_vX.X.txt
        • Readme_IPAfontXXXXX.txt
        • ipag.ttf
        • ipagp.ttf
        • ipam.ttf
        • ipamp.ttf
  3. ライブラリに登録するためのスクリプト取得

    1. 下記のリンク先にアクセスする。
    2. 「Clone or download」をクリックする。

      dompdf_utils__Utility_scripts_for_use_with_the_dompdf_library.png

    3. 「Download ZIP」をクリックする。

      dompdf_utils__Utility_scripts_for_use_with_the_dompdf_library_と_laravel_dompdf_japanese_md.png

    4. お使いのMacのダウンロードフォルダにダウンロードされたzipファイル「utils-master.zip」を解凍する。

    5. 下記コマンドを実行して解凍したフォルダ「utils-master」の中の「load_font.php」をアプリ名ディレクトリ直下にコピーする。

      $ cd アプリ名ディレクトリ
      $ cp ~/Downloads/utils-master/load_font.php .
      
    6. アプリ名ディレクトリ直下に「load_font.php」があることを確認する。

  4. ライブラリに登録

    1. 下記コマンドを実行する。(筆者環境での下記コマンドの実行後の出力を付録に記載する。)

      $ php load_font.php ipag fonts/ipag.ttf
      
    2. 下記コマンドをアプリ名ディレクトリで実行してフォントの設定ファイルを確認する。

      $ cd アプリ名ディレクトリ
      $ vi vendor/dompdf/dompdf/lib/fonts/dompdf_font_family_cache.php
      
    3. 先のコマンドを実行して開いたファイルに下記の記載がある事を確認する。

      vendor/dompdf/dompdf/lib/fonts/dompdf_font_family_cache.php
      'ipag' => array(
      'normal' => $fontDir . '/ipag',
      'bold' => $fontDir . '/ipag',
      'italic' => $fontDir . '/ipag',
      'bold_italic' => $fontDir . '/ipag',
      ),
      
    4. 下記コマンドを実行してスクリプトファイルにより作成されたライブラリが読むためのフォントデータをコピーする。

      $ cd アプリ名ディレクトリ
      $ cp -r vendor/dompdf/dompdf/lib/fonts storage/
      
  5. 確認

    1. 下記コマンドを実行してアプリ名ディレクトリ/resource/viewに「test」フォルダを作成する。

      $ cd アプリ名ディレクトリ
      $ mkdir resources/views/test
      
    2. 下記コマンドを実行してTestコントローラを作成する。

      $ cd アプリ名ディレクトリ
      $ php artisan make:controller TestController
      >Controller created successfully.
      
    3. 下記コマンドを実行して先に作成したコントローラを開く。

      $ cd アプリ名ディレクトリ
      $ vi app/Http/Controllers/TestController.php
      
    4. 先のコマンドで開いたコントローラをの内容を下記の様に修正する。

      アプリ名ディレクトリ/app/Http/Controllers/TestController.php
      <?php
      
      namespace App\Http\Controllers;
      
      use Illuminate\Http\Request;
      
      use PDF;
      
      class TestController extends Controller
      {
          public function japanese_pdf_test() {
              $pdf = PDF::loadView('test.japanese_pdf_test');
              return $pdf->stream();
          }
      }
      
    5. 下記の記載をアプリ名ディレクトリ/routesにあるweb.phpのルーティングファイルに追記する。

      アプリ名ディレクトリ/routes/web.php
      Route::get('/japanese_pdf_test', 'TestController@japanese_pdf_test');
      
    6. 下記コマンドを実行してビューファイルを作成し開く。

      $ cd アプリ名ディレクトリ
      $ vi resources/views/test/japanese_pdf_test.blade.php
      
    7. 開いたビューファイルに下記の内容を記載する。

      アプリ名ディレクトリ/resources/views/test/japanese_pdf_test.blade.php
      <!doctype html>
      <html>
        <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
          <title>PDF</title>
          <style>
          body {
          font-family: ipag;
          }
          </style>
        </head>
        <body>
            <h1>こんにちは</h1>
        </div>
        </body>
      </html>
      
    8. 下記コマンドを実行してローカルサーバを起動する。

      $ cd アプリ名ディレクトリ
      $ php artisan serve
      
    9. 下記のリンク先にアクセスしブラウザから文字化けせずに「こんにちは」とPDFとして出力されることを確認する。

付録

  • コマンドphp load_font.php ipag storage/fonts/ipag.ttfを実行した際の筆者の環境でのターミナル出力を下記に記載する。

    $ php load_font.php ipag fonts/ipag.ttf
    >Unable to find bold face file.
    >Unable to find italic face file.
    >Unable to find bold_italic face file.
    >Copying fonts/ipag.ttf to /Users/shun/workspace/study/laravel/calculation_drill_app/vendor/dompdf/dompdf/lib/fonts/ipag.ttf...
    >Generating Adobe Font Metrics for /Users/shun/workspace/study/laravel/calculation_drill_app/vendor/dompdf/dompdf/lib/fonts/ipag...
    >PHP Notice:  Trying to access array offset on value of type null in /Users/shun/workspace/study/laravel/calculation_drill_app/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php on line 142
    >PHP Stack trace:
    >PHP   1. {main}() /Users/shun/workspace/study/laravel/calculation_drill_app/load_font.php:0
    >PHP   2. install_font_family() /Users/shun/workspace/study/laravel/calculation_drill_app/load_font.php:201
    >PHP   3. FontLib\TrueType\File->saveAdobeFontMetrics() /Users/shun/workspace/study/laravel/calculation_drill_app/load_font.php:155
    >PHP   4. FontLib\AdobeFontMetrics->write() /Users/shun/workspace/study/laravel/calculation_drill_app/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php:361
    >
    >Notice: Trying to access array offset on value of type null in /Users/shun/workspace/study/laravel/calculation_drill_app/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php on line 142
    >
    >Call Stack:
    >    0.0086     423096   1. {main}() /Users/shun/workspace/study/laravel/calculation_drill_app/load_font.php:0
    >    0.0484    4914016   2. install_font_family() /Users/shun/workspace/study/laravel/calculation_drill_app/load_font.php:201
    >    0.0858    5068992   3. FontLib\TrueType\File->saveAdobeFontMetrics() /Users/shun/workspace/study/laravel/calculation_drill_app/load_font.php:155
    >    0.0862    5103120   4. FontLib\AdobeFontMetrics->write() /Users/shun/workspace/study/laravel/calculation_drill_app/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php:361
    

参考文献

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

sedコマンドを使ってシェルで改行をスペースに変える

Macでクリップボードにコピーした文章を,sedで改行を空白に変えるワンライナー.
pdfをDeepLにコピペする時に使う.

% pbpaste | sed -e ':a' -e 'N' -e '$!ba' -e "s/\n/ /g" | pbcopy
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む