按第一个字符的应用字体和大小选择“故事”

时间:2017-10-06 09:33:13

标签: applescript font-size adobe-indesign

我有这个问题。
在我的文档中,我想“扫描”每个文本框并搜索具有特定应用字体和应用大小的特定首字母(等等...)
如果我找到它,复制整个文本项目的故事并将其过去另一个文档
如果我没有找到,请搜索其他类型的特定首字母......
如果我找到它,复制整个文本项目的故事并将其过去另一个文档
如果我没有找到,请搜索其他类型的特定首字母......
如果我找到它,复制整个文本项目的故事并将其通过另一个文档

我的文档的所有页面

tell application (CS6)
-- bla bla bla   
if applied font of character 1 of characters of texts of object reference of text frame 1 of text frames is ("Taz" & tab & "Regular") then

tell application (CS6)
set Titoli to {applied font:"Taz", point size:{15, 16, 17, 18, 19, 20}}
-- bla bla bla   
if applied font of character 1 of characters of texts of object reference of text frame 1 of text frames is in Titoli then ...

但它不起作用......: - (

我的苹果知识比我糟糕的英语更糟糕......抱歉 提前感谢您的每一个建议

tell application "Adobe InDesign CS6"
-- VERIFICA E DEFINIZIONE DOCUMENTO
try
    set Tedesco to active document
on error
    display dialog "Nessun documento aperto." buttons {"Annulla"} default button "Annulla" with icon 0
end try
set Titoli to {applied font:"Taz", point size:{15, 16, 17, 18, 19, 20}}
set Testo to {applied font:"Taz", fill color:"Black", point size:8}
set Didascalie to {applied font:"TazCd", fill color:"Black", point size:7.5} -- dev'essere "da 5 a 7.5"
set Sottotitoli to {applied font:"Taz" & tab & "Semibold", fill color:"White", point size:14}
tell Tedesco
    set PagineTotali to count pages of Tedesco
    repeat with PaginaCorrente from 1 to PagineTotali -- ripeti per tutte le pagine del documento
        set locked of every text frame to false -- sblocca tutti i box di testo
        set allTextBoxes to text frames of page (PaginaCorrente) -- seleziona tutti i box di testo della pagina
        repeat with textboxnum from 1 to count allTextBoxes
            set currentTextBox to item textboxnum of allTextBoxes
            set myTextFrame to currentTextBox -- definisce myTextFrame il testo contenuto nel frame 1 della mia pagina
            tell parent story of myTextFrame -- chiama tutto il contenuto di myTextFrame
                set PrimoCarattere to object reference of text from character 1 to character 1 of paragraph 1 -- seleziona solo il primo paragrafo
                tell PrimoCarattere -- chiama il testo selezionato
                    -- if label of properties of myTextFrame is not equal to "GoToTheNext"
                    if properties of every character of every text of ParagrafoUno is in Didascalie then
                        display dialog ("Didascalia")
                        set label of properties of myTextFrame to "GoToTheNext"
                    end if
                end tell
                -- set stileparagrafo to name of applied paragraph style of TestoTrovato -- definisce "stileparagrafo" il nome dello stile di paragrafo applicato al testo trovato
                -- set stilecarattere to name of applied character style of TestoTrovato -- definisce "stilecarattere" il nome dello stile di carattere applicato al testo trovato
                -- set corpo to point size of TestoTrovato -- definisce "corpo" la grandezza del corpo espressa in punti applicata al testo trovato
            end tell
        end repeat
    end repeat
end tell
end tell

1 个答案:

答案 0 :(得分:0)

无需循环显示文本框:您只需循环浏览文档中的故事即可。

不幸的是,我在Applescript中的技能是零,但这是如何在Javascript中做到的:

var myDocument = app.activeDocument;

for(myCounter = 0; myCounter < myDocument.stories.length; myCounter++){
    if(myDocument.stories.item(myCounter).characters.item(0).appliedFont.fontFamily=='Arial' && myDocument.stories.item(myCounter).characters.item(0).appliedFont.fontStyleName == 'Regular'){
        //copy paste the story here
        var newDoc = app.documents.add();
        var newTextFrame = newDoc.pages.item(0).textFrames.add();  
        newTextFrame.geometricBounds = [1, 1, 5, 5];

        myCopy =myDocument.stories.item(myCounter).texts[0].duplicate(LocationOptions.AFTER,newTextFrame.insertionPoints[0])
        }
}

希望这可以让你走上正确的道路