How get the file transition, if I know the id Object father…

gcamou
edited January 29, 2009 in Documentum #1

hello

I programmed in C# CTS, and I want to get the pdf document transformed

the code is as follows....

Code

static void Main(string[] args)
{

    try
    {
            IServiceContext serviceContext = GetServiceContext(_repository, _userName, _password, _domain);

            objectService = serviceFactory.GetRemoteService<IObjectService>(
                  serviceContext, serviceModuleDFS, contextRoot);


            transformationService = serviceFactory.GetRemoteService<ITransformationService>(
                   serviceContext, serviceModuleCTS, contextRoot);


            profileService = serviceFactory.GetRemoteService<IProfileService>(
                   serviceContext, serviceModuleCTS, contextRoot);                  

          

            string TransformedId = TransformationToPDF(documentumId);

            Console.WriteLine("Proceso terminado....");

            byte[] data = driver.GetFileToDocumentum(TransformedId);

            using (Stream s = File.Create(@c:\download.pdf))
            {
                    s.Write(data, 0, data.Length);
            }


            Console.WriteLine("Proceso terminado....");

            Console.Read("Proceso terminado....");
    }
    catch (Exception ex){ Console.WriteLine(ex.InnerException + "\n" + ex.StackTrace + "\n" + ex.Message ); }

}

public string TransformationToPDF(string documentumId)
{

    ObjectIdentity jobId = null;


    try
    {
            JobTicket jobTicket = new JobTicket();

            jobTicket.sourceObjectId = documentumId;
            jobTicket.sourceFormat = "msw8";
            jobTicket.targetFormat = "pdf";

            jobTicket.Profile = profileService.GetProfileByName(_repository, "optimizePDF_adts");

            jobTicket.Profile.Parameters[0].name = "doc_token_PrintType";//"doc_token_f_textCenter";
            jobTicket.Profile.Parameters[0].value = "No";

            jobTicket.Profile.Parameters[1].name = "doc_token_NoteIcons";
            jobTicket.Profile.Parameters[1].value = "No";

            jobTicket.ParamProperties = jobTicket.Profile.Parameters;

            jobTicket.renditionName = "Nombre del Rendition";
            jobTicket.renditionDescription = "Aqui va la descripcion del rendition";

            jobTicket.isStoreResultInRepo = false;
            jobTicket.notifyUser = true;
            jobTicket.priority = 1;

            jobId = transformationService.AddJob(jobTicket);
    }
    catch (Exception ex) { throw ex;}

    return ((ObjectId)jobId.Value).Id
}

public byte[] GetFileToDocumentum(string documentumId)
{
    DataPackage dataPackage = null;
    DataObject dataObject = null;
    Content contentObj = null;

    try
    {
            dataPackage = GetDataPackage(documentumId);

            dataObject = dataPackage.DataObjects[0];

            contentObj = dataObject.Contents[0];
    }
    catch (Exception ex) { throw ex; }

    return contentObj.GetAsByteArray();
}

private DataPackage GetDataPackage(string documentumId)
{
    ObjectIdentity objectIdentity = new ObjectIdentity(new ObjectId(documentumId), _repository);

    ObjectIdentitySet objectIdentitySet = new ObjectIdentitySet();
    objectIdentitySet.AddIdentity(objectIdentity);

    DataPackage dataPackage = null;

    try
    {
            PropertyProfile propertyProfile = new PropertyProfile(PropertyFilterMode.ALL);
            ContentProfile contentProfile = new ContentProfile();
            OperationOptions operationOptions = new OperationOptions();
            ContentTransferProfile contentTransferProfile = new ContentTransferProfile();

            PermissionProfile permissionProfile = new PermissionProfile();
            permissionProfile.PermissionTypeFilter = PermissionTypeFilter.ANY;
            operationOptions.PermissionProfile = permissionProfile;

            contentTransferProfile.TransferMode = ContentTransferMode.MTOM;
            contentProfile.FormatFilter = FormatFilter.ANY;
            operationOptions.ContentTransferProfile = contentTransferProfile;
            operationOptions.PropertyProfile = propertyProfile;
            operationOptions.ContentProfile = contentProfile;
            operationOptions.SetProfile(contentProfile);

            dataPackage = objectService.Get(objectIdentitySet, operationOptions);
    }
    catch (Exception ex){ throw ex;}

    return dataPackage;
}

when opening the file, I mark the following error....

Adobe Reader could not open 'archivo.pdf' because it is either not  a supported file type or because the file has been damaged (for example, ir was sent as an email attachment and wasn't correctly decoded).

the error is due to format

original format is XML, not pdf

inside the file xml, a node named target_object_id, contains a id, but I do not it is the correct object...

thanks I hope help me....

Comments