Bagaimana saya bisa meningkatkan kinerja ketika menambahkan InDesign XMLElements melalui AppleScript?

Saya memiliki sebuah AppleScript program yang menciptakan XML tag dan elemen-elemen dalam dokumen Adobe InDesign. Data dalam tabel, dan penandaan setiap sel membutuhkan waktu 5 detik. Seluruh naskah yang membutuhkan waktu beberapa jam untuk menyelesaikan.

Aku dapat memposting loop batin kode, tapi aku'm tidak yakin jika DEMIKIAN seharusnya generik atau spesifik. I'll biarkan massa memutuskan.

[sunting / sunting sumber] Kode yang membangun sebuah daftar (sebelum ini loop) yang berisi satu item per baris dalam tabel. Ada juga sebuah daftar yang berisi satu string untuk setiap kolom dalam tabel. Untuk masing-masing sel, program ini menciptakan sebuah elemen XML dan XML tag dengan menggabungkan item dalam [baris]/[kolom] posisi dua daftar. Hal ini juga mengaitkan teks dalam sel yang baru dibuat elemen.

I'm benar-benar baru untuk AppleScript sehingga beberapa dari kode ini adalah kasar dimodifikasi dari Adobe's sampel. Jika kode ini mengerikan saya tidak't tersinggung.

Berikut ini's kode:

repeat with columnNumber from COL_START to COL_END

    select text of cell ((columnNumber as string) & ":" & (rowNumber as string)) of ThisTable

    tell activeDocument

        set thisXmlTag to make XML tag with properties {name:item rowNumber of symbolList & "_" & item columnNumber of my histLabelList}

        tell rootXmlElement

            set thisXmlElement to make XML element with properties {markup tag:thisXmlTag}

        end tell

        set contents of thisXmlElement to (selection as string)

    end tell

end repeat

EDIT: I've diulang pertanyaan untuk lebih mencerminkan jawaban yang benar.

Masalahnya adalah hampir pasti pilih. Ada pula anda bisa mengekstrak semua teks sekaligus kemudian iterate atas variabel internal?

Komentar (0)
Larutan

Saya pikir yang satu ini.

Dokumen berisi sekumpulan tabel data. Dalam semua, ada sekitar 7.000 data poin yang harus diekspor. Saya menciptakan satu elemen root dengan 7.000 anak-anak.

Don't melakukan itu. Menambahkan masing-masing anak untuk elemen root mendapat lebih lambat dan lebih lambat sampai di sekitar 5.000 anak-anak AppleScript habis dan program ini dibatalkan.

Solusinya adalah untuk membuat kode lebih rapuh dengan menciptakan ~480 anak-anak dari akar, dengan masing-masing anak memiliki sekitar 16 cucu. Yang sama dengan jumlah node, tapi kode sekarang berjalan cukup cepat. (Hal ini masih membutuhkan waktu sekitar 40 menit untuk proses dokumen, tetapi yang's jauh waktu kurang dari tak terhingga.)

Kebetulan, asli 7.000 anak-anak rencana itu't sebagai bodoh atau malas seperti itu muncul. Solusi baru ini memaksa saya untuk menghubungkan dua tabel bersama-sama menggunakan data di tabel yang saya don't control. Program ini sekarang akan pecah jika ada's begitu banyak sebagai ruang di mana tidak seharusnya't menjadi satu. (Tapi itu bekerja.)

Komentar (0)

saya bisa posting loop batin kode, tapi aku'm tidak yakin jika DEMIKIAN seharusnya generik atau spesifik. I'll biarkan massa memutuskan.

Kode yang anda posting sebagai contoh dapat spesifik seperti anda (atau bos anda) lebih nyaman - lebih sering daripada tidak, itu's mudah untuk membantu anda dengan rincian yang lebih spesifik.

Komentar (0)

Jika dalam kode loop adalah wajar, I don't melihat alasan apa pun yang anda bisa't posting ini. Saya pikir Stack Overflow ini dimaksudkan untuk mencakup baik umum dan pertanyaan khusus.

Komentar (0)

Apakah anda menggunakan InDesign atau InDesign Server? Berapa banyak halaman dokumen anda (atau informasi lain yang bisa anda ceritakan tentang dokumen anda/ID setup)?

Saya melakukan banyak InDesign Server pengembangan. Anda bisa melihat lambat-downs untuk beberapa alasan yang tidak't perlu kode terkait.

Sekarang, aku'm menghasilkan 100-300 halaman dokumen yang hampir sepenuhnya dari script/xml dalam 100 detik (anda dapat melakukan sesuatu yang jauh lebih besar).

Komentar (0)