我正在尝试从磁盘加载 XPS 文件并将其作为我创建的内存文档的FixedDocument
一部分打印。FixedDocumentSequence
它们需要作为一个序列打印,因为它们是双面打印的。
到目前为止,这是我最好的尝试:
// create my memory FixedDocument (a packing slip)
DocumentReference mainDocRef = GetMainDoc(); // created in memory
// load XPS document from file (to print on the back)
XpsDocument xpsDoc = new XpsDocument("flyer.xps", FileAccess.Read);
var docSequenceFromFile = xpsDoc.GetFixedDocumentSequence();
var xpsDocRef = docSequenceFromFile.References.First();
// try to combine together
FixedDocumentSequence documentSequence = new FixedDocumentSequence();
documentSequence.References.Add(mainDocRef);
documentSequence.References.Add(xpsDocRef); // THROWS EXCEPTION
// print
XpsDocumentWriter xps = PrintQueue.CreateXpsDocumentWriter(printQueue);
xps.Write(documentSequence, ticket);
我总是以异常结束:
InvalidOperationException:附加信息:指定元素已经是另一个元素的逻辑子元素。先断开它。
我已经尝试了几种方法来做到这一点,但总是以这样的错误告终
我如何加载一个XpsDocument
并将其打印为FixedDocumentSequence
我在内存中创建的第二页?