Altova StyleVision Server 2024

The example below shows how to use C++ code to generate an output RTF file using a PXF file and an input XML file. Ensure that StyleVision Server is installed and licensed and that it is available as a COM server object. Registration as a COM server object usually takes place during installation of StyleVision Server. To check if registration was successful, see About the COM Interface. Also see About the .NET Interface.

 

// StyleVisionServerAPI_Sample.cpp : Defines the entry point for the console application.

//

#include <iostream>

#include "atlbase.h"

 

 

// The following import statements require the corresponding C++ tool-chain to be selected in the project configuration file.

#ifndef _WIN64

// 32-bit StyleVisionServer

#import "progid:StyleVision.Server"

#else

// 64-bit StyleVisionServer

#import "progid:StyleVision_x64.Server"

#endif

 

 

int _tmain(int argc, _TCHAR* argv[])

{

 CoInitialize( NULL );

 

 try

 {

         //Create a StyleVision Server object

         StyleVisionServerLib::IServerPtr pSVS;

         CoCreateInstance( __uuidof( StyleVisionServerLib::Server ), NULL, CLSCTX_ALL, __uuidof( StyleVisionServerLib::IServer ), reinterpret_cast< void** >( &pSVS ) );

 

 

         //Set a working directory - used for output and for intermediate files

         pSVS->WorkingDirectory = ".."; // this is relative to this applications' working directory (the project folder)

 

         //Default path to the StyleVision Server executable is the installation path (same dir with the StyleVisionServer.dll)

         //In case you moved the binaries on the disk, you need to explicitly set the path to the .exe file

         //pSVS->ServerPath = "C:\\Program Files (x86)\\Altova\\StyleVisionServer2024\\bin\\StyleVisionServer.exe";

         //pSVS->ServerPath = "C:\\Program Files\\Altova\\StyleVisionServer2024\\bin\\StyleVisionServer.exe";

 

         //Prepare the name of the working XML

         //    This can be an absolute/relative path if the file is stored externally (not inside PXF)

         // pSVS->InputXML = "ExpReport.xml";

         //    Or it can contain the path INSIDE the PXF

         // pSVS->InputXML = "ExpReport.pxf|zip\\ExpReport.xml";

         //    Easiest way is to refer to the file as being embedded in the transformation file

         pSVS->InputXML = "altova://packagedfile/ExpReport.xml";

 

         //Add output paths (absolute or relative to WorkingDirectory) for all formats that should be generated

         pSVS->OutputRTF = "ExpReport.rtf";

         pSVS->OutputPDF = "ExpReport.pdfrtf";

         pSVS->OutputHTML = "ExpReport.html";

 

         //Prepare the parameters, if your design uses parameters

         //pSVS->AddParameter( "testparam1", "value 1" );

 

         //Run the transformation; the output will be stored at C:\temp\ExpReport.rtf

         // NOTE Please adapt the path to the input file in order to run the sample

         if (pSVS->Generate("ExpReport.pxf"))

             {

                 std::cout << pSVS->LastExecutionMessage << std::endl;

                   std::cout << "Success - finished execution" << std::endl;

             }

         else

                 std::cout << pSVS->LastExecutionMessage << std::endl;

 }

 catch (_com_error& err )

 {

         BSTR  bstrMessage;

         (err).ErrorInfo()->GetDescription( &bstrMessage );

         std::cout << "Exception occurred: " << _com_util::ConvertBSTRToString( bstrMessage ) << std::endl;

 }

 

 CoUninitialize();

 return 0;

}

 

© 2017-2023 Altova GmbH