使用腳本自動提取所有 ipe 視圖

使用腳本自動提取所有 ipe 視圖

我知道我可以.ipe使用iperender -eps -view 3 a.ipe a3.eps.

我想建立一個腳本,該腳本將.ipe文件作為參數,並提取所有視圖,而與文件有多少視圖無關.ipe

為此,我需要一個函數來計算.ipe文件中的視圖數。我可以嘗試逐個視圖地提取視圖,直到失敗,但這似乎是一個不可行的解決方案。然後,如果iperender由於其他原因失敗,它將默默地失敗。

是否有任何ipe相關工具可以僅列印文件中的瀏覽量.ipe

答案1

IPE 檔案格式是 xml,因此您可以使用通用 xml 工具來實現此目的。例如,下列 IPE 頁麵包含兩個視圖,一個包含一個矩形,另一個包含兩個矩形:

<page>
<layer name="alpha"/>
<layer name="beta"/>
<view layers="alpha" active="alpha"/>
<view layers="alpha beta" active="beta"/>
<path layer="alpha" stroke="orange">
16 832 m
16 800 l
48 800 l
48 832 l
h
</path>
<path layer="beta" stroke="orange">
64 784 m
64 816 l
32 816 l
32 784 l
h
</path>
</page>

view您可以在開頭看到兩個標籤。例如xmllint(還有許多其他可能的工具),您可以提取標籤的數量(從https://stackoverflow.com/a/35576314/):

xmllint --xpath "count(//view)" myfile.ipe

將其放入一個小的 bash 腳本中:

nrviews=`xmllint --xpath "count(//view)" $1`
fbase=`basename "$1"`
fname="${fbase%.*}"
for VIEW in $(seq 1 $nrviews)
do
    iperender -eps -view $VIEW $1 $fname.$VIEW.eps
done

輸出範例: 在此輸入影像描述

相關內容