Per trasformare XML in PDF, useremo l’API Aspose.PDF for C++ che è un’API di manipolazione dei documenti ricca di funzionalità, potente e facile da usare per la piattaforma cpp. Apri il gestore pacchetti NuGet, cerca Aspose.pdf e installa. È inoltre possibile utilizzare il seguente comando dalla console di Gestione pacchetti.
PM > Install-Package Aspose.PDF.Cpp
Trasforma XML e caricalo in PDF tramite C++
È necessario Aspose.PDF for C++ per provare il codice nel proprio ambiente.
- Imposta i parametri della pagina.
- Carica il file XSLT.
- Quindi carica e trasforma.
Trasforma XML in PDF - C++
void WorkingWithXML::ExampleXSLTtoPDF()
{
String _dataDir("C:\\Samples\\");
auto XmlContent = System::IO::File::ReadAllText(u"XMLFile1.xml");
auto XsltContent = System::IO::File::ReadAllText(u"XSLTFile1.xslt");
auto options = MakeObject<Aspose::Pdf::HtmlLoadOptions>();
// set page size to A5
options->get_PageInfo()->set_Height(595);
options->get_PageInfo()->set_Width(420);
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(TransformXmltoHtml(XmlContent, XsltContent), options);
pdfDocument->Save(_dataDir + u"data_xml.pdf");
}
System::SharedPtr<System::IO::MemoryStream> TransformXmltoHtml(String inputXml, String xsltString)
{
auto transform = MakeObject<System::Xml::Xsl::XslCompiledTransform>();
auto reader = System::Xml::XmlReader::Create(MakeObject<System::IO::StringReader>(xsltString));
transform->Load(reader);
auto memoryStream = MakeObject<System::IO::MemoryStream>();
auto results = System::Xml::XmlWriter::Create(memoryStream);
auto reader2 = System::Xml::XmlReader::Create(MakeObject<System::IO::StringReader>(inputXml));
transform->Transform(reader2,nullptr,results);
memoryStream->set_Position (0);
return memoryStream;
}