C++
Este ejemplo explica cómo usar código C++ para generar un archivo de salida RTF con un archivo PXF y un archivo XML de entrada.
Antes de empezar a probar el ejemplo, compruebe que cumple con estos requisitos:
•StyleVision Server está instalado y tiene asignada una licencia válida.
•StyleVision Server está disponible como objeto de servidor COM (este proceso suele tener lugar automáticamente durante la instalación de StyleVision Server. Consulte el apartado Información sobre la interfaz COM para obtener más información). Consulte también Información sobre la interfaz .NET.
// 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\\StyleVisionServer2025\\bin\\StyleVisionServer.exe";
//pSVS->ServerPath = "C:\\Program Files\\Altova\\StyleVisionServer2025\\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;
}