IssueTrackerという、バグ等の情報が共有されている公式のサイトでも、同様の事象についてのスレッドが本日(太平洋標準時の8月11日)立て続けに複数建てられております。
「業務に深刻な影響が出ている」という書き込みも散見されます。
(受付済みのスレッド)
BUG: Exception: Conversion from text/html to application/pdf failed.
日本時間8/12 17:00時点では、スレッド内にGASでの代替解決案が書き込まれている様子はありません。
(htmlをPDFに変換するPHPプログラムを利用する、という書き込みはありましたが、GASを扱える人なら誰でも簡単にできるというような解決法ではなさそうです)
原因は不明ですが、おそらくGAS利用者全体に対して突然発生したバグであり、そのうち直るのではないでしょうか。
【2021/8/13 16:26追記】
IssueTrackerの書き込みを参考にした、Googleドキュメント経由でHTMLをpdfに変換するスクリプトを記載します。
(注意)
・GASエディタの「サービス」から「Drive」サービスを追加しないと動きません。
・Driveサービスによる保存は一日当たり使用回数制限があります。
・一部のHTMLタグやスタイルは対応していない場合があります。
js
16
7function html2pdf(html, filename, folderId="root") {
8 const tempblob = Utilities.newBlob(html, MimeType.HTML, "text.html");
9 const resource = {
10 title: filename,
11 convert: true,
12 mimeType: 'application/vnd.google-apps.document'
13 };
14
15 const fileId = Drive.Files.insert(resource, tempblob).getId();
16 const url = "https://docs.google.com/document/d/" + fileId + "/export?format=pdf";
17 const folder = DriveApp.getFolderById(folderId);
18 const token = ScriptApp.getOAuthToken();
19 const resp = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' + token}})
20 const blob = resp.getBlob().setName(filename + '.pdf');
21 folder.createFile(blob);
22 Drive.Files.remove(fileId);
23}
使用例:マイドライブのルートに、指定したHTMLを「変換テスト.pdf」という名前で保存。
html2pdf( `<html>
<body>
<table>
<tr>
<th>ヘッダ</th>
<th class="col1"><span class="inner"><span class="side">テスト2</span>テスト3</span></th>
<th>テストヘッダ</th>
</tr>
<tr>
<td></td>
<td class="col1">100</td>
<td>100</td>
</tr>
<tr>
<td><a href="#">A</a></td>
<td><a href="#">B</a></td>
<td><a href="#">C</a></td>
</tr>
<tr>
<td>ああああ</td>
<td class="col1">いいい</td>
<td>ううう</td>
</tr>
</table>
</body>
<html>
`,
"変換テスト")
【2021/8/17 19:15追記】
IssueTrackerの書き込みによると、本件のバグは直ったようです。
手元の環境でも、質問文記載と類似のコードを正常に実行することができました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/12 08:52