4 votos

Obtenga el número de página de los metadatos en lugar del índice

En Applescript, podemos obtener el número de índice de la página actual que estamos viendo en Skim con el código siguiente:

tell application "Skim"
    activate
    set theDoc to front document
    get index for current page of theDoc
end tell

Es allí una manera de acceder a los metadatos de número de página en lugar de la regular el índice de la página?

metadata vs index


Assessibility Inspector De Resultados

Accesibilidad Inspector sólo indica que es un campo de texto. (Número de la página ha cambiado para 1098)

inspector results


Otra forma de acceso al campo de texto

Con el siguiente código, en el que {350, 55} es la posición en el campo de texto se encuentra en la pantalla de mi,

tell application "System Events" to click at {350, 55}

He encontrado que el campo de texto se puede acceder con:

text field "Page" of group 2 of toolbar 1 of window "程元敏 - 2013 - 尚書學史.pdf (page 1150 of 1696)" of application process "Skim" of application "System Events"

Por lo tanto, el siguiente intento de obtener su valor.

tell application "Skim"
    activate
    set theDoc to front document
    get value of text field "Page" of group 2 of toolbar 1 of theDoc
end tell

La secuencia de comandos anterior dio como resultado este error de sintaxis:

Se espera al final de la línea, etc. pero se encontró """.


Preguntas:

Además me dice cómo acceder al campo de texto con el código, también me gustaría saber por qué la Accesibilidad Inspector de error para indicar cualquier información sobre el campo de texto?

Hay una forma directa de acceder a los metadatos de un documento pdf con applescript?

¿Por qué tenemos para incrustar tell application "System Events" to tell application process "Skim" dentro tell application "Skim" el código de trabajo?

1voto

qarma Puntos 71

Lo siento, estoy escribiendo esto con un poco de prisa, así que tendré que volver y actualizarlo con una explicación adecuada. Sin embargo, aquí hay un script con un controlador para obtener una lista de páginas de un documento PDF, donde item n en la lista devuelta es la etiqueta correspondiente a la página en el índice n :

 use framework "Foundation"
use framework "PDFKit"
use scripting additions

property this : a reference to the current application
property PDFDocument : a reference to PDFDocument of this

choose file of type "com.adobe.pdf" with prompt "Select PDF File"
PDFPagesInDocument at result

on PDFPagesInDocument at filepath
        local filepath

        try -- test file exists
                set fileURL to filepath as text ¬
                        as {alias, POSIX file} ¬
                        as «class fsrf»
        on error
                return false
        end try

        script pages
                property list : {}
        end script

        tell PDFDocument to tell alloc()
                initWithURL_(fileURL)
                repeat with i from 0 to pageCount() - 1
                        tell pageAtIndex_(i) to set the end of the ¬
                                list of pages to its label() as text
                end repeat
        end tell

        return the list of pages
end PDFPagesInDocument
 

0voto

Sati Puntos 121

Aquí está mi código final que funcionó:

 tell application "Skim"
    activate
    set theDoc to front document
    tell application "System Events" to tell application process "Skim"
        set metaPage to (get value of text field "Page" of group 2 of toolbar 1 of window 1)
    end tell
end tell
 

Espero que algunos de ustedes puedan responder mis otras preguntas indicadas anteriormente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X