Я задавал аналогичный вопрос в прошлом, но с тех пор не имел никакой радости, чтобы решить мою проблему. Я не эксперт по документам XPs, но мне удалось решить эту проблему...
Следующие примеры принимают аргумент DocumentPaginator и просто печатают документ. Первый пример работает, второй не печатает встроенные в документ изображения.
// this works
XpsDocumentWriter xpsDocumentWriter = PrintQueue.CreateXpsDocumentWriter(printQueue);
xpsDocumentWriter.Write(document); // where document is a DocumentPaginator
// this doesn't work (it prints but no images)
// create new doc
XpsDocument doc = new XpsDocument(package, CompressionOption.NotCompressed, "pack://TempTemporaryPackageUri.xps");
// create writer for new doc
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc);
// write document
writer.Write(document, printQueue.DefaultPrintTicket);
// create writer for print job
XpsDocumentWriter xpsDocumentWriter = PrintQueue.CreateXpsDocumentWriter(printQueue);
// i think it's here where the resources are being lost
// write document
xpsDocumentWriter.Write(doc.GetFixedDocumentSequence());
Причина, по которой мне нужно создать новый документ, заключается в том, что мне нужно манипулировать XpsDocument после того, как он разбит на страницы.
Может ли кто-нибудь указать мне правильное направление в отношении возможности копирования ресурсов из одного документа в другой?
Любые советы приветствуются.
Заранее спасибо,
Сэм