Code Block
Package oPackage = null;
XpsDocument oXpsDocument = null;
try {
// New XPS package
oPackage =
Package.Open( sTempFilename, FileMode.Create );
oXpsDocument =
new XpsDocument( oPackage, CompressionOption.SuperFast );
FixedDocumentSequence oFixedDocumentSequence = new FixedDocumentSequence();
// Read in old
foreach( string sXpsDocument in sXPSFiles ) {
XpsDocument oSourceDocument = new XpsDocument( sXpsDocument, FileAccess.Read );
FixedDocumentSequence oOldFixedDocumentSequence = oSourceDocument.GetFixedDocumentSequence();
foreach( DocumentReference oDocumentReference in oOldFixedDocumentSequence.References ) {
DocumentReference oNewDocReference = new DocumentReference();
( oNewDocReference
as IUriContext ).BaseUri = ( oDocumentReference as IUriContext ).BaseUri;
oNewDocReference.Source = oDocumentReference.Source;
oFixedDocumentSequence.References.Add( oNewDocReference );
oNewDocReference =
null;
}
oSourceDocument.Close();
oSourceDocument = null;
}
XpsDocumentWriter oXpsDocumentWriter = XpsDocument.CreateXpsDocumentWriter( oXpsDocument );
//oXpsDocumentWriter.WriteAsync( oFixedDocumentSequence );
oXpsDocumentWriter.Write( oFixedDocumentSequence );
oXpsDocument.Close();
oPackage.Close();
oFixedDocumentSequence =
null;
oXpsDocumentWriter =
null;
}
catch( Exception ex ) {
// Output exception
}
finally {
if( oXpsDocument != null ) {
oXpsDocument.Close();
oXpsDocument =
null;
}
if( oPackage != null ) {
oPackage.Close();
oPackage =
null;
}
}