I am trying to place a lot of tables into my document, one by one, but i can't place more than 1 table, does anybody knows how to place each table on one page or textframe? I am using xml nodes like this:
< ?xml version="1.0" encoding="UTF-8"?>< tables>< containt>
< label>TABLE 1</label>
< table frame="none">
< tgroup cols="3">
< colspec colname="col1" colnum="1" colwidth="50%"/>
< colspec colname="col2" colnum="2" colwidth="25%"/>
< colspec colname="col3" colnum="3" colwidth="25%"/>
< thead>
< row>
< entry>TEST</entry>
< entry>TEST</entry>
< entry>TEST</entry>
< /row>
< /thead>
< tbody>
< row>
< entry>1</entry>
< entry>2</entry>
< entry>3</entry>
< /row>
< /tbody>
< /tgroup>
< /table>
< /containt>
< containt>
< label>TABLE 2</label>
< table frame="none">
< tgroup cols="3">
< colspec colname="col1" colnum="1" colwidth="50%"/>
< colspec colname="col2" colnum="2" colwidth="25%"/>
< colspec colname="col3" colnum="3" colwidth="25%"/>
< thead>
< row>
< entry>TEST</entry>
< entry>TEST</entry>
< entry>TEST</entry>
< /row>
< /thead>
< tbody>
< row>
< entry>1</entry>
< entry>2</entry>
< entry>3</entry>
< /row>
< /tbody>
< /tgroup>
< /table>
< /containt> < /tables>
There is all i have:
var fileRef = File.openDialog("Select XML file");
var importPrefs = app.xmlImportPreferences;
importPrefs.importCALSTables = true;
importPrefs.importStyle = XMLImportStyles.MERGE_IMPORT;
var docRef = app.documents.add(true, "Letter");
docRef.importXML(fileRef);
var rootElement = docRef.xmlElements.item(0);
var children = rootElement.xmlElements;
for(var i = 0; i < children.length; i++){
var pageRef = docRef.pages.item(0); // when i try to use i, i get an error
var contentElement = rootElement.xmlElements.item(i);
var frameRef = pageRef.placeXML(contentElement,[".5 in", ".5 in"]);
var tableRef = frameRef.tables.item(0);
tableRef.width = "7 in";
tableRef.columns.item(0).width = "3 in";
tableRef.columns.item(1).width = "2 in";
tableRef.columns.item(2).width = "2 in";
tableRef.clearTableStyleOverrides();
myFrames = docRef.textFrames;
tableOverflow();
}
function tableOverflow(){
for(var f = 0; f<= myFrames.length -1; f++){
while(myFrames[f].overflows == true){
var myNewPage = docRef.pages.add();
myMargin = myNewPage.marginPreferences,
myGeometricBounds = [myMargin.top, myMargin.left, docRef.documentPreferences.pageHeight - myMargin.bottom, docRef.documentPreferences.pageWidth - myMargin.right ];
var oldRuler = docRef.viewPreferences.rulerOrigin;
docRef.viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
with(docRef.pages[-1].textFrames.add()){
geometricBounds = myGeometricBounds;
previousTextFrame = docRef.pages[-2].textFrames[0];
}
docRef.viewPreferences.rulerOrigin = oldRuler;
}
}
}
Could someone help me please?