2013-11-14 108 views
0

我正在研究將自定義標題應用於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頁。

Page 2 before script

這是第二頁之後應用腳本。標題應用正確,但...爲什麼底部的空白?

enter image description here

注:如果您手動重新申請HEADING2第3頁(AUDIO TV)的第一段,該段將跳轉回填土在第2頁。這個動作的底部空間,但,不會更改段落中的任何屬性。那麼爲什麼魔術會發生?

非常感謝您的耐心等待。

+0

無seing你的文本源也不是你的代碼有什麼可以說呢? –

+0

謝謝,現在這已經很清楚了:-) –

+0

我剛剛編輯了我的問題,我試圖給出所有需要的信息而沒有給太多...希望它更好... – marcomk

回答

1

這是一個有趣的問題;-)

我抄你的文檔,運行腳本,有一個驚喜:什麼都沒有發生!

我花了幾分鐘的時間才意識到我剛剛製作的副本沒有爲標題定義樣式,因爲某些原因,所有東西都以新的12pt包括標題在內。

我檢查了日誌,看到了縮進值,很多時候都用它來看到標題在那裏但沒有改變樣式。

所以我去了文檔菜單,並設置'使用我的默認樣式和...一切看起來不錯,請參閱下面的屏幕截圖。 enter image description here

所以,現在你的問題:它似乎有一定是壞了你的風格定義中,「錯誤的」我的意思是什麼,改變的不僅僅是字體樣式和大小,但老實說,我看不出有什麼辦法以猜測因爲我無法重現它...請嘗試重置您的標題樣式並重新定義您的默認....並告訴我們接下來會發生什麼。

PS:這裏是我的默認標題樣式:(和我的副本中只能查看網址:https://docs.google.com/document/d/1yP0RRCrRSsQc9zCk-sdfu5olNGDkoIrabXanII4qUG0/edit?usp=sharing

enter image description here

+0

看起來很奇怪,「電影劇本」的風格都是Courier New 12!腳本執行後,文本的視覺外觀不會改變。劇本的目的是爲場景標題,角色名稱,對話,動作說明等應用不同的標題,以便編劇可以很容易地編輯「電影劇本」(否則他很快就會用不同的間距和縮進來弄亂文檔)。我會用幾個截圖來解決我的問題... – marcomk

+0

我看到...在我看來,我用默認標題樣式得到的結果並不差,很容易閱讀和清楚...但當然,這只是一個意見,我不是一個劇本作家:-)事實上你會喜歡它看起來?所有在相同的字體?然後你的腳本做得相當不錯,但它如何提高可讀性? PS:對不起,這是一個有點出於本網站的主題,我知道:-) –

+0

嗯,這不是我的決定,這是多年前好萊塢決定格式化電影劇本的方式,我無法改變它;-)我補充說我的問題的一些截圖使其更加清晰。希望你有足夠的耐心跟隨我。非常感謝! – marcomk