InDesignのテーブルセルにプログラムでインライングラフィックスを追加する方法

トリオ・チャン

InDesignドキュメントにテーブルがあります。最初のセルにインライン画像を追加します。

var myPics = File("/c/test.png"),
myDoc = app.activeDocument,
myPage = myDoc.pages[0],
myTable = myDoc.stories.everyItem().tables[0],
myCell = myTable.cells[0];

myCell.contents = myPics;

セルに画像を入れる必要があると思いますが、代わりにファイルアドレスが入力されます。私は何をすべきか?

ジョンウェア

contentsInDesignでテキストオブジェクトのは、実際にフォーマットされたネイティブのInDesignテキストの正確な等価物ではありません。それらは常に単純なJavascriptテキスト文字列との間でキャストされます。読み取ると、contentsInDesignのすべてのテキスト属性(たとえば、テキストの書式設定、ハイパーリンク、ブックマーク、XMLマーカー、および画像などのすべてのメタオブジェクト)破棄されます。書き込みcontentsは、テキストを配置する場所にあるテキストコンテナのデフォルトのフォーマットでフォーマットされたプレーンテキストで宛先を埋めます。

PNGファイルをJavascript変数の「中に」保存することはできません。Fileオブジェクトとしてではなく(実際のファイルの内容に解析されません)、「画像」としてではありません(内容は「何か」を意味するのではなく、テキスト文字列として扱われます)。

適切な方法は、を使用することですplace。これは、InDesignドキュメント全体で機能します。この場合、ファイルはページに直接インポートされるか、次のような有効なプロパティを介してテキストの場所使用しますinsertionPoints

var myPics = File("/c/test.png"),
myDoc = app.activeDocument,
myPage = myDoc.pages[0],
myTable = myDoc.stories.everyItem().tables[0],
myCell = myTable.cells[0];

myCell.insertionPoints[0].place(myPics);

myCell配置する前にの内容が空であることを確認したい場合は、追加できます

if (myCell.texts[0].length > 0)
    myCell.texts[0].remove();

の使用に関する警告everyItem():このように使用すると、ライブコレクションになります。コレクションは配列のように機能しますが、コレクションの各要素が唯一のオブジェクトとして「表示」される点が異なります。したがって、あなたは次のようなことをすることができます

myTable.cells.everyItem().contents = "hello!";

everyItem()コマンドがあるため、テキストはすべてのセルに表示されますしかし、あなたはすでにのコレクションを作成するので、テーブルを-myDoc.stories.everyItem().tables[0]で「」最初のテーブルのリストになり、すべての現在のドキュメントの物語-というあなたは、あなたの驚きに、見つけるすべてのこれらの突然含まれていますhello同様に。

現在のテキストフレームのコピーを同じページに配置し、私のバージョンのスクリプトを再度実行すると、これを確認できます。両方のテーブルに同じ画像が挿入されていることがわかります。

おそらく、最初のテーブル、最初のストーリー、最初のページに画像を1回だけ挿入する必要があります。それなら

myTable = myPage.stories[0].tables[0];

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プログラムで txt ファイルを Windows サーチ インデックスに追加する方法

分類Dev

エクスプローラーウィンドウのWindows10クイックアクセスパネルにプログラムでフォルダーを追加することはできますか?

分類Dev

複数のプロジェクトでカスタムスキャフォールディングを作成する方法(mvc +クラスライブラリ)

分類Dev

プログラムで画像をWPFタブコントロールアイテムに追加する方法

分類Dev

パッケージエクスプローラーでアクティブなファイルの長さを取得するEclipseプラグイン

分類Dev

iOSのテーブルビューのセルとセルインデックスパスに配置されたスクロールビューでプログラムで作成されたビューの位置を取得する方法

分類Dev

プログラムでルイスにインテントを追加する

分類Dev

ブートストラップフォームコントロールのパディングを0ピクセルに設定する方法

分類Dev

フィルタリングされたアイソトープアイテムにクラスを追加する

分類Dev

bashプログラムで使用するためにインストール中にプログラムからのメッセージを抑制する方法は?

分類Dev

アセンブリファイル(.sファイル)をCプログラムにリンクする方法

分類Dev

インテルグラフィックスドライバーをアップグレードする方法は?

分類Dev

インテルグラフィックスドライバーをアップグレードする方法は?

分類Dev

スパークライングラフをテーブルに追加する

分類Dev

エディターのEclipseプラグインにプログラムでテキストを追加する

分類Dev

クロックゲートをハイテクライブラリセルにマッピングする方法

分類Dev

プログラムでファイル共有リンクにアクセスする-Googleドライブ、Android

分類Dev

PCに新しいディスクを追加する方法、パーティションにaptプログラムをインストールする

分類Dev

プログラムでメールタスクのAntライブラリの依存関係を追加する方法

分類Dev

テーブルビューSwiftにセクションとセルをプログラムで追加する

分類Dev

Windows 7:特定のインターフェイスを介してプログラムのトラフィックをルーティングします

分類Dev

どのプロセスがファイルを書き込んでいるかをトラブルシューティングする方法

分類Dev

BigQueryテーブルにプログラムでフィールドの説明を追加する方法

分類Dev

ファイルから単語にインデックスを付けるプログラムのセグメンテーション違反

分類Dev

インテルグラフィックスで「プラグ接続されたモニター」のコールバックを作成する方法は?

分類Dev

Dynamics365プラグインのカスタムエンティティフィールドにアクセスする方法

分類Dev

django Restフレームワークシリアライザーのドロップダウンアイテムをフィルタリングする方法は?

分類Dev

インストールされているプログラムを Wix ツールセットのすべてのプログラム フォルダー リストに追加する方法

分類Dev

クイックアクセスツールバーにプログラムでアドインマクロを追加する

Related 関連記事

  1. 1

    プログラムで txt ファイルを Windows サーチ インデックスに追加する方法

  2. 2

    エクスプローラーウィンドウのWindows10クイックアクセスパネルにプログラムでフォルダーを追加することはできますか?

  3. 3

    複数のプロジェクトでカスタムスキャフォールディングを作成する方法(mvc +クラスライブラリ)

  4. 4

    プログラムで画像をWPFタブコントロールアイテムに追加する方法

  5. 5

    パッケージエクスプローラーでアクティブなファイルの長さを取得するEclipseプラグイン

  6. 6

    iOSのテーブルビューのセルとセルインデックスパスに配置されたスクロールビューでプログラムで作成されたビューの位置を取得する方法

  7. 7

    プログラムでルイスにインテントを追加する

  8. 8

    ブートストラップフォームコントロールのパディングを0ピクセルに設定する方法

  9. 9

    フィルタリングされたアイソトープアイテムにクラスを追加する

  10. 10

    bashプログラムで使用するためにインストール中にプログラムからのメッセージを抑制する方法は?

  11. 11

    アセンブリファイル(.sファイル)をCプログラムにリンクする方法

  12. 12

    インテルグラフィックスドライバーをアップグレードする方法は?

  13. 13

    インテルグラフィックスドライバーをアップグレードする方法は?

  14. 14

    スパークライングラフをテーブルに追加する

  15. 15

    エディターのEclipseプラグインにプログラムでテキストを追加する

  16. 16

    クロックゲートをハイテクライブラリセルにマッピングする方法

  17. 17

    プログラムでファイル共有リンクにアクセスする-Googleドライブ、Android

  18. 18

    PCに新しいディスクを追加する方法、パーティションにaptプログラムをインストールする

  19. 19

    プログラムでメールタスクのAntライブラリの依存関係を追加する方法

  20. 20

    テーブルビューSwiftにセクションとセルをプログラムで追加する

  21. 21

    Windows 7:特定のインターフェイスを介してプログラムのトラフィックをルーティングします

  22. 22

    どのプロセスがファイルを書き込んでいるかをトラブルシューティングする方法

  23. 23

    BigQueryテーブルにプログラムでフィールドの説明を追加する方法

  24. 24

    ファイルから単語にインデックスを付けるプログラムのセグメンテーション違反

  25. 25

    インテルグラフィックスで「プラグ接続されたモニター」のコールバックを作成する方法は?

  26. 26

    Dynamics365プラグインのカスタムエンティティフィールドにアクセスする方法

  27. 27

    django Restフレームワークシリアライザーのドロップダウンアイテムをフィルタリングする方法は?

  28. 28

    インストールされているプログラムを Wix ツールセットのすべてのプログラム フォルダー リストに追加する方法

  29. 29

    クイックアクセスツールバーにプログラムでアドインマクロを追加する

ホットタグ

アーカイブ