C++
Im Beispiel unten wird gezeigt, wie Sie über C++-Code anhand einer PXF-Datei und einer XML-Input-Datei eine RTF-Output-Datei generieren. Stellen Sie sicher, dass StyleVision Server installiert und lizenziert ist und als COM-Servereobjekt zur Verfügung steht. Die Registrierung als COM-Serverobjekt erfolgt normalerweise während der Installation von StyleVision Server. Eine Anleitung, wie Sie überprüfen, ob die Registrierung erfolgreich war, finden Sie unter Informationen zur COM-Schnittstelle. Siehe auch Informationen zur .NET-Schnittstelle.
// 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;
}