Dove si trova l'anteprima che memorizza i dati per riaprire un PDF nell'ultima pagina? OS X Lion

0

Posso vedere come disattivare questo comportamento in una domanda precedente su Come impostare l'anteprima per iniziare sull'ultima pagina visualizzata?

Ma quale file sta / stava memorizzando questi dati persistenti sull'ultima pagina letta di un PDF in Anteprima? Ho sperimentato con l'eliminazione di molti cache, plist e altri file associati con l'app di anteprima, anche i suoi segnalibri e quelli in ~ / Library / Containers e nessuno di essi sembra fermarsi ricordando l'ultima pagina letta in un documento PDF.

Qualcuno può nominare il file specifico in cui sono archiviate queste informazioni?

Grazie. Sono ancora su Lion btw

    
posta lrobes 05.07.2015 - 06:44
fonte

2 risposte

1

Ce l'ho. Credo. Mi ci è voluto molto tempo, ma penso di aver capito cosa sta succedendo. Speriamo che questo possa essere utile a qualcun altro.

Prima di tutto ho notato che bloccare il file nel Finder sembrava interrompere l'anteprima ricordando una pagina diversa. Quindi, se avessi aperto il PDF a pagina 1 e poi scorressi a pagina 10, non avrei più ricordato che il PDF era a pagina 10 quando il file era chiuso e poi riaperto. Quello fu il primo indizio.

Ho quindi utilizzato fseventer che monitora i cambiamenti dei file in tempo reale e sono rimasto sorpreso per vedere che aprire un PDF in Anteprima, scorrere a una pagina diversa e quindi chiudere il PDF ha aggiornato il file stesso. Non registra letteralmente una variazione di orario nel Finder, la data rimane la stessa, ma fseventer ha gettato l'indizio 'Modificato xattr'.

Ok, ricordavo vagamente qualche menzione di questa caratteristica chiamata attributi estesi degli anni precedenti, sembra funzionare come un altro tipo di metadati, ma è piuttosto separata dai "normali metadati", e ora sto leggendo è stata una sostituzione per i vecchi fork delle risorse in OS 9. L'esecuzione di $mdls (utilizzata per i normali 'metadati') in Terminale non mostrerà gli attributi estesi.

Devi usare il comando $xattr per vedere questi attributi.

Quando ho corso $xattr /Volumes/mydisk/mypdf.pdf ho ottenuto questo:

/Volumes/mydisk/mypdf.pdf: com.apple.Preview.UIstate.v1: E un'altra riga su un bit di quarantena

Devi fare $ xattr -lv per vedere i dati completi di questi attributi estesi. Produce un blob di output esadecimale per com.apple.Preview.UIstate.v1.

Quindi ho eseguito $ xattr -lv /Volumes/mydisk/mypdf.pdf

E copiato l'output. Quindi ho aperto il PDF in Anteprima, modificato la pagina e chiuso Anteprima.

Quindi ho eseguito nuovamente $ xattr -lv /Volumes/mydisk/mypdf.pdf

E poi confrontato i BLOB dell'output esadecimale per com.apple.Preview.UIstate.v1, che erano diversi tra le due occasioni.

Il test finale è stato quello di eliminare i dati degli attributi estesi:

$ xattr -c /Volumes/mydisk/mypdf.pdf

E questo è tutto! Torna alla pagina 1 quando lo apri in Anteprima

Sembra che l'ultima pagina visualizzata di un PDF sia archiviata in questi attributi estesi. Sono così felice!!

    
risposta data 07.07.2015 - 16:10
fonte
0

Usando filemon dal libro "Mac OS X Internals - To The Apple's Core" appare l'unico file correlato di Anteprima che viene modificato se tutto ciò che faccio è aperto, ad es. un documento .pdf in Anteprima e chiudilo in una pagina diversa è il file com.apple.Preview.ViewState.plist che si trova in:

/Users/$USER/Library/Containers/com.apple.Preview/Data/Library/Preferences/

Il file non è quello che chiamerei in un formato leggibile dall'uomo in quanto è principalmente un elenco di UUID che contengono un Timestamp e una chiave Data, tuttavia la chiave Data non è in un formato leggibile dall'uomo, sebbene sia presente il tasto Timestamp.

Tuttavia, ero in grado di vedere la modifica del valore data / ora su diversi UUID mentre aprivo e chiudevo documenti recenti quando li chiudevo su pagine diverse, quindi sono stati aperti. Quindi, anche se è il file giusto, non sei sicuro di quanto il file ti sarà utile.

    
risposta data 05.07.2015 - 12:08
fonte

Leggi altre domande sui tag