ぼんやりDTP

DTPに関係したりしなかったりするぼんやりとした話をなんとなく。

Google Apps Script(GAS)で Spreadsheet の操作

Google Apps Script(GAS)で Spreadsheet を操作したいのでメモ。

  1. /** @OnlyCurrentDoc */は関連付けられたドキュメントにのみ動作する。
  2. デバッグ用のその場限りのようなログはLogger.log()を使用する。
  3. ドキュメントに関連付けられたスクリプトはドキュメントを削除すると、スクリプトも削除される。
  4. シートのズームを設定するようなメソッドはない模様。
  5. ワークブック内のセル数の制限は 5000000(500万)まで。
    • エラーメッセージの例:「Exception: この操作を行うと、ワークブック内のセル数が 5000000 の制限を超えてしまいます。」

関連URL

  1. Apps Script - 自分のプロジェクト

Excelとの対応

Excel Spreadseet GAS のクラス
ブック ワークブック Spreadsheet
シート シート Sheet

サンプル

関連付けられたスプレッドシートの「テンプレート」シートをその右側に複製し、その日付の名前をつけて、「A2」セルに日付を記入する。

/** @OnlyCurrentDoc */

function insertNewSheetOfTodayAndSetDate() {
  var templateSheetName = "テンプレート";
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var templateSheet = ss.getSheetByName(templateSheetName);
  var currentDate = new Date();
  var todayString = Utilities.formatDate(currentDate,"JST","yyyy-MM-dd");
  
  var newSheet = ss.getSheetByName(todayString);
  if (newSheet == null) {
    try {
      newSheet = ss.insertSheet(todayString, templateSheet.getIndex(), {template: templateSheet});
    } catch(e) {
      Logger.log(e);
      return;
    }
  }
  newSheet.activate();

  var dateCell = newSheet.getRange(2, 1);
  if (dateCell.getValue() == "") {
    dateCell.setValue(todayString);
  } else {
    Logger.log(dateCell.getValue());
  }
}

トラブル関連

https://script.google.com/」を開こうとするとエラーが起こるトラブルがある。

解決方法は不明。

エラーメッセージの対訳:

英語 日本語 ドイツ語
Something went wrong エラー Fehler
Please reload the page to try again. ページを再読み込みして、もう一度お試しください。 Aktualisieren Sie die Seite, um es noch einmal zu versuchen.
DISMISS 閉じる SCHLIESSEN
RELOAD 再読み込み AKTUALISIEREN

関連URL

  1. Troubleshooting  |  Apps Script  |  Google Developers

  2. G Suite サポートへのお問い合わせ - G Suite 管理者 ヘルプ

  3. G Suite Status Dashboard

  4. The Apps Script Dashboard  |  Apps Script  |  Google Developers

    1. The Apps Script Dashboard  |  Apps Script  |  Google Developers
  5. Apps Script Dashboard Issues: All - Issue Tracker

  6. Something went wrong when accesing script.google.com [113123489] - Visible to Public - Issue Tracker

  7. No access to "My Projects" and "All Projects". [122881607] - Visible to Public - Issue Tracker
  8. Something Went Wrong [121092508] - Visible to Public - Issue Tracker

参考ページ

  1. Overview of Google Apps Script  |  Apps Script  |  Google Developers
  2. Extending Google Sheets  |  Apps Script  |  Google Developers
  3. Class Spreadsheet  |  Apps Script  |  Google Developers
  4. Class Sheet  |  Apps Script  |  Google Developers
  5. Logging  |  Apps Script  |  Google Developers
  6. Class Utilities  |  Apps Script  |  Google Developers)

  7. Google Apps Scriptで日付を指定フォーマット文字列に変換する | Macちゃん

  8. Google Apps Script で Spreadsheet にアクセスする方法まとめ - Qiita

  9. Google Apps Script 実践メモ(スプレッドシート) - Qiita

  10. In Google sheets how can I Script the manipulation of the default Zoom? - Stack Overflow

  11. Google ドライブに保管可能なファイル - Google ドライブ ヘルプ

  12. Excel の仕様および制限 - Excel

  13. Excel 2011 の仕様と制限 - Excel for Mac

Acrobat で複数の PDF のパスワードセキュリティーをアクションで解除する

Acrobat で複数の PDF のパスワードセキュリティーをアクションで解除する。

同じパスワードが設定されていることが前提。

Acrobat X の場合。

  1. Acrobat の「環境設定」→「アクションウィザード」→「セキュリティー方法」を「パスワードによるセキュリティ」に設定。
  2. 「新規アクションを作成」して「保護」→「暗号化」を選択して「ステップ」に追加。
    • 「開始」は「アクションの開始時に確認」に設定
    • 「保存先」は「アクションの開始時に確認」に設定
  3. 「ステップ」に追加した「暗号化」の「オプション」から「セキュリティ方法」を「なし」に設定。
  4. アクションを実行すると、パスワードを入力するウィンドウが出るのでパスワードを入力。
  5. 処理するファイルと保存先を指定して実行。

参考ページ:

  1. Any Documentation For Creating An Action To Remove Passwords? (Protect PDF)

  2. Removing Security in Batches ()

  3. Bulk remove Open Password in Acrobat DC (Protect PDF)

  4. 4 Easiest Ways to Remove Password from PDF | Wondershare PDFelement

  5. security - How do I remove a usage restriction from a PDF file? - Super User

各環境で JavaScript のデバッグ時にコンソールに出力する関数

各環境で JavaScriptデバッグ時にコンソールに出力する関数をメモ。

環境 関数
Google Chrome console.log()
Google Apps Script Logger.log()
ExtendScript Toolkit $.writeln()
Acrobat console.println()

Google Apps Script」は「表示」→「ログ」でログを表示。

参考ページ:

  1. 診断とコンソールへのログ出力  |  Tools for Web Developers  |  Google Developers
  2. Logging  |  Apps Script  |  Google Developers
  3. 【GoogleAppsScript】ログ出力(デバッグ目的) - Qiita

Acrobat でツールを維持する

Acrobat でツールを維持する

Acrobat DC では注釈ツール、描画ツールなど、一回使ったら選択したツールは解除される。

継続して追加したい場合、 注釈ツールバーの「選択したツールを維持アイコン」をクリックする。

よく使う描画ツール等とともにクイックツールバーに登録しておけば便利だろう。

欲を言えばOptionとかの修飾キー+クリックとかで固定して欲しい。

参考ページ:

  1. 注釈ツールと描画マークアップツールを使用して PDF で注釈を追加, Adobe Acrobat および Acrobat Reader

PDF に GUI 以外で添付ファイルを付ける

PDF に GUI 以外で添付ファイルを付けたい。

AcrobatJavaScript で 付ける

例:現在開いているPDFの1ページめに下記のパス上にある「sample.mp3」、「sample.txt」ファイルを添付する。 添付位置は左上から縦横30ポイントずつ右下、2つ目はさらに15ポイントずつ右下にする。

ファイル名 パス
sample.mp3 /Macintosh HD/Users/hoge/Documents/sample.mp3
sample.txt /Macintosh HD/Users/hoge/Documents/sample.txt
var file_1 = "/Macintosh HD/Users/hoge/Documents/sample.mp3";
var file_2 = "/Macintosh HD/Users/hoge/Documents/sample.txt";

var pageNumber = 0;

var aRect = this.getPageBox("Media", pageNumber);
var height = aRect[1] - aRect[3];
var firstPosition_h = 30;
var firstPosition_v = 30;
var difValue = 15;
var position_h_1 = height - firstPosition_h;
var position_v_1 = firstPosition_v;
var position_h_2 = position_h_1 - difValue;
var position_v_2 = position_v_1 + difValue;

var annot_1 = this.addAnnot({
    page: pageNumber,
    type: "FileAttachment",
    point: [position_v_1,position_h_1],
    author: "",
    contents: "",
    cAttachmentPath: file_1
    });

var annot_2 = this.addAnnot({
    page: pageNumber,
    type: "FileAttachment",
    point: [position_v_2,position_h_2],
    author: "",
    contents: "",
    cAttachmentPath: file_2
    });
  • PDFの座標の原点はページの左下なので、ページの上からY座標の位置を決める場合はページの高さを取得する必要がある。
  • addAnnot の「cAttachmentPath」プロパティーAcrobat XI 以降で使用できる。Acrobat X以下ではJavaScriptだけで注釈の添付ファイルを付けるのは無理な模様。
  • 添付ファイル注釈の主なプロパティー
    • attachIcon:Paperclip, PushPin, Graph, Tag
    • author:作成者
    • contents:説明(のはずだが、試した限りでは何故か設定できなかった)
    • name:名前
    • subject:タイトル
  • 注釈の種類には「音声ファイル」の添付もあるが、現状ではスクリプトで音声ファイルを添付するメソッドやプロパティーは無い模様。 Developing Acrobat Applications Using JavaScript (PDF) によれば、以下のように「sound and file attachment annotations」には録音やファイルと注釈を関連付けるメソッドは無い旨が記載されている。

    All annotations can be constructed in this way, in the case of sound and file attachment annotations, there is no JavaScript method for associating a recording with a sound annotation or a file with a file attachment.

ffmpeg でMP3ファイルをAIFFファイルにするコマンド

テスト用AIFFファイルの作成用。

例)カレントディレクトリのMP3ファイルをAIFFファイルに変換する。

find . *.mp3 -type f -exec ffmpeg -i {} {}.aiff -y \;

参考ページ

  1. Developing Acrobat Applications Using JavaScript (PDF)
  2. JavaScript for Acrobat API Reference (PDF)
  3. Acrobat DC SDK Documentation (attachment)
  4. Acrobat DC SDK Documentation (Annotation types)
  5. Acrobat DC SDK Documentation (Annotation types)
  6. Adobe Acrobat XI + JavaScript例文辞典
  7. Javascript to attach a file into a PDF (JavaScript)
  8. Importing and exporting PDF file attachments with Acrobat JavaScript and Acrobat 9
  9. Fileattachment of annotation (JavaScript)

コマンドラインツールで付ける

例:「in.pdf」の1ページめに「sample.mp3」、「sample.txt」ファイルを添付したPDFを「out.pdf」に出力する。

pdftk

pdftk in.pdf attach_files sample.mp3 sample.txt to_page 1 output out.pdf
  • 最初のページは 1 を、最終ページは end を指定。
  • 添付ファイルはファイル名を連続して並べることで、複数指定が可能。
  • 複数ファイルが同じページに添付された場合、ページ上少しずらして添付される。
  • 複数ページに同時に添付するのはできない模様。

cpdf

cpdf -attach-file sample.mp3 -attach-file sample.txt -to-page 1 in.pdf -o out.pdf
  • -attach-fileを複数用いることで複数ファイルを添付できる。
  • -to-pageは一度だけ指定できる。
  • 複数ファイルが同じページに添付された場合、ページ上同じ位置に重ねて添付される。
  • 複数ページに同時に添付するのはできない模様。

参考ページ

  1. PDFtk Server Manual
  2. Coherent PDF Command Line Tools Community Release
  3. https://www.coherentpdf.com/cpdfmanual/

InDesignの[表スタイルなし]の前後のアキが1.411 mm、-1.411 mm

英語版のInDesignで制作したinddファイルのデフォルトの表のルートスタイル、「[表スタイルなし]」の表の前後のアキは下記のようになる模様。

主に外部からのinddファイルでそういうファイルがある。

設定 設定値
表の前のアキ 1.411 mm
表の後のアキ -1.411 mm

日本語版だと両方とも「1 mm」。

1.411 mmってなんの数字かと思ったが、「4 pt」ということらしい。

idmlで書き出して読み込み直すと「1 mm」に変更されるが、idml書き出し、読み込みでエラーが起こるファイルもあるので悩ましい。

参考ページ:

  1. Tip of the Week: Understanding Table Spacing - InDesignSecrets.com : InDesignSecrets
  2. InDesign - JavaScript小技(2) - 名もないテクノ手

AndroidでPDFに埋め込みか添付された音声の再生が可能なPDFリーダー

AndroidでPDFに埋め込みか添付された音声の再生が可能なPDFリーダーはあるか?

語学書などのPDFに音声を埋め込むか添付して、Androidタブレットで利用したいと思ったのでググった。

  • 埋め込み音声、音声ファイルの再生が可能なPDFリーダーはそこそこあった。
  • テキスト読み上げ機能があるPDFリーダーもそれなりにある模様。
  • 試用は「音声を埋め込み」、注釈ツールの「添付」でMP3ファイルを添付した1枚もののPDFでおこなった。
    • 「音声ファイルを添付」ツールはAIFFファイル形式しか添付できないようだったのでファイルサイズがかさばり、現実的ではないと思ったので試していない。

個人的にはMP3ファイルを添付ファイルの注釈で利用する前提では下記のアプリの選択が無難かと思った。

用途 アプリ 補足
PDF自体の閲覧 Foxit PDF Reader & PDFの作成、編集、変換、注釈 - Google Play のアプリ ページに添付したMP3ファイルをクリックすると他のプレイヤーで再生できる。
音声再生 Pi 音楽プレーヤー: mp3プレーヤー - Google Play のアプリ アプリをインストールするとフローティングプレーヤーが利用できる。
音声再生 VLC for Android - Google Play のアプリ プレイヤーを表示せずにバックグラウンド再生ができる。

音声再生できるPDFリーダー

  1. Xodo PDF Reader & Editor リーダー&エディター - Google Play のアプリ

    • リーダーというよりは編集ソフトの趣が強い。
    • PDFに埋め込まれた音声の再生は可能な模様
      • 音が再生されるだけでコントロールバー等は表示されない
    • 埋め込み音声をタッチすると編集するか聞いてくる
      • 実際編集してしまうので他のアプリで開いている時に、Xodoで「編集」すると先に開いていたアプリでファイルが見つからなくなる模様
    • 添付ファイルのmp3ファイルは抽出はできるがその場での再生はできない模様
      • 保存して(他のアプリで)再生はできる、保存するたびにファイルができるので現実的ではない。
    • DropBoxGoogle Drive、OneDrive対応
    • 全体的なUIはまあまあ
  2. ezPDF Reader マルチメディア PDF 筆記 書式 - Google Play のアプリ

    • PDFに埋め込まれた音声の再生は可能な模様
      • PDFの中央下あたりにオーバーレイでミニプレーヤーが表示される
    • 添付ファイルのmp3ファイルは抽出はできるがその場での再生はできない模様
      • タッチして出るダイアログ?で「プレビュー」を選択して他の音声再生アプリのVLC等で開くと再生はできる
    • DropBoxは対応っぽいメニューはあるけど現実的には動かないっぽい、TossDocsとかいうのに対応しているらしい
    • Web上のPDFはURLを入れれば閲覧できる模様
    • 全体的なUIはちょっといまひとつ
  3. Foxit PDF Reader & PDFの作成、編集、変換、注釈 - Google Play のアプリ

    • 説明を読む限り、PDFに埋め込まれた音声の再生は可能なはずだがどうも再生されない
    • 添付ファイルのmp3ファイルは抽出はできるがその場での再生はできない模様
      • 注釈をタップすると他のアプリケーションで添付ファイルを開くか聞いてくるので、VLC等の他の再生アプリを選択すれば再生できる模様。
    • DropBoxGoogle Drive、OneDrive、Box、Foxit Drive対応
    • 全体的なUIはまあまあ
    • 添付ファイルの音声ファイルを利用するのであれば、今のところはこれがいいかもしれない。
  4. Librera - すべてのフォーマットの書籍リーダー&PDFリーダー - Google Play のアプリ

    • 埋め込み音声の再生、添付ファイルの操作はできない
    • PDFを開きながら、別途、音声ファイルの再生ができる
      • PDFに音声ファイルを埋め込む作業をしなくても聞けるので、ある意味こちらの方が合理的かもしれない。
    • 無料版は操作モード?において広告がほとんどど真ん中に出て気になってしまうので、使用する場合はPro版を購入することになるだろう。
      • Pro版は350円
    • DropBoxGoogle Drive、OneDrive対応
    • 全体的なUIはごちゃごちゃしている、多機能ではありそう
    • 画面の隅に操作ボタンがあったりするので、タブレットにカバーをかけていたりすると、一部の操作がしにくくなる。
  5. Moon+ Reader - Google Play のアプリ

    • 埋め込み音声の再生はできる
      • 画面下部に再生バーが表示される
    • 添付ファイルの操作はできない模様
    • DropBoxGoogle Drive対応
    • UIの翻訳は怪しい
    • 全体的なUIはそこそこ癖があるが、極端に忌避感を持たせるものでもない。
    • Pro版はテキスト読み上げ機能等が利用可能
  6. Gaaiho PDF Reader - Google Play のアプリ

    • 埋め込み音声の再生はできない模様
    • 添付ファイルのmp3ファイルは抽出はできないが、他のアプリでそのまま再生できる
      • 注釈をタップしてもメニューは出ないので、別途添付ファイルメニューから操作する。
    • DropBoxWebDAVサーバー対応
    • UIの翻訳は怪しい
    • 全体的なUIは非常にシンプル、素朴感がある
  7. PDF Viewer - 読み込み&編集 - Google Play のアプリ

    • PDFに埋め込まれた音声の再生は可能な模様
      • 埋め込み部分で再生バーが表示されるので埋め込みの大きさが小さいと操作しづらい
    • 添付ファイルのmp3ファイルは添付ファイルの注釈をタップ後、共有メニューから他のアプリで再生できる
    • DropBoxGoogle Drive、SDカード、USB-OTGデバイス対応
    • 全体的なUIはまあまあ

音声再生できないがテキスト読み上げ(TTS)できるPDFリーダー

  1. eReader Prestigio: Book Reader - Apps on Google Play
    • 埋め込み音声の再生、添付ファイルの操作もできない模様
    • テキスト読み上げ機能は日本語も対応
    • DropBoxGoogle Drive対応

音声再生できないPDFリーダー

  1. Adobe Acrobat Reader - Google Play のアプリ
  2. ReadEra - epub、pdf、docx 電子書籍リーダー - Google Play のアプリ
    • 一般的なPDFビューワーとしての利用勝手はいい
  3. WPS Office - オフィスソフト/PDFファイル閲覧 - Google Play のアプリ
  4. FBReader: Favorite Book Reader - Google Play のアプリ
    • デフォルトではPDFの閲覧できない
    • プレミアム版ではPDFの閲覧できる
  5. EBookDroid - PDF & DJVU Reader - Google Play のアプリ

不明

  1. PocketBook reader - pdf, epub, fb2, mobi, audio - Google Play のアプリ
    • 起動して初期化でクラッシュして試せてない
  2. Cool Reader - Google Play のアプリ
    • 起動して操作しようとするとクラッシュして試せてない
  3. Aldiko Book Reader - Google Play のアプリ
    • Premium Subscriptionに登録すると(月額140円)無制限のオーディオブックのブックシェルフが使える等の機能が増える。

参考ページ

  1. Top 5 Free Android PDF to Speech Converter Apps | Wondershare PDFelement
  2. Best PDF reader for Android of 2018 | TechRadar
  3. AndroidでPDFファイルを閲覧できるお勧めアプリ6選  | DegiLog
  4. Can you make a pdf with audio that will play on a mobile device? - Quora