我正在研究將自定義標題應用於Google文檔中導入的純文本文檔的腳本。這些腳本幾乎可以正常工作。然而,由此產生的文件有一個奇怪的佈局,就像隨機分頁符被插入這裏和那裏一樣。但是沒有分頁符,我不明白這個佈局的原因。檢查段落屬性不會提示有什麼問題。Google Apps腳本:腳本格式文檔中奇怪的頁面佈局
這裏是文字腳本之前應用:
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頁。
這是第二頁之後應用腳本。標題應用正確,但...爲什麼底部的空白?
注:如果您手動重新申請HEADING2第3頁(AUDIO TV)的第一段,該段將跳轉回填土在第2頁。這個動作的底部空間,但,不會更改段落中的任何屬性。那麼爲什麼魔術會發生?
非常感謝您的耐心等待。
無seing你的文本源也不是你的代碼有什麼可以說呢? –
謝謝,現在這已經很清楚了:-) –
我剛剛編輯了我的問題,我試圖給出所有需要的信息而沒有給太多...希望它更好... – marcomk