Hello!
Into my extension I need to get page source with attachments;
Page in xwiki/2.1
I’ve found inside LatEx export source example
// Get document
this.progressManager.startStep(this, "Get the document to export");
XWikiDocument document = xcontext.getWiki().getDocument(documentReference, xcontext);
xcontext.setDoc(document);
this.progressManager.endStep(this);
// Display document
this.progressManager.startStep(this, "Render the document to export");
DocumentDisplayerParameters displayParameters = new DocumentDisplayerParameters();
displayParameters.setExecutionContextIsolated(true);
displayParameters.setTransformationContextIsolated(true);
displayParameters.setContentTranslated(true);
displayParameters.setTargetSyntax(Syntax.XWIKI_2_1);
XDOM xdom = this.documentDisplayer.display(document, displayParameters);
this.progressManager.endStep(this);
this.progressManager.startStep(this, "Perform the export");
File file = performExport(documentReference, xdom, exportOptions, xcontext);
this.progressManager.endStep(this);
return file;
But don’t understand what do method
protected void performExport(DocumentReference documentReference, XDOM xdom, Map<String, Object> properties)
throws Exception
{
try (OutputFilterStream streamFilter = this.factory.createOutputFilterStream(properties)) {
LaTeXOutputFilter filter = (LaTeXOutputFilter) streamFilter.getFilter();
List<SpaceReference> spaces = documentReference.getSpaceReferences();
filter.beginWiki(documentReference.getWikiReference().getName(), FilterEventParameters.EMPTY);
for (SpaceReference spaceElement : spaces) {
filter.beginWikiSpace(spaceElement.getName(), FilterEventParameters.EMPTY);
}
filter.beginWikiDocument(documentReference.getName(), FilterEventParameters.EMPTY);
xdom.traverse((Listener) filter);
filter.endWikiDocument(documentReference.getName(), FilterEventParameters.EMPTY);
for (SpaceReference spaceElement : spaces) {
filter.endWikiSpace(spaceElement.getName(), FilterEventParameters.EMPTY);
}
filter.endWiki(documentReference.getWikiReference().getName(), FilterEventParameters.EMPTY);
}
}
maybe there is more easily way to save source to file?