Google ドキュメントにインポートされたプレーン テキスト ドキュメントにカスタム見出しを適用するスクリプトに取り組んでいます。スクリプトはほぼ正常に機能します。ただし、結果のドキュメントは、あたかもランダムな改ページがあちこちに挿入されたかのように、奇妙なレイアウトになります。しかし、改ページがなく、このレイアウトの理由がわかりません。段落の属性を確認しても、何が問題なのかについてのヒントはありません。
スクリプトが適用される前のテキストは次のとおりです。
https://docs.google.com/document/d/1MzFvlkG13i3rrUcz5jmmSppG4sBH6zTXr7RViwdqaIo/edit?usp=sharing
ドキュメントのコピーを作成し、スクリプトを実行できます ([スクリプト] メニューから [見出しの適用] を選択します)。スクリプトは、シーンの見出し、キャラクターの名前、セリフなどに適切な見出しを適用します。
ご覧のとおり、結果のドキュメントの 2 ページ目と 3 ページ目の下部に大きなギャップがあり、その理由がわかりません。段落属性は私には問題ないようです...
スクリプトのコピーを次に示します。
// Apply headings to sceneheadings, actions, characters, dialogues, parentheticals
// to an imported plain text film script;
function ApplyHeadings() {
var pars = DocumentApp.getActiveDocument().getBody().getParagraphs();
for(var i=0; i<pars.length; i++) {
var par = pars[i];
var partext = par.getText();
var indt = par.getIndentStart();
Logger.log(indt);
if (indt > 100 && indt < 120) {
var INT = par.findText("INT.");
var EXT = par.findText("EXT.");
if (INT != null || EXT != null) {
par.setHeading(DocumentApp.ParagraphHeading.HEADING1);
par.setAttributes(ResetAttributes());
}
else {
par.setHeading(DocumentApp.ParagraphHeading.NORMAL);
par.setAttributes(ResetAttributes());
}
}
else if (indt > 245 && indt < 260) {
par.setHeading(DocumentApp.ParagraphHeading.HEADING2);
par.setAttributes(ResetAttributes());
}
else if (indt > 170 && indt < 190) {
par.setHeading(DocumentApp.ParagraphHeading.HEADING3);
par.setAttributes(ResetAttributes());
}
else if (indt > 200 && indt < 240) {
par.setHeading(DocumentApp.ParagraphHeading.HEADING4);
par.setAttributes(ResetAttributes());
}
}
}
// Reset all the attributes to "null" apart from HEADING;
function ResetAttributes() {
var style = {};
style[DocumentApp.Attribute.STRIKETHROUGH] = null;
style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = null;
style[DocumentApp.Attribute.INDENT_START] = null;
style[DocumentApp.Attribute.INDENT_END] = null;
style[DocumentApp.Attribute.INDENT_FIRST_LINE] = null;
style[DocumentApp.Attribute.LINE_SPACING] = null;
style[DocumentApp.Attribute.ITALIC] = null;
style[DocumentApp.Attribute.FONT_SIZE] = null;
style[DocumentApp.Attribute.FONT_FAMILY] = null;
style[DocumentApp.Attribute.BOLD] = null;
style[DocumentApp.Attribute.SPACING_BEFORE] = null;
style[DocumentApp.Attribute.SPACING_AFTER] = null;
return style;
}
問題をより明確にするためのいくつかのスクリーンショット。
これは、スクリプトが適用される前のドキュメントの 2 ページ目です。
これは、スクリプトが適用された後の 2 ページ目です。見出しは正しく適用されますが...下部に空白があるのはなぜですか?
注: 3 ページ目の最初の段落 (AUDIO TV) に手動で HEADING2 を再適用すると、2 ページ目の下部のスペースを埋めるために段落がジャンプして戻ります。ただし、このアクションでは、段落。では、なぜ魔法が起こるのでしょうか。
お待たせいたしました。