/*
* Created on Dec 6, 2005
*
* EMC Documentum Developer Program 2005
*/
package com.documentum.devprog.snippets.operations;
import com.documentum.fc.common.DfException;
import com.documentum.fc.common.DfId;
import com.documentum.fc.common.IDfId;
import com.documentum.fc.common.IDfList;
import com.documentum.fc.common.IDfLoginInfo;
import com.documentum.fc.client.IDfClient;
import com.documentum.fc.client.IDfDocument;
import com.documentum.fc.client.IDfSession;
import com.documentum.fc.client.IDfSessionManager;
import com.documentum.com.DfClientX;
import com.documentum.com.IDfClientX;
import com.documentum.operations.IDfExportNode;
import com.documentum.operations.IDfExportOperation;
public class ExportRendition
{
public static void main(String[] args)
{
String username = "dmadmin";
String password = "dmadmin";
String repoName = "devprog";
String exportFolder = "c:\\devprog\\test";
String documentId = "";
String renditionFormat = "pdf";
try
{
IDfSessionManager sessMgr = createSessionManager();
addIdentity(sessMgr,username,password,repoName);
exportRendition(sessMgr,repoName,exportFolder,documentId);
}
catch(DfException ex)
{
ex.printStackTrace();
}
}
public static void exportRendition(IDfSessionManager sessMgr,
String destFldr,String docId,String rendFormat) throws DfException
{
IDfClientX clientX = new DfClientX();
IDfClient localClient = clientX.getLocalClient();
IDfExportOperation exportOper = clientX.getExportOperation();
exportOper.setDestinationDirectory(destFldr);
IDfId objId = new DfId(docId);
String repoName = localClient.getDocbaseNameFromId(objId);
IDfSession sess = sessMgr.getSession(repoName);
IDfDocument doc = (IDfDocument) sess.getObject(objId);
IDfExportNode expNode = (IDfExportNode) exportOper.add(doc);
//setFormat specifies the rendition format to export
//If this method is not called then the default format is
//exported.
expNode.setFormat(rendFormat);
if(exportOper.execute())
{
String filepath = expNode.getFilePath();
System.out.println("Export Operation Successful: " + filepath);
}
else
{
System.out.println("Export Operation Failed");
IDfList errList = exportOper.getErrors();
for(int i=0;i<errList.getCount();i++)
{
System.out.println(errList.getString(i));
}
}
}
/**
* Creates a new session manager instance. The session manager does not have
* any identities associated with it.
*
* @return a new session manager object.
* @throws DfException
*/
private static IDfSessionManager createSessionManager() throws DfException
{
IDfClientX clientX = new DfClientX();
IDfClient localClient = clientX.getLocalClient();
IDfSessionManager sessMgr = localClient.newSessionManager();
return sessMgr;
}
/**
* Adds a new identity to the session manager.
*
*/
private static void addIdentity(IDfSessionManager sm, String username,
String password, String repoName) throws DfException
{
IDfClientX clientX = new DfClientX();
IDfLoginInfo li = clientX.getLoginInfo();
li.setUser(username);
li.setPassword(password);
// check if session manager already has an identity.
// if yes, remove it.
if (sm.hasIdentity(repoName))
{
sm.clearIdentity(repoName);
}
sm.setIdentity(repoName, li);
}
}
|